私の仕事で1つのプロジェクトに問題があります。私はSharepoint上のデータベースを持っています。それは.accdbファイルにアクセスされます(Access 2007/2010)。これまでは、標準のConnectionString(プロバイダ - ACEDB 12.0のみ)でADODB Connectionを使用しました。ADODB RecordsetはAccessから多値フィールド全体を取得できません
データベースから複数値フィールドの1つからデータを取得しようとすると、レコードセットはこの列に対して空です。例:
ID、場所、名前、人物(MVF)、トレーナー(MVF)の列をいくつか取得する必要があります。
[人]列の単一レコードの値が3-4より大きい場合、この列のレコードセットは空です。私がセミコロンで区切られた値を取得している場合、私はセミコロン区切りの値を取得しています(MVFのソースデータを取得するためのLEFT JOIN文でさえ違いはありません)
私はExcelで作業しています。ユーザーはExcelのみを使用します。
私はRecordsetを見ると、人々の価値を置くべきときは空の値を持っています。これを基にして、問題は接続のタイプなどによって引き起こされると思います。私もDAO接続を試みました - 肯定的な結果はありません。
私はまた、SQLを実行するためにのみ.accdbファイル内にテンポラリデータベースを作成しようとしました。(INSERT INTO tmpDB SELECT inputDBから人を擬似コードすると、構文は良好です)多値フィールドの場合はINSERT INTO "となります。
MVFは使用することをお勧めしませんが、それはSharePoint DBであり、私の役割はdbからExcelにデータを取得することだけです。私は、ODBCドライバを使用しようとした
更新...
objConn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=" & myconn & ";Uid=Admin;Pwd=;"
...代わりにOLEDBプロバイダの...
objConn.Provider = "Microsoft.ACE.OLEDB.12.0"
objConn.Open myconn
...しかし、 MVFは常に空です。
OLEDBドライバの代わりにAccess ODBCドライバを使用してみましたか? –
それは助けることができます。私は明日それを確認します。 – Krukosz