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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Access VBA SQL文で教えてください
PowerPoint(パワーポイント)
-
「RunSQL」と「Execute」の違い
Access(アクセス)
-
accessの SQL文 INSERT命令
Access(アクセス)
-
-
4
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
5
ACCESS フォームをそのまま印刷について
その他(データベース)
-
6
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
7
アクセス VBAについて FROM句の構文エラー
Access(アクセス)
-
8
テーブル1 2 3 の結合
その他(データベース)
-
9
まちがっているところ
Visual Basic(VBA)
-
10
Vba初心者です。下記のコード助けてください Loopに対するDoがありませんと表示されます Sub
オープンソース
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
不動産検索サイトのような複数...
-
「マスタ」と「テーブル」の違...
-
SELECT時の行ロックの必要性に...
-
Accessのリンクテーブルについて
-
SQLServer + PHP で直近に追加...
-
ACCESS 一番最新の日付の金額...
-
ビューで引数を使いたい
-
重複するキーから一番古い年月...
-
accessテーブル作成クエリを実...
-
データの二重表示の原因
-
どういう時にテーブルロックを...
-
Accessにインポートしたら並び...
-
Access VBA [リモートサーバー...
-
場合によって条件を変えるSQL
-
[ BETWEEN ] vs [ >= AND <= ]
-
ACCESS2007 フォーム 「バリア...
-
2つのテーブルから条件に一致...
-
SQLサーバーのテーブルの値...
-
ユニオンクエリで繋げられるテ...
-
あるテーブルのデータを追加、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
不動産検索サイトのような複数...
-
SQL
-
半角数字を全角数字で検索でき...
-
「マスタ」と「テーブル」の違...
-
[ BETWEEN ] vs [ >= AND <= ]
-
2つのテーブルから条件に一致...
-
ACCESSのSQLで、NULLかNULLでな...
-
オラクルではできるのにSQLSERV...
-
SELECT時の行ロックの必要性に...
-
3つ以上のテーブルをUNIONする...
-
SELECT文でのデッドロックに対...
-
2つの項目が重複するレコード...
-
Access VBA [リモートサーバー...
-
数百万件レコードのdelete
-
ACCESS2007 フォーム 「バリア...
-
Accessにインポートしたら並び...
-
ビューで引数を使いたい
-
ACCESS 一番最新の日付の金額...
-
accessのロック
-
重複するキーから一番古い年月...
おすすめ情報
テーブル名 s.顧客名ということですね わかりました。シートに顧客名 テーブルにs. だからs.で登録できなかったんですね という事は、この場合え、一列事にテーブルを作るということですか。
S.顧客名 S住所
後ドライバですが 最初の段階で接続できたのですから最初めぐさんから頂いたコードでやります。ACEではなく。今から仕事です。終了しだいやりたいですか、残業かな?