
Access2000にて現在、各部署別の勤怠データベースを作成しています。
その中で特定部署名をコンボックスで選択してその部署の勤怠データだけ抽出し、エクセルファイルへ出力する様にしたいのです。この場合、コンボックスで指定した 部署名をファイル名にして出力する場合はどの様にすれば良いでしょうか? 例えば、コンボックスで 部署名 ”東京営業部” と
選択したら抽出後、出力するファイル名は ”東京営業部.xls” として、並びにシート名は
”東京営業部”として 出力したいのです。 お手数ですが何卒よろしくお願い致します。

No.1ベストアンサー
- 回答日時:
質問日時がだいぶ前なので既に解決されているかもしれませんが・・・
VBAを使う方法になってしまいますが、
コンボボックス名は仮に「コンボ0」とし、以下のような感じでどうでしょうか。
(コンボボックスの変更時イベントあたりに埋め込むのが良いかと思います)
Private Sub コンボ0_Change()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim tbsql As String
Dim xlapp As Object
Dim xlbook As Object
Dim i As Long
'抽出条件の設定
tbsql = "select * from テーブル名 where [部署名] ='" & コンボ0.Value & "';"
Set db = CurrentDb
Set rs = db.OpenRecordset(tbsql)
'エクセルを起動
Set xlapp = CreateObject("excel.application")
xlapp.Visible = True
xlapp.ScreenUpdating = False
'新規ブックを追加し、抽出した内容を出力
Set xlbook = xlapp.Workbooks.Add
With xlbook
For i = 0 To rs.Fields.Count - 1 '1行目にフィールド名を出力
.Sheets(1).Cells(1, i + 1) = rs.Fields(i).Name
Next
.Sheets(1).range("A2").CopyFromRecordset rs 'A2セル以降にデータを出力
.Sheets(1).Name = コンボ0.Value 'Sheet1の名前を変更
.Sheets(2).Delete 'Sheet2を削除(このあたりは不要な処理なら削って下さい)
.Sheets(3).Delete 'Sheet3を削除
End With
'コンボボックスの値をファイル名とし保存
xlbook.SaveAs "c:\フォルダ名\" & コンボ0.Value & ".xls"
xlapp.ScreenUpdating = True
rs.Close
db.Close
End Sub
この回答への補足
ご回答ありがとうございました。
早速、テーブル名の所に設定するクエリ名を指定し、実行したのですが
"実行時エラー3601 パラメーターが少なすぎます。1を指定してください"
とメッセージが出力されます。
元となるクエリは今回、フォーム”抽出”のコンボックス”コンボックス0” から
”部署名”を指定し、該当の”部署名”だけのデータを抽出する パラメータクエリになっております。
エラー箇所は ”Set rs = db.OpenRecordset(tbsql)” の所ですが
上記に何か設定を施せばエラーが無くなりますでしょうか。
重ねてお手数ですがご存じであればお教え願います。
上記の件、お手数ですがよろしくお願い致します。
重ね重ねご回答有難うございました。
tbsql = "select * from テーブル名 where [部署名] ='" & コンボ0.Value & "';"
の箇所については、上記構文どおり クエリの元となる テーブルを指定した所
エラー表示はなくなりました。
本当に有難うございました。

No.2
- 回答日時:
補足に対しまして・・・
テーブル名の指定部分はクエリ名ではなく、そのクエリの元になっているテーブル自体の名前を指定して下さい。
「select * from~」の箇所の一文でそのままパラメータクエリ同様の役割をしてくれますので。
恐らくそれが原因かとは思いますが、もしそれでも駄目なようなら再度補足願います。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースファイル(.db)を開...
-
accsessで顧客コードで氏名を呼...
-
CSVファイルでテキストの改行の...
-
Accessを開きなおすとテキスト...
-
テキストボックスにコントロー...
-
sqlite(spatialite_gui)での...
-
汎用カード型のデータベースソ...
-
20万行あるデータを動かしたい
-
どうすれば 拡張子 を写真のよ...
-
DocuWorksでの印刷
-
はじめてのAccess 2019 について
-
.flex-direction プロパティは...
-
ファイルメーカーへネットワー...
-
警察はスマホに保存した動画や...
-
manana というやつで、間違って...
-
帳票フォームでのあるコンボボ...
-
エクセルのフィルタ抽出が固まる
-
構文エラー:演算子がありませ...
-
FileMaker Proに近い無料のWeb...
-
ACCESSのSQLで、NULLかNULLでな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSの集計クエリで3件ある...
-
エクセル関数 文字(ハイフン...
-
エクスプローラーで「2つの条件...
-
ACCESSのクエリで同じSQL文だが...
-
抽出したデータを修正して元の...
-
VBA CSVファイルを文字列に
-
Excel VBA:セルを新旧1つずつ...
-
Excel関数:別テーブルから条件...
-
HTMLファイルから、特定の部分...
-
商品テーブルからカテゴリ別の...
-
Select文の遅延
-
PS2のBGM抽出
-
アクセス クエリ-で空白以外の...
-
sqlserver2008 r2について
-
【マクロ】該当データを抽出したい
-
MS-DOSコマンドプロンプトを途...
-
空白文字とスペースの検索
-
エクセルデータの末尾の改行を...
-
【Excel 2007】クエリが実行で...
-
SQLの数値の編集について
おすすめ情報