プロが教える店舗&オフィスのセキュリティ対策術

アクセスでフォームとサブフォームの複製をしたいです。
下記の様にコードを作成しましたが動作しません。
確認すると 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件)

このクエリを作るだけで良くないかい?


INSERT INTO T見積書明細 ( 見積書ID )
SELECT Max([見積ID])+1 AS 式1
FROM T見積書;
    • good
    • 0
この回答へのお礼

ご返信遅くなりました!
ご回答ありがとうございます

最終目指しているのはフォームとサブフォームの複製です。
考えてる動きとしては下記の通りです。

①基レコード(フォーム)のコピー
②新レコードの作成
③新レコード(フォーム)のペースト
④基レコードに戻る
⑤基レコード(サブフォーム)のコピー
⑥新レコードに移動
⑦新レコード(サブフォーム)のペースト

フォームのデータ=T見積書、見積IDに紐づけ
サブフォームのデータ=T見積書明細、見積書IDに紐づけ

今回聞きたいのが④のレコードに戻ることが出来ない理由です。
①、②、③は問題なく動くのですが、④が動作しません。
④を動作させるにはどうすればよいかご存じでしたら教えてください!
よろしくお願いします。

お礼日時:2022/07/25 08:57

何度か質問しますね


質問者さんがやりたい事はこんな感じですか?
①T見積書のリストを表示
②リストを選択したらサブフォームにそのIDに該当する詳細を表示
    • good
    • 0

オンジ唾つ~けたw


多分回答が22時くらいになってしまうと思います
他に回答者が居なかったらその時間くらいに回答します
暫くお待ちください
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています