
Sub mon()
Dim myCon As New ADODB.Connection, FileName As String
Dim objRS As ADODB.Recordset
Dim strSQL As String
FileName = "C:\Users\fff\Desktop\ttt.xlsx"
strSQL = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Extended Properties=Excel 8.0;" & _
"Data Source=" & FileName & ";" '
myCon.Open strSQL
strSQL = ""
strSQL = strSQL & " SELECT 社員No,商品コード,SUM(売上) AS 売上合計"
strSQL = strSQL & " FROM [Sheet1$]" '★シート名に注意!
strSQL = strSQL & " WHERE 商品コード = 'A-1010'"
strSQL = strSQL & " GROUP BY 社員No,商品コード,売上;"
Set objRS = New ADODB.Recordset
Set objRS = myCon.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
myCon.Close
Set myCon = Nothing
End Sub
シート名 は Sheet1$ にしてあります。
Sheet1$が存在致しませんとエラーになります
わかるかた教えてくれませんでしょうか
参照設定はしてあります
No.3ベストアンサー
- 回答日時:
一旦元に戻って。
https://oshiete.goo.ne.jp/qa/10101750.html
Dim conStr As String
を宣言し
conStr = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Extended Properties=Excel 12.0 Xml;" & _
"Data Source=" & FileName & ";"
myCon.Open conStr
で開く。
データのあるBookの項目名は『社員No・商品コード・売上』は存在してますよね?
あとエラー名は今回も
>1つ以上の必要なパラメータ-の値が存在しません。
これでしたか?
No.2
- 回答日時:
No.1の補足に対して。
>strSQL = strSQL & " FROM [Sheet1$]" '★シート名に注意!
ここの件ですけど、実際ここを弄る必要としたらデータのあるBookのSheet名を"Sheet1"と入れ替えて後ろに"$"をつけるんですが・・・・
或いは
>シート名 は Sheet1$ にしてあります。
のSheet名から"$"を取るとか。
もしかしてSheet名を書き換える際に、FROM と [~$] の間の半角スペース消しちゃったとか?
No.1
- 回答日時:
>シート名 は Sheet1$ にしてあります。
説明不足でしたね。
Sheet名は『Sheet1』で [] と $ はテーブルの名称を明確化するための決め事です。
なのでSheet名が『あいうえお』なら、[あいうえお$] です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
accessで移動平均する方法
-
ACCESS2000のテーブル構造
-
請求と入金のテーブルの作成の...
-
続.ORACLEのSELECTのソートに...
-
重複するキーから一番古い年月...
-
2つのテーブルから条件に一致...
-
こんなSQLを教えてください
-
SQLについて質問です。 テーブ...
-
オラクルではできるのにSQLSERV...
-
数百万件レコードのdelete
-
SI Object Browserのテーブルス...
-
VBAの実行時エラー'2522'について
-
SQLで○○の値以外を持っているレ...
-
更新クエリでキー違反
-
Access VBA [リモートサーバー...
-
SELECT時の行ロックの必要性に...
-
AccessShareLock はどの程度気...
-
SQL SERFVER で外部キーのエラ...
-
大きなテーブルに対する問い合...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「マスタ」と「テーブル」の違...
-
accessで移動平均する方法
-
請求と入金のテーブルの作成の...
-
ACCESS2000のテーブル構造
-
重複するキーから一番古い年月...
-
2つのテーブルから条件に一致...
-
Accessユニオンクエリーで2つ...
-
主キーの変更
-
ACCESS 一つのフィールドに複...
-
PLSQLの識別子エラー
-
続.ORACLEのSELECTのソートに...
-
Accessでフィールドを比較した...
-
行方向のデータを横に並べる
-
update文で質問です。 下記の条...
-
ACCESS2000です。
-
VIEWでテーブルの集計結果...
-
場合によって条件を変えるSQL
-
商品コード番号を入力すると商...
-
ACCESSのコンパイルエラーについて
-
Sheet1$が存在致しませんとエラー
おすすめ情報
Set objRS = myCon.Execute(strSQL) 黄色反転
1つ以上の必要なパラメータ-の値が存在しません。
どういう意味でしょうか
ラストチャンスを下さい。
strSQL = strSQL & " SELECT 社員No,商品コード,SUM(売上) AS 売上合計"
strSQL = strSQL & " FROM [Sheet1$]" '★シート名に注意!
strSQL = strSQL & " WHERE 商品コード = 'A-1010'"
strSQL = strSQL & " GROUP BY 社員No,商品コード,売上;"
Set objRS = New ADODB.Recordset
Set objRS = myCon.Execute(strSQL)が黄色反転
FROM [Sheet1$] FROM 半角です。 [Sheet1$]Sheet1から"$"を取りました。