2

接続してクエリできるすべての注文を含むデータベースがあります。また、接続してクエリできる最後のデータベースクエリの順序を含むテキストファイルがあります。VBAで2つに参加できるようにする必要があります。接続文字列にあるのでデータベースに問題はありませんが、無効なオブジェクトエラーを取得せずにテキストファイルパスをSQL文字列に渡すことができないようです。私はSQLとファイルへの接続に不慣れです。どんな助けでもいただければ幸いです。

私は次のことをしようとしています:

Sub Comp2TablesFrom2Databases()

Dim rs As ADODB.Recordset
Dim strSQL As String, strCon As String

Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
strCon = "Connection string to database" 'works fine in test code that only connects to the database

strSQL = "SELECT * " _
& "FROM Database LEFT JOIN [TextFilePath] " _
& "ON Database.[Order No] = [TextFilePath].[Order No] " _
& "WHERE [TextFilePath].[Order No] IS NULL;"

rs.Open strSQL, strCon

'do stuff

rs.Close
Set rs = Nothing

End Sub
4

2 に答える 2

0

前にスペースを忘れた"

代わりにこれを試してください

strSQL = "SELECT * " _
& "FROM Database LEFT JOIN [TextFilePath] " _
& "ON Database.[Order No] = [TextFilePath].[Order No] " _
& "WHERE [TextFilePath].[Order No] IS NULL;"

したがって、クエリは次のようになります。

SELECT * FROM Database LEFT JOIN [TextFilePath] ON Database.[Order No] = [TextFilePath].[Order No]WHERE [TextFilePath].[Order No] IS NULL;

だから[Order No]WHEREエラーをするべきです

テキスト ファイルに対するクエリの例を次に示します。

パスを追加する必要があると思います

ここに画像の説明を入力

于 2012-11-02T12:50:22.650 に答える
0

私の手っ取り早い解決策は、2 つのシートを含む補助 XL ファイルを作成することでした。1 つのシートはテキスト ファイルに対してクエリを実行し、もう 1 つのシートはデータベースに対してクエリを実行します。クエリは、補助 XL ファイルが開かれるたびに実行されます。メイン XL ファイルの 2 つの補助シートに左結合クエリがあり、フィルター処理されたデータが必要です。これは回避策ですが、機能します。私が遭遇した問題は、Jet OLEDB プロバイダーが SQL サーバーのクエリをサポートしておらず、SQL OLEDB がテキスト ファイルのクエリをサポートしていないことだと思います。両方を行うプロバイダーを誰かが知っていれば、私は非常に感謝しています.

于 2012-12-02T04:26:21.290 に答える