お世話になります。
Access2000のVBAで質問させてください。
現在、下記の様な状況です。
・「テーブルA」がある。
・「テーブルA」の"番号"が"1"のものだけを抽出する「抽出」クエリを作成
※クエリのデザインビューで"1"を指定するのでなく、
VBA上で、パラメータとして"1"を指定したい
1ではなく、2に変わる事もあるため、VBAで操作。
・結果をExcelに書き出したい
そこで、いろいろなサイトを見たのですが、
・VBAでパラメータを使用したクエリを作成
・Excelに書き出し
の2つの内容が別々に記載されており、
私の力では、別々で作成はできるのですが、
・VBAでパラメータを使用・設定したクエリをExcelに書き出し
する事はできませんでした。
本当に勝手で申し訳ございませんが、
・VBAでパラメータを使用・設定したクエリをExcelに書き出す
ソースを頂けないでしょうか?
「××と○○を組合わせればよい」などの、一部を抽出したコメントは、
不要ですので、本当に申し訳ございませんが、
ソースレベルでご返信頂ければと思います。
※一部を抽出したコメントは、ネットで見たのですが、結果、
目的を達成することはできませんでした。
お手数で申し訳ございませんが、なにとぞ宜しくお願い致します。
※何度ひつこい・勝手ですみませんが、ソースレベルでの
回答のみお願いします。
No.1ベストアンサー
- 回答日時:
クエリ「Q2」の内容が以下になっていると仮定します。
(「番号」は数値型 )SELECT * FROM テーブルA WHERE 番号=[数字入力];
このクエリを開くと「数字入力」が表示され、入力すると抽出結果が表示されます。
以下を VBA で記述し実行してみます。
Public Sub testDAO()
Dim rs As DAO.Recordset
Dim i As Long
With CurrentDb.QueryDefs("Q2")
.Parameters("[数字入力]") = 1
Set rs = .OpenRecordset
End With
If (Not rs.EOF) Then
With CreateObject("Excel.Application")
.WorkBooks.Add
With .Range("A1")
For i = 0 To rs.Fields.Count - 1
.Offset(, i) = rs(i).Name
Next
.Offset(1).CopyFromRecordset rs
End With
.Visible = True
End With
End If
rs.Close
Set rs = Nothing
End Sub
Public Sub testADO()
Dim rs As ADODB.Recordset
Dim cat As New ADOX.Catalog
Dim i As Long
cat.ActiveConnection = CurrentProject.Connection
With cat.Procedures("Q2").Command
.Parameters("[数字入力]") = 1
Set rs = .Execute
End With
If (Not rs.EOF) Then
With CreateObject("Excel.Application")
.WorkBooks.Add
With .Range("A1")
For i = 0 To rs.Fields.Count - 1
.Offset(, i) = rs(i).Name
Next
.Offset(1).CopyFromRecordset rs
End With
.Visible = True
End With
End If
rs.Close
Set rs = Nothing
End Sub
前者がDAO、後者がADO
直接 Excel を起動し、新規 Book に抽出結果を転記して表示するまでです。
後は、
.Parameters("[数字入力]") = 1
部分の値を、関数のパラメータにして受け渡しするとか・・・
フォームに入力した値を参照する様にするとか・・・・
※ .Offset(1).CopyFromRecordset rs でデータを転記してますが、
書式がチョッと・・・ってな場合には、
先に書式を設定してから CopyFromRecordset してみたりします。
※ DoCmd.TransferSpreadsheet を使いたい場合は、
「数字入力」部分をフォームで作成しておいて、
クエリではそのフォームを参照するようにします。(未検証)
参考にする/しないは、自己責任にてお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) access レポート 請求書について 2 2022/07/04 22:52
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) Excelで在庫表(クエリ、ピボット) 2 2022/04/11 17:11
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) スキルシートのエクセルの項目に 2 2023/04/04 22:41
- Access(アクセス) お世話になっています いまクエリを作っています。。 デザインビューの画面の集計の欄で、「グループ化」 4 2022/09/17 17:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA】計算結果に小数点第2位...
-
チェックボックスのある行を非...
-
MsgBoxの中にある数字や日付の...
-
VBA コンボボックスの表示(日...
-
時間表示で0:48:17と入力すると...
-
SQL文 Where句の複数検索
-
マイナス記号を▲で表す方法
-
zen-cartについて
-
POIを使った書式設定
-
スリープ状態とロック状態の違...
-
iosでpcのエロゲーを動かすアプ...
-
広辞苑第五版CD-ROM版のインス...
-
このようなスクリーンキャプチ...
-
webページをリンクまで含めて保...
-
WindowsVista IISのバージョン...
-
Windowsのサービス起動エラーお...
-
LANケーブルのつなぎ方
-
ネットワークトラブル監視ソフ...
-
リピータハブのループ構成
-
ilokのライセンス取得出来ません!
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VBA】計算結果に小数点第2位...
-
チェックボックスのある行を非...
-
クリスタルレポートの改ページ...
-
MsgBoxの中にある数字や日付の...
-
時間表示で0:48:17と入力すると...
-
POIを使った書式設定
-
VBでエクセル出力の文字を太字...
-
マイナス記号を▲で表す方法
-
VBA コンボボックスの表示(日...
-
spread6.0(セル連結)
-
VBA 条件付き書式で空欄は適用...
-
EXCEL2010でRGB指定できない
-
MSAccessでODBCを介してDB接続...
-
EXCELVBAであるセルに設定され...
-
FORMAT関数で値が変わる
-
PEAR::Pagerにアンカーリンクを...
-
【JAVA】POIを使用してExce...
-
JAVAのCalendarについて質問です
-
エクセルのメモについて教えて...
-
エクセル元データの#N/Aを非表...
おすすめ情報