プロが教えるわが家の防犯対策術!

IDをループで呼び出しながら、追加クエリでテーブルに追加したいのですが、
値が入りません。
エラーなく動くのですが、テーブルに値が入っていないのです。
何がたりないのでしょうか?

―――――――――――――

Public Sub CYUSYUTU_SEIKYUID2()

Dim CYUSYUTU_SEIKYUID As String

Dim recCount As Long
recCount = DCount("*", "作業用請求先ID")

Dim ID As String


Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim i As Integer

Dim strSQL As String



Set DB = CurrentDb
Set RS = DB.OpenRecordset("作業用請求先ID")

RS.MoveFirst
Do Until RS.EOF
RS.Edit
For i = 1 To recCount


CYUSYUTU_SEIKYUID = RS.Fields("請求先ID(13)").Value

DoCmd.RunSQL _
"INSERT INTO [作業用_▲入金DB] SELECT * FROM ▲入金 WHERE ▲入金.請求先ID='& CYUSYUTU_SEIKYUID &';"


Next i


RS.Update
RS.MoveNext
Loop

RS.Close: Set RS = Nothing
DB.Close: Set DB = Nothing
End Sub

A 回答 (2件)

直接の原因はここかと↓



"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
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/12/18 15:19

ループするのは必須でしょうか



追加クエリ1つでできそうですけど


Dim sSql As String

sSql = "INSERT INTO [作業用_▲入金DB] " _
   & "SELECT * FROM ▲入金 WHERE ▲入金.請求先ID IN " _
   & "(SELECT [請求先ID(13)] FROM 作業用請求先ID);"
CurrentDb.Execute sSql


※ メモ帳に書いただけなので、綴りとか動作未検証
    • good
    • 0

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

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


このQ&Aを見た人がよく見るQ&A