4

MSAccess2003内から接続を記述してSQLCompact3.5データベースを開くことは可能ですか?MSAccess2003を使用してSQLCompact3.5データベースのデータを操作できるようにしたいと考えています。可能であれば、データベースを開くためにどのステートメントが使用されますか?

4

2 に答える 2

2

これは単なるアイデアであり、機能するかどうかは確認できませんが、SQL CompactにODBCドライバーがなく、リンクテーブルを作成できない場合は、SQLCompactのOLEDB接続文字列をソース接続文字列として使用できます。 Accessに保存されたQueryDefの それを機能させることができれば、テーブルごとに保存されたQueryDefを作成し、クエリがリンクされたテーブルであるかのようにそれらを利用できる可能性があります。

インストールしたOLEDBプロバイダーはJetだけであり、Accessはそれを好まないようであるため、自分のマシンでテストすることはできません。

しかし、試してみる価値があるかもしれません。Accessでこれを行った人がどこにも見つからないため、おそらく機能しません。しかし、なぜそれが機能しないのか、私にはよくわかりません。

繰り返しますが、私は単に間違っている可能性があります。

于 2008-12-02T05:30:03.617 に答える
1

特に SQL Compact で試したわけではありませんが、サーバーへの接続は標準のはずです。

  1. 使用可能なツールで ADODB ファイル (msado21.tlb) が正しく参照されていることを確認します。
  2. 次のような場所に接続文字列を書き留めます。

    MyConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;初期カタログ=YourDatabaseName;Data Source=YourSQLServerInstanceName"

    この文字列は、「統合セキュリティ」コンテキスト用に書かれています。SQL セキュリティ コンテキスト用に変更する場合は、ここをチェックして文字列を更新してください。理想的には、この文字列はコード内でパブリック変数として宣言する必要があります。

これが完了したら、ADODB レコードセットを開いて操作を開始できます。

public sub connectionTest
Dim activeConnection as ADODB.connection, _
    activeRecordset as ADODB.recordset

Set activeConnection = New ADODB.connection
activeConnection.connectionString = myCOnnectionString
activeConnection.open

set activeRecordset = New ADODB.recordset
'this will open a read-only recordset'
activeRecordset.open _
    "SELECT * FROM myTableName", _
    activeConnection, _
    adOpenStatic, _
    adLockReadOnly

if activeRecordset.EOF and activeRecordset.BOF then
    debug.print "No records in this table"
else
    activeRecordset.moveFirst
    do while not activeRecordset.EOF
        debug.print activerecordset.fields("myFieldName").value
        activeRecordset.moveNext
    loop
endif

activeRecordset.close
set activeRecordset = nothing
activeConnection.close
set activeConnection = nothing

end sub
于 2008-12-01T09:35:28.677 に答える