2016-10-24 68 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 

--Added打印出來代碼 -

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是問題 - 嘗試打印出來並手動運行它。如果沒有,那麼你的數據庫連接可能會出錯。嘗試完全刪除該循環,只需要1插入。也許你沒有權限插入。請添加更多關於您試圖縮小問題的信息。 – Bohemian

+0

嗨波希米亞人。我有權限。但是,我已打印代碼,以查看是否可以發現任何錯誤 –

回答

3

有丟失在查詢FROM TableName。用實際表名替換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很高興幫助你! –

相關問題