
アクセスでフォームとサブフォームの複製をしたいです。
下記の様にコードを作成しましたが動作しません。
確認すると DoCmd.SearchForRecord の部分で、レコードの移動が出来ていませんでした。
DoCmd.SearchForRecord の部分だけ切り抜いて動作させた所、問題なく動きました。
DoCmd.SearchForRecord が動かない時、どんな原因が考えられるでしょうか?
ご回答よろしくお願いします!
下記コードです。
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim rl As DAO.Relation
Dim maxnumber As Integer: maxnumber = 0
Dim a As Variant
Dim c As Variant
Dim vsql As String
Dim x As Variant
a = 見積ID
c = Me!Frm見積書明細.Form.Recordset.RecordCount
Set db = CurrentDb
Set rs = db.OpenRecordset("T見積書")
Do Until rs.EOF = True
If rs!見積ID > maxnumber Then
maxnumber = rs!見積ID
End If
rs.MoveNext
Loop
x = maxnumber + 1
DoCmd.RunCommand acCmdSelectRecord 'カレントレコードの選択
DoCmd.RunCommand acCmdCopy '選択レコードのコピー
DoCmd.GoToRecord , , acNewRec '新規レコードに移動
DoCmd.RunCommand acCmdSelectRecord 'カレントレコードの選択
DoCmd.RunCommand acCmdPaste
見積ID = x
↓ここの移動ができません
DoCmd.SearchForRecord , , acFirst, "見積ID ='" & a & "'"
Me!Frm見積書明細.SetFocus 'サブフォームにフォーカスを移動
DoCmd.RunCommand acCmdSelectAllRecords 'すべてのレコードを選択
DoCmd.RunCommand acCmdCopy '[コピー]を実行
DoCmd.SearchForRecord , , acFirst, "見積ID ='" & x & "'"
Me!Frm見積書明細.SetFocus
DoCmd.RunCommand acCmdPasteAppend 'コピーレコードの追加貼り付け
vsql = "update T見積書明細 "
vsql = vsql & " set 見積書ID = '" & x & "'"
vsql = vsql & " where 見積書ID is null"
db.Execute vsql, dbFailOnError
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
このクエリを作るだけで良くないかい?
INSERT INTO T見積書明細 ( 見積書ID )
SELECT Max([見積ID])+1 AS 式1
FROM T見積書;
ご返信遅くなりました!
ご回答ありがとうございます
最終目指しているのはフォームとサブフォームの複製です。
考えてる動きとしては下記の通りです。
①基レコード(フォーム)のコピー
②新レコードの作成
③新レコード(フォーム)のペースト
④基レコードに戻る
⑤基レコード(サブフォーム)のコピー
⑥新レコードに移動
⑦新レコード(サブフォーム)のペースト
フォームのデータ=T見積書、見積IDに紐づけ
サブフォームのデータ=T見積書明細、見積書IDに紐づけ
今回聞きたいのが④のレコードに戻ることが出来ない理由です。
①、②、③は問題なく動くのですが、④が動作しません。
④を動作させるにはどうすればよいかご存じでしたら教えてください!
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
Docmd.Findrecordで空白の検索方法
その他(データベース)
-
[VBA] ADOの Clone と AddNew
その他(プログラミング・Web制作)
-
-
4
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
5
Accessの更新前処理について。DoCmd.GoToRecordが動かないのはなぜ?
その他(プログラミング・Web制作)
-
6
アクセスのテキストボックスの初期値を空白に
Access(アクセス)
-
7
アクセスVBAのMe!と[ ]
Access(アクセス)
-
8
ADOでRecordsetオブジェクトをレコードソースに設定したい
その他(データベース)
-
9
Accessのフィールド名に半角括弧を使ってしまった
Visual Basic(VBA)
-
10
「#エラー」の回避
Access(アクセス)
-
11
ExcelVBAでのNZ関数について
Visual Basic(VBA)
-
12
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
13
「データベースまたはオブジェクトは読み取り専用なので、更新できません」エラーについて
その他(データベース)
-
14
Access2016 リストボックスに検索結果を表示させたい
Access(アクセス)
-
15
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで経過日付に応じて色を...
-
AccessのRefresh・Requery・Rep...
-
アクセエスのレコードの更新をV...
-
ファイルメーカーで重複してイ...
-
エクセルで、抽出したデータだ...
-
前のレコードの値を自動で入れたい
-
X-Ripperというフリーウェアに...
-
Access サブフォームでの選択行...
-
ACCESSのクエリー抽出条件にIIF...
-
AccessのWHERE句において、変数...
-
初心者です。accessで請求書を...
-
access クエリ yes/no型のクエ...
-
ExcelのComboboxでマウスのスク...
-
ACCESSでVBAから選択クエリの抽...
-
Accessでデータを更新したらそ...
-
access サブフォームにリストを...
-
Accessフォーム上の値を条件と...
-
Accessでフィルタの実行アクシ...
-
access vbaのコンパイルエラー...
-
Access チェックボックスを利用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS 複数のフォームから同一...
-
Accessでレコードの複製
-
ACCESSフォーム入力後の確定
-
MS.Access でサブフォーム付の...
-
accessでオートナンバーを使わ...
-
Accessで経過日付に応じて色を...
-
Accessフォームで詳細内の任意...
-
AccessのRefresh・Requery・Rep...
-
アクセエスのレコードの更新をV...
-
access の 最終レコードの判定...
-
Accessの「Form_AfterUpd...
-
MSAccess ロック状態かどうかを...
-
アクセスのコンボボックスの内...
-
DoCmd.SearchForRecord が動か...
-
Access「レコードの保存」
-
ACCESSのレポートに関して
-
docmd.gotorecordを起動するには
-
新しいレコードへの移動時にト...
-
access2000で質問です。
-
ACCESS 単票形式フォームの新...
おすすめ情報