Excel VBA アプリケーションに問題があります。Excel VBA を使用して MySQL に接続し、データベースからいくつかの値を取得します。クエリは、テーブル 1 の存在しないデータをテーブル 2 と結合する「左外部結合」です。テーブル 1 には 26000 行、テーブル 2 には 320000 行があります。私のクエリの詳細は、以下のリンクにあります。
VBA コードは、今日の朝まで問題なく動作していました。朝、「コマンドをプログラムに送信中に問題が発生しました」という警告が表示されました。ただし、警告を無視してプログラムを実行しました。出来た。プログラムを停止した後、上記のエラーを修正することにしました。Microsoft サイトのエラーに対して「Fix it」ソリューションを実行したところ、プログラムが上記のクエリの実行を停止しました。何が起こったのだろうと私は無知に感じます。
- Excel を 2 回 (Microsoft professional plus 2010) 再インストールしましたが、使用できません。
- クエリに問題があるかどうかを確認するために、MySQL サーバーでクエリを実行しました。これは問題なく動作し、実行には約 4 分かかります。
- エクセルの互換モード(C:/program Files(x86)/Microsoft Office/Excel)を変更してみました。役に立ちませんでした。
- プログラムを約 30 分間実行しましたが、奇妙なことにプログラムがクエリを実行していません。
- 知らず知らずのうちに設定を変更してしまった可能性があります。しかし、オフィスを再インストールした後でも、クエリを実行できないのはなぜですか?
編集:
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