我写了这个VB6代码来犯的MS Access dB的插入SQL查询提交MS Access中插入查询写在数据库中。 MsgBox显示0个受影响的行。但是当我在MS Access软件上手动运行查询时,它工作正常,有2个受影响的行。无法通过Visual Basic 6的
任何人都可以帮助我吗?
我写了这个VB6代码来犯的MS Access dB的插入SQL查询提交MS Access中插入查询写在数据库中。 MsgBox显示0个受影响的行。但是当我在MS Access软件上手动运行查询时,它工作正常,有2个受影响的行。无法通过Visual Basic 6的
任何人都可以帮助我吗?
您可以使用 “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
但是为什么在您打开并使用它之后查看Connection是否打开?顺便说一句,魔法数字不好,可以吗?你想要的是'adStateOpen'。 – Bob77 2014-09-24 19:04:22
可以验证连接字符串是否有效?如果你的SQL正在工作,那应该告诉你,你没有连接到数据库,或者你发送SQL到数据库的方式是不正确的。 (或者您的显示行的方法影响不正确) – 2014-09-24 17:45:25
连接正在工作。我使用这种方法来创建一个新的表,它的工作原理。当我尝试插入插件时没有任何影响。 – EBalla 2014-09-24 17:49:13
这是看到+用于concatentation,并可能导致微妙的错误的眼睛震颤。很好的工作......直到失败。 – Bob77 2014-09-24 19:06:27