2016-10-24 6 views
1

"CurrentDb.Execute strSQL_Insert_Data"という行のサブコードからコードが抜けています。なぜこれが起こっているのか知っていますか?なぜ私のAccess SQL VBAコードがSubから飛び出しますか?

Local_Array = Array("dbo_Tape_Capture_Local_tbl", "dbo_Tape_Local_tbl", "dbo_Tape_Memo_Local_tbl") 
    Server_Array = Array("dbo_Tape_Capture", "dbo_Tape", "dbo_Tape_Memo") 

For i = 0 To UBound(Local_Array) 
    strSQL_Insert_Data = "INSERT INTO [" & Local_Array(i) & "] " & _ 
         "SELECT [" & Server_Array(i) & "].* " & _ 
         "WHERE (LEFT([" & Server_Array(i) & "].header__situs_loan_id," & _ 
          Len([Forms]![Login Page]![CBO_Job_Select_Login]) & ") = " & _ 
         "[Forms]![Login Page]![CBO_Job_Select_Login]);" 

CurrentDb.Execute strSQL_Insert_Data 

CurrentDb.Close 

Next i 

は、クエリでFROM TableNameが不足している。code--

INSERT INTO [dbo_Tape_Capture_Local_tbl] SELECT [dbo_Tape_Capture].* 
WHERE (LEFT([dbo_Tape_Capture].header__situs_loan_id,14) = [Forms]![Login Page]![CBO_Job_Select_Login]); 
+2

サイクル内でDB接続を閉じないでください。 – Arvo

+1

これは、問題を再現できる最も簡単なコードではありません。たとえば、できるだけ簡単な挿入を行うとどうなりますか?それはその後動作しますか?もしそうなら、あなたのSQLは問題です - それを印刷して手動で実行してみてください。もしそうでなければ、あなたのdb接続が間違っている可能性があります。ループを完全に削除してみてください。おそらくあなたは挿入する権限がありません。あなたが質問を絞ろうとしたことについてもっと詳しく情報を追加してください。 – Bohemian

+0

こんにちはボヘミアン。私には許可があります。しかし、私はあなたがエラーを見つけることができるかどうかを確認するコードを印刷しました –

答えて

3

をプリントアウトし--Added TableNameを実際のテーブル名に置き換えてください。

strSQL_Insert_Data = "INSERT INTO [" & Local_Array(i) & "] " & _ 
        "SELECT [" & Server_Array(i) & "].* " & _ 
        "FROM [" & Server_Array(i) & "] " & _ 
        "WHERE (LEFT([" & Server_Array(i) & "].header__situs_loan_id," & _ 
         Len([Forms]![Login Page]![CBO_Job_Select_Login]) & ") = " & _ 
        "[Forms]![Login Page]![CBO_Job_Select_Login]);" 
+1

ありがとう。私は、それがAccess Query Builderでテストしていて、何か違ったものを生成していた(FROM行は含まれていませんでした)から始めるべきだと思っていました。しかし、あなたのソリューションは機能しました! –

+0

@ConradAddoあなたを助けてうれしい! –

関連する問題