
strSQL = ""
strSQL = strSQL & " SELECT S.顧客番号, S.顧客名" ←なんとなくいいと思うがs.の意味?
任意でつけてもいいと認識している
strSQL = strSQL & " FROM" たぶんあっている
strSQL = strSQL & " [顧客マスタ$]" ←あっているかも $はシートだと思う
strSQL = strSQL & " ORDER BY S.顧客番号" ←違うとおもう
シート名 顧客マスタ
顧客番号 顧客名 住所
1 A 東京
2 B 神奈川
ここから A 東京
を取り出したい
シート名 抽出
教えくれませんでしょぅか
No.1ベストアンサー
- 回答日時:
まず前回の
https://oshiete.goo.ne.jp/qa/10110963.html
ドライバの問題は解決できましたか?
そこは抜きにSQL文のみとしてであれば違いますね。
決定的に違うのは
>←なんとなくいいと思うがs.の意味?
>任意でつけてもいいと認識している
『任意』に勝手につける物ではないと言う事です。
あくまで『存在するテーブル名等を簡潔に書けるよう宣言をした後に使う』のです。
それに今回は使用するテーブルが1つなので、本来は必要ないと思うのですけどね。
あと『A 東京』を取り出すための条件がないのと、
『抽出されるデータは1つなのに、並び替え(ORDER BY)をしている』点ですかね。
strSQL = ""
strSQL = strSQL & " SELECT S.顧客名,S住所"
strSQL = strSQL & " FROM"
strSQL = strSQL & " [顧客マスタ$] As S" ’ここでテーブル名を『S』に置き換える。
strSQL = strSQL & " WHERE S.顧客番号 = 1"
でしょうかね。
Sub test()
Dim objCn As New ADODB.Connection
Dim objRS As ADODB.Recordset
Dim GYO As Long, COL As Long
Dim strSQL As String
With objCn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties("Extended Properties") = "Excel 8.0"
.Open ThisWorkbook.Path & "\" & ThisWorkbook.Name
End With
strSQL = ""
strSQL = strSQL & " SELECT 顧客名,住所"
strSQL = strSQL & " FROM"
strSQL = strSQL & " [顧客マスタ$] As S" 'ここでテーブル名を『S』に置き換える。
strSQL = strSQL & " WHERE 顧客番号 = 2"
Set objRS = New ADODB.Recordset
Set objRS = objCn.Execute(strSQL)
With Worksheets("集計表")
.Range(.Range("A2"), .Range("A2").SpecialCells(xlLastCell)).ClearContents
.Range("A2").CopyFromRecordset objRS
End With
objCn.Close
Set objCn = Nothing
End Sub
やっとうまくいきました。なんか凄いです。
有難うございました。
No.3
- 回答日時:
No.1の回答についてです。
まず
>S.顧客名 S住所
ここはこちらのミスで正しくは
S.顧客名 S.住所
と同じ略されたテーブルのフィールド(1行目の項目名)になりますね。
でも本来はテーブルが1つだけなので As S をなくして、顧客名や住所だけで良いのですけどね。
>後ドライバですが 最初の段階で接続できたのですから
接続は出来たけどRecordsetで「1つ以上の必要なパラメータの値が設定されていません」と出るようであれば、
http://www.excel.studio-kazu.jp/kw/2015101513400 …
https://qiita.com/yaju/items/86314412741deb806366
あたりも見てみてください。
No.2
- 回答日時:
>strSQL = strSQL & " [顧客マスタ$]" ←あっているかも $はシートだと思う
要は
Sheet名+"$" を [] 内に書き入れるという事です。
文字列の連結としてみれば理解しやすいかな?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) SQLで抽出 4 2022/12/04 13:55
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Excel(エクセル) Excel 指定した固有番号で、複数の行を削除する方法は? 2 2022/03/30 15:18
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Excel(エクセル) 関数の式を教えてください 2 2022/04/04 11:15
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Visual Basic(VBA) 複数ページあるPDFファイル内の文字列等の情報をキーにPDFをグループ分け分割したい。 2 2022/06/25 09:51
- Excel(エクセル) 【Excel】住所に郵便番号を付記する方法 3 2022/05/07 17:15
- Excel(エクセル) エクセル 多数のファイルから値を抜き出したい 4 2022/12/12 16:49
- その他(悩み相談・人生相談) 顧客情報って話しますか? 2 2022/10/21 12:56
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラー 1068 (42000): 複数の主...
-
mysqlがインストールされている...
-
#1062 - '0' は索引 'PRIMARY' ...
-
下記の問合せを行うクエリを、P...
-
【初歩】ラジオボタンをつかっ...
-
下記の問合せを行うクエリを、 ...
-
下記の問合せを行うクエリを、P...
-
SQLでカラムを追加し、条件に合...
-
下記の問合せを行うクエリを、P...
-
下記の問合せを行うクエリを、P...
-
テーブル名が可変の場合のクエ...
-
MySQLのテーブル作成でハイフン...
-
LIMIT で条件を満たしているの...
-
MAMP 99ドル約1.6万円 高い...
-
うまくいきません教えてくださ...
-
select *, `人口(男)`AND`人口(...
-
下記の問合せを行うクエリを、P...
-
何にかが違うから エラーなんで...
-
同一日に複数レコードがある場...
-
SQLです教えてくださいお願いし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
不動産検索サイトのような複数...
-
SQL
-
SELECT時の行ロックの必要性に...
-
「マスタ」と「テーブル」の違...
-
ACCESS2007 フォーム 「バリア...
-
ACCESSのSQLで、NULLかNULLでな...
-
SELECT文でのデッドロックに対...
-
ビューで引数を使いたい
-
Access VBA [リモートサーバー...
-
Accessにインポートしたら並び...
-
インデックスの再構築の意味っ...
-
sqlserverで集計結果をUPDATEし...
-
DataTableから条件を満たした行...
-
3つ以上のテーブルをUNIONする...
-
accessのエクスポートエラーに...
-
2つのテーブルから条件に一致...
-
SI Object Browserのテーブルス...
-
クエリのキャンセルがいつにな...
-
オラクルではできるのにSQLSERV...
-
Accessでクエリを完了できませ...
おすすめ情報
テーブル名 s.顧客名ということですね わかりました。シートに顧客名 テーブルにs. だからs.で登録できなかったんですね という事は、この場合え、一列事にテーブルを作るということですか。
S.顧客名 S住所
後ドライバですが 最初の段階で接続できたのですから最初めぐさんから頂いたコードでやります。ACEではなく。今から仕事です。終了しだいやりたいですか、残業かな?