• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ループで呼び出しながら、追加クエリでテーブルに追加)

ループでテーブルに値を追加する方法

このQ&Aのポイント
  • ループで呼び出しながら、追加クエリでテーブルに値を追加する方法がわかりません。
  • エラーが発生せず、動作は正常ですが、テーブルに値が追加されません。
  • どこが不足しているのか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • oka_me
  • ベストアンサー率86% (26/30)
回答No.1

直接の原因はここかと↓ "INSERT INTO [作業用_▲入金DB] SELECT * FROM ▲入金 WHERE ▲入金.請求先ID='& CYUSYUTU_SEIKYUID &';" ↓↓↓ "INSERT INTO [作業用_▲入金DB] SELECT * FROM ▲入金 WHERE ▲入金.請求先ID='" & CYUSYUTU_SEIKYUID & "';" 変数は""の外に出してやらないと変数として機能しません。(""内の文字列と「&」で連結します) 後は余計なお世話かもですが・・・ ・Do~Loop(rs.MoveNext)で全レコード分ループさせるのでFor~Nextは不要です ・DAOで開いたレコードセット自体を更新しないのであれば、RS.EditとRS.Updateも不要です あとは、使用していない変数がいくつか宣言されているようですが・・・ (もしコードの提示を省略しているだけで実際は使用しているとかでしたらすみません) もし質問文内のコードが全てなのであれば、これだけで大丈夫かと思います。 Public Sub CYUSYUTU_SEIKYUID2() Dim CYUSYUTU_SEIKYUID As String Dim DB As DAO.Database Dim RS As DAO.Recordset Set DB = CurrentDb Set RS = DB.OpenRecordset("作業用請求先ID") RS.MoveFirst Do Until RS.EOF CYUSYUTU_SEIKYUID = RS.Fields("請求先ID(13)").Value DoCmd.RunSQL "INSERT INTO [作業用_▲入金DB] SELECT * FROM ▲入金 WHERE ▲入金.請求先ID='" & CYUSYUTU_SEIKYUID & "';" RS.MoveNext Loop RS.Close: Set RS = Nothing DB.Close: Set DB = Nothing End Sub

ruby-amor
質問者

お礼

まだまだ勉強中の為、ウェブからコピーしたものを使って作っていたので、余分なものが入ってました。いらないことが分かって勉強になりました。ありがとうございます。これでやりたい作業ができました!また宜しくお願いします。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

ループするのは必須でしょうか 追加クエリ1つでできそうですけど Dim sSql As String sSql = "INSERT INTO [作業用_▲入金DB] " _    & "SELECT * FROM ▲入金 WHERE ▲入金.請求先ID IN " _    & "(SELECT [請求先ID(13)] FROM 作業用請求先ID);" CurrentDb.Execute sSql ※ メモ帳に書いただけなので、綴りとか動作未検証

すると、全ての回答が全文表示されます。

関連するQ&A