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(パワーポイント)
-
ACCESSで値を代入できないとは?
Visual Basic(VBA)
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
-
4
アクセスVBAのMe!と[ ]
Access(アクセス)
-
5
accessで重複を防ぎたい
Access(アクセス)
-
6
AccessのFormの設定で、開いた時に必ず最大化で表示する方法が分からず困っています
Access(アクセス)
-
7
「RunSQL」と「Execute」の違い
Access(アクセス)
-
8
OLE又はDDEを使うVISUAL BESICモジュールを実行している時は…と表示されます
その他(Microsoft Office)
-
9
テーブル1 2 3 の結合
その他(データベース)
-
10
まちがっているところ
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
不動産検索サイトのような複数...
-
「マスタ」と「テーブル」の違...
-
ACCESS2007 フォーム 「バリア...
-
主キーにインデックスは貼らな...
-
クエリのキャンセルがいつにな...
-
Access VBA Me.Requery レコー...
-
データの二重表示の原因
-
Oracleの排他制御について教え...
-
ACCESSのSQLで、NULLかNULLでな...
-
排他ロックしたレコードが、別...
-
数百万件レコードのdelete
-
SELECT時の行ロックの必要性に...
-
ACCESSにて全項目(レポート)...
-
列サイズ変更時、DB停止は必要?
-
accessのロック
-
既に使用されているので、使用...
-
大学でSQLの授業があるのですが...
-
Access 1レコードずつcsvで出力...
-
bcpによる、テーブル→CSVファイ...
-
ビューで引数を使いたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
不動産検索サイトのような複数...
-
SQL
-
半角数字を全角数字で検索でき...
-
GROUP BYについて
-
一定回数以上の入金データの明...
-
「マスタ」と「テーブル」の違...
-
ACCESSのSQLで、NULLかNULLでな...
-
Accessにインポートしたら並び...
-
データの二重表示の原因
-
SELECT時の行ロックの必要性に...
-
2つのテーブルから条件に一致...
-
ACCESS 一番最新の日付の金額...
-
重複するキーから一番古い年月...
-
2つの項目が重複するレコード...
-
ACCESS2007 フォーム 「バリア...
-
[ BETWEEN ] vs [ >= AND <= ]
-
3つ以上のテーブルをUNIONする...
-
sqlserverで集計結果をUPDATEし...
-
ビューで引数を使いたい
-
SELECT文でのデッドロックに対...
おすすめ情報
テーブル名 s.顧客名ということですね わかりました。シートに顧客名 テーブルにs. だからs.で登録できなかったんですね という事は、この場合え、一列事にテーブルを作るということですか。
S.顧客名 S住所
後ドライバですが 最初の段階で接続できたのですから最初めぐさんから頂いたコードでやります。ACEではなく。今から仕事です。終了しだいやりたいですか、残業かな?