プロが教える店舗&オフィスのセキュリティ対策術

Sub test_2()
Dim objCn As Object '★参照設定なし版
Dim objRS As Object '★参照設定なし版
Dim i As Integer
Dim strSQL As String
Dim Filename As String

Dim conStr As String

Filename = "C:\Users\fff\Desktop\ttt\ttt.xlsm"

Set objCn = CreateObject("ADODB.Connection") '★参照設定なし版
Set objRS = CreateObject("ADODB.Recordset") '★参照設定なし版

conStr = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Extended Properties=Excel 12.0 xlsm;" & _
"Data Source=" & Filename & ";" '

objCn.Open conStr
strSQL = ""
strSQL = strSQL & " SELECT 社員No,商品コード,SUM(売上) AS 売上合計"
strSQL = strSQL & " FROM [Sheet1 $]" '★シート名に注意!
strSQL = strSQL & " WHERE 商品コード = 'A-1010'"
strSQL = strSQL & " GROUP BY 社員No,商品コード,売上;"


Set objRS = objCn.Execute(strSQL)

With ActiveSheet '★ActiveSheetを使用
.Range(.Range("A2"), .Range("A2").SpecialCells(xlLastCell)).ClearContents
For i = 0 To objRS.Fields.Count - 1
.Cells(1, i + 1).Value = objRS.Fields(i).Name
Next
.Range("A2").CopyFromRecordset objRS
End With

objCn.Close
Set objCn = Nothing
Set objRS = Nothing
End Sub

インストール可能なISAMドライバ見つかりませんでした。
ドライバ必要なのでしょうか

A 回答 (2件)

No.1です。



仮にOffice2013、2016だとして

クイック実行形式の Office をインストールすると ODBC / OLEDB が利用できない
https://blogs.technet.microsoft.com/officesuppor …

このような記事があるので

クイック実行形式 (C2R) と Windows インストーラー形式 (MSI) を見分ける方法
https://blogs.technet.microsoft.com/officesuppor …

こちらで『どっちなのか?』を確認されては。
    • good
    • 0

Officeのバージョンの関係(特にAccessをインストールしているか)なのか、Officeが32bit(私)と64bitの違いなのか・・・


ほぼお手上げですね。

取り敢えず私は
Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント
https://www.microsoft.com/ja-jp/download/details …

これを入れたので上記は出来ましたが、Office(特にAccess?)が最新版とかなら、入れると問題になるかもです。
特にOSが64bit・Officeが32bitだと変になるとか何とか。
取り敢えず参照設定で接続は出来たのにSQL文がダメって事は、システム環境の違いで回答しても無理っぽいのかな?

ご自身の環境(OS・Officeのバージョン及び何bitなど)を補足しておいた方が別の回答が付くかもですね。
    • good
    • 0
この回答へのお礼

助かりました

ここまでお付き合い有難うございました。
なかなかなんでも簡単にはいかないですね
次期冬休みが近いので、その時また、
挑戦します。
有難うございました。

お礼日時:2017/12/03 20:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す