Page 508 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼前のレコードを新規レコードにコピーする方法が上手くいきません。。 yatu 04/2/8(日) 22:54 ┣Re:前のレコードを新規レコードにコピーする方法が上手くいきません。。 かみちゃん 04/2/9(月) 13:09 ┃ ┗Re:前のレコードを新規レコードにコピーする方法が上手くいきません。。 yatu 04/2/9(月) 23:07 ┃ ┗Re:前のレコードを新規レコードにコピーする方法が上手くいきません。。 かみちゃん 04/2/9(月) 23:19 ┗Re:前のレコードを新規レコードにコピーする方法が上手くいきません。。 イケガミ 04/2/9(月) 17:32 ─────────────────────────────────────── ■題名 : 前のレコードを新規レコードにコピーする方法が上手くいきません。。 ■名前 : yatu ■日付 : 04/2/8(日) 22:54 -------------------------------------------------------------------------
こんばんは、題名のとおり、前のレコードをコピーして新規レコードに貼り付ける方法が上手くいきません。コードは次のとおりです。 Private Sub Form_Current() Static sblncopystatus As Boolean If Not sblncopystatus Then If Me.NewRecord Then sblncopystatus = True DoCmd.RunCommand acCmdRecordsGoToPrevious DoCmd.RunCommand acCmdSelectRecord DoCmd.RunCommand acCmdCopy DoCmd.RunCommand acCmdRecordsGoToNew DoCmd.RunCommand acCmdPasteAppend sblncopystatus = False End If End If End Sub 本をみてそっくり真似てみたのですが、フォームの立ち上げができないのです。そのエラーの内容からして、『新規レコードに前のを貼り付けっていったって、前のレコードが無いじゃん!』のようです。エラー内容は 実行時エラー2046 コマンドまたはアクション"前のレコードへ"は無効です とでます。 初心者ですので、とんちんかんな質問内容かもしれませんが、どなたか、どこが悪いのか、また何が足りないのか教えてもらえませんか? |
こんにちは。かみちゃん です。 >本をみてそっくり真似てみたのですが、フォームの立ち上げができないのです。そのエラーの内容からして、『新規レコードに前のを貼り付けっていったって、前のレコードが無いじゃん!』のようです。エラー内容は > >実行時エラー2046 >コマンドまたはアクション"前のレコードへ"は無効です そのとおりですので、 If Me.NewRecord Then の部分を If レコード数が0より大きくてかつ Me.NewRecord Then のようにして、レコード数が0の場合は、「前のレコードをコピーして新規レコードに貼り付ける」ことをしないようにすればいいと思います。 「レコード数が0より大きくてかつ」がわからなければ、また質問してください。 |
こんばんは。かみちゃんさん いけがみさん 回答ありがとうございました。 再び質問いたします。 かみちゃんさんの方法で試したのですが、かみちゃんさんのおっしゃる >「レコード数が0より大きくてかつ」が良くわかりませんでした。 レコード数とはなんのメソッドをi入れればよいのか教えてください。 if me.?????? > 0 and me.newrecord then〜 であっていますでしょうか? |
こんばんは。かみちゃん です。 >>「レコード数が0より大きくてかつ」が良くわかりませんでした。 > >レコード数とはなんのメソッドをi入れればよいのか教えてください。 レコード数の取得の方法はいろいろあると思いますが・・・ こんな感じでいかがですか? Private Sub Form_Current() '参照URL 'http://www2.moug.net/cgi-bin/technic.cgi?acvba+TI08010021 ' ' Access2000の場合、デフォルトではDAOに参照設定されていません。 ' Visual Basic Editor(VBE)を開き、メニューの[ツール]−[参照設定]から、 ' Microsoft DAO 3.6 Object Libraryにチェックを入れて下さい。 ' その際にMicrosoft ActiveX Data Object 2.1 Libraryよりも上に、DAOの ' チェックを持ってきて下さい。 '■ 初期設定 ■ Dim iCnt As Integer 'レコード件数 Dim Rst As DAO.Recordset 'レコードセット '■ レコードセットでカウント ■ 'フォームのレコードソースが「テーブル1」の場合 Set Rst = CurrentDb.OpenRecordset("テーブル1", dbOpenSnapshot) If Rst.EOF = True Then iCnt = 0 Else Rst.MoveLast iCnt = Rst.RecordCount End If '■ 終了処理 ■ Rst.Close Set Rst = Nothing Static sblncopystatus As Boolean If Not sblncopystatus Then If iCnt > 0 And Me.NewRecord Then '〜以下省略〜 |
>実行時エラー2046 >コマンドまたはアクション"前のレコードへ"は無効です On Error GoTo 〜 を使ってもよさそうですね。 |