したがって、私の問題は、2 台の異なるコンピューター間で、文字列への接続が接続を開くことができなくなることです。
これが私が持っているものです:
Dim sFileName As String
Dim sFilePath As String
sFileName = "DataSource.xls"
sFilePath = "C:\test\testingData\"
Dim sConn As String
sConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & sFilePath & sFileName & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes"";"
Dim errorObject As ADODB.Error
Set errorObject = CreateObject("ADODB.Error")
On Error GoTo ErrorDisplay:
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Open sConn
Dim rst As ADODB.Recordset '* Record Set
Set rst = New ADODB.Recordset
rst.Open sSql, conn, adOpenForwardOnly
Worksheets(1).Range("A2").CopyFromRecordset rst
sSQL = "SELECT * FROM [MySheet$] WHERE [Status] = 2 AND [DocNo] LIKE '%-A%'
このコード セクションを 1 台のコンピューターで実行すると、ビルドしたとおりに完全に実行されます。同様のコンピューターで試してみると、 「オブジェクト変数またはブロック変数が設定されていません」というエラーが表示され続けます。問題はconn.Open sConnにあることがわかりましたが、何が原因なのかわかりません。
私は解決策を探していましたが、まだうまくいったものは見つかりませんでした。
追加情報:
両方のコンピューター:
Windows 7 x64
Excel 2007 x32
なぜこれが機能しないのかについての考えはありますか?
--更新: マクロを含む Excel ファイルを 3 台目の Windows 7 コンピューターで試してみたところ、正常に動作しました。
--更新:
からプログラムを実行しようとしました
sFilePath = "C:\Users\FirstName.LastName\Desktop\"
と
sFilePath = "C:\Users\FirstName.LastName\Desktop\Test\"
私が本当に知りたいのは、「C:\Users\FirstName.LastName\Desktop\Test\」から動作しているが、他のどれも動作していないということです???