- 締切済み
Access2007からADO接続にてEXCEL
Access2007からADO接続してEXCELのシートにSELECT文を発行すると、 『[Microsoft][ODBC Excel Driver]選択された CollatingSequence は OS でサポートされていません。』のエラーが出ます。 SELECT文に条件を付けると上記エラーが発生します、条件なしの場合はエラーが発生しません。 エラーが発生してもデバッグで F8 で実行すると正常に条件付きでSELECTされます、 エラーは一回目のSELECTだけで、以降はエラーが発生しません。 対処の方法をお教え下さい。 よろしくお願いします。 (("Microsoft.Jet.OLEDB.4.0"を使用してもエラーが発生しました。)) (例) 'テンポラリファイルを取り込む Dim querydef As DAO.querydef Dim adoCON As New ADODB.Connection Dim adoRS As New ADODB.Recordset Dim strV As String Dim strQ As String 'ADOを使い読み込み専用モードでExcelファイルを扱う準備(オープン)をします adoCON.Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; " & _ "DBQ=" & "C:\test2014.xlsx" & ";" & _ "ReadOnly=True" 'SQLを実行(全件検索) OK Set adoRS = adoCON.Execute("SELECT * FROM [Shite1$]") 'SQLを実行(条件付き検索) NGエラーが発生します。 Set adoRS = adoCON.Execute("SELECT * FROM [Shite1$] WHERE A = 7 ")
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- nicotinism
- ベストアンサー率70% (1019/1452)
当方Office2010ですが同じ結果になりました。 ちょっとバグっぽいですね。 https://support.microsoft.com/kb/257819/JA に 『 ある特定のバージョンの MDAC を使用する Visual Basic デザイン環境で、プログラムがデザイン時に初めて Excel データ ソースに接続する際に次のエラー メッセージが表示されることがあります。 選択された CollatingSequence は OS でサポートされていません。』 とあって、そのリンク先の https://support.microsoft.com/kb/246167 に Visual Basic の場合の説明がありますが、VBA に関しては何もないです。。。 ODBC ではなくOLEDB だと当方ではスムースに行きました。 Sub qXL() Dim cnXL As ADODB.Connection Dim rsXL As ADODB.Recordset Dim cn As ADODB.Connection Set cnXL = New ADODB.Connection With cnXL .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = "Data Source= C:\test2014.xlsx" & _ "; Extended Properties=""Excel 12.0; HDR=YES;""" .Open End With Set rsXL = New ADODB.Recordset rsXL.Open "SELECT * FROM [Sheet1$] WHERE A = 7 ", cnXL, adOpenStatic msgbox rsXL!A rsXL.Close: Set rsXL = Nothing cnXL.Close: Set cnXL = Nothing End Sub エクセルの1行目がタイトル行としています。(HDR=YES) なので A フィールドから、7 を抽出条件です。
お礼
今回は、有難うございました。 On Error GoTo で対処しようと思いましたがなにかスッキリとせず色々試してみました。 回答頂いた方法を試して成功しました、スッキリしました。 有難うございました。