我的 excel VBA 应用程序有问题。我使用我的 excel VBA 连接到 MySQL 以从数据库中获取一些值。该查询是“左外连接”,它将表 1 的不存在数据与表 2 连接起来。表 1 有 26000 行,表 2 有 320000 行。我的查询的更多详细信息可以在下面的链接中找到。
直到今天早上,VBA 代码都运行良好。早上我收到“向程序发送命令时出现问题”警告。但是,我只是忽略了警告并执行了程序。有效。停止程序后,我决定修复上述错误。我刚刚为 Microsoft 站点的错误执行了“修复它”解决方案,我的程序停止执行上述查询。我不知道会发生什么。
- 我重新安装了两次excel(Microsoft Professional plus 2010),但没有用。
- 我在 MySQL 服务器中运行查询以检查查询是否有问题。它工作得很好,大约需要 4 分钟才能执行。
- 我尝试更改 excel 的兼容模式(C:/program Files(x 86)/Microsoft Office/Excel)。它没有帮助。
- 我运行我的程序大约半小时,但奇怪的是我的程序没有执行查询。
- 我相信我可能在不知不觉中改变了我的设置。但是即使重新安装了office,为什么我无法执行查询?
编辑:
Private Sub CommandButton1_Click()
Start
End Sub
Function Start()
Dim f1, f2, f3, Increment
Dim oConn As ADODB.Connection
Dim rsPass As ADODB.Recordset
Dim sql As String
Dim strBatchName, obj, res
Set oConn = New ADODB.Connection
oConn.Open "ramesh"
sql = "My Left outer join query goes here"
Set obj = oConn.Execute(sql)
Do Until obj.EOF
Sleep 1000
f1 = obj.Fields(0).Value
f2 = obj.Fields(1).Value
f3 = obj.Fields(2).Value
Increment = GetMaximumID
Search f1:=f1, f2:=f2, f3:=f3,
Increment:=Increment
obj.MoveNext
Loop
oConn.Close
End Function
Function GetMaximumID() As Integer
Dim oConn As ADODB.Connection
Dim rsPass As ADODB.Recordset
Dim sql As String
Dim Increment, obj
Set oConn = New ADODB.Connection
oConn.Open "ramesh"
sql = "SELECT max(id) FROM AutoIncrementor"
Set obj = oConn.Execute(sql)
Increment = obj.Fields(0).Value
oConn.Close
GetMaximumID = Increment
End Function
Function Search goes here