2014-09-24 97 views
1

我寫了這個VB6代碼來犯的MS Access dB的插入SQL查詢提交MS Access中插入查詢寫在數據庫中。 MsgBox顯示0個受影響的行。但是當我在MS Access軟件上手動運行查詢時,它工作正常,有2個受影響的行。無法通過Visual Basic 6的

任何人都可以幫助我嗎?

+0

可以驗證連接字符串是否有效?如果你的SQL正在工作,那應該告訴你,你沒有連接到數據庫,或者你發送SQL到數據庫的方式是不正確的。 (或者您的顯示行的方法影響不正確) – 2014-09-24 17:45:25

+0

連接正在工作。我使用這種方法來創建一個新的表,它的工作原理。當我嘗試插入插件時沒有任何影響。 – EBalla 2014-09-24 17:49:13

+0

這是看到+用於concatentation,並可能導致微妙的錯誤的眼睛震顫。很好的工作......直到失敗。 – Bob77 2014-09-24 19:06:27

回答

1

您可以使用 「Execute方法(ADO連接)」,見http://msdn.microsoft.com/en-us/library/windows/desktop/ms675023%28v=vs.85%29.aspx,對於一個例子:

Private Sub InsertData() 
    Dim sql As String, num As Long, Con As New adodb.Connection 

    sql = "INSERT INTO Presenze(Enterprise, Employss, mYear, mMonth, mDay, WorkHours) SELECT T.[Enterprise], P.UserCode, T.[Yr], T.[Mnth], T.[Dy], T.[WorkHRS] FROM TableData T INNER JOIN Personal P On P.PID= T.[PID]" 
     Con.Open "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" & App.Path + "\Archive.mdb" & ";PWD=" 
    Con.Execute (sql, num, adExecuteNoRecords) 

    If Con.State = 1 Then 
     Con.Close 
     Set Con = Nothing 
    End If 

    MsgBox num & " records were affected" 
End Sub 
+1

但是爲什麼在您打開並使用它之後查看Connection是否打開?順便說一句,魔法數字不好,可以嗎?你想要的是'adStateOpen'。 – Bob77 2014-09-24 19:04:22