我编写了这个vb6代码来提交中的insert sql查询:
Private Sub InsertData()
Dim sql As String
Set MyData = OpenDatabase(App.Path + "\Archive.mdb")
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]"
Workspaces(0).BeginTrans
Mydata.Execute sql
Workspaces(0).CommitTrans
Call MsgBox(Mydata.RecordsAffected)
End Sub我想将一些数据插入到表中,但是数据库中没有写入任何数据。MsgBox显示受影响的0行。但是当我在上手动运行查询时,它工作得很好,有两个受影响的行。
有谁可以帮我?
发布于 2014-09-24 17:45:37
有关示例,可以使用"Execute Method (ADO Connection)",参见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 Subhttps://stackoverflow.com/questions/26022551
复制相似问题