よろしくお願いします。
クエリのデータをフォームで表示し、その時にコンボボックスで表示するデータを指定し抽出・表示しています。([授業名]フィールドのコンボボックスで、指定した授業のみ抽出します)
最終的に抽出したデータを、コマンドボタンでエクスポートできるようにしたいのですが、私の記述方法では「全てのクエリのデータ」がエクスポートされてしまいます。
どのような方法でもいいのですが、指定したデータ([授業名])のみエクスポートする方法はないでしょうか・・・?
*データエクスポートのVBA記述内容*
Private Sub cmdデータ出力_Click()
'名簿データのエクスポート
Dim msg As String
msg = MsgBox("名簿データを出力します。", vbYesNo, "出力確認")
If msg = vbYes Then
'どの場所にデータをエクスポートするか指定
DoCmd.TransferSpreadsheet acExport, , "Q_受講者名簿用", _
"Y:\○○課\住所録データエクスポート場所\" & "受講者名簿【ACCESSより】.xls", True
answer = MsgBox("受講者名簿データを出力しました", vbOKOnly, "データの出力の確認")
cancel = True
End If
End Sub
*ちなみに、フォーム上でフィルターをかけたVBAは*
Private Sub cmd名簿_Click()
Dim stList As String
Dim stFil As String
If combo1 <> "" Then
stFil = "[授業名]='" & combo1 & "'"
End If
Me.Filter = stFil
Me.FilterOn = True
End Sub
No.2
- 回答日時:
いろいろ書いていますが要は「Q_受講者名簿用」を出力しているだけですね
ということはこのクエリがご希望のものでないというだけではないですか
〉[授業名]フィールドのコンボボックスで、指定した授業のみ抽出します
クエリでもこの抽出を指定してやればいいだけのことだと思いますけど
この回答への補足
ご意見ありがとうございます。
回答に補足をさせて頂いて再度ご意見いただければ幸いです。
「Q_受講者名簿用」のデータを出力していることになります。
データ量が多く(レコード件数30000くらい)、また、その時々で呼び出したいレコードは様々です。
レコードの内容は「講座内容」「受講者番号」「受講者氏名」くらいですが。講座の数が50くらいあるので、「●●講座の受講者名簿データ」が必要ということになるのです。フォーム上ではできてもデータとしてエクスポートできないので困っております。
私が現在試行錯誤している方法以外で、ユーザーが「講座内容」をコンボボックスで選択して、選択した講座内容のみの名簿データをエクスポートする方法があれば、教えていただければと思います。
どうぞよろしくお願いいたします。
No.1
- 回答日時:
いろいろ方法として、考えられますが・・・
DAO等で、出力用のクエリを一時的に作成するとか
DAO等で、直接Excelに書き込み、保存を掛けるとか
例えばの話だから、他にも考えられないことは無いけど・・・
Excelへ直接テーブルを書き込む場合ね
Private Sub Excel_Export()
Dim xlApp As Excel.Application
Dim DAOrs As DAO.Recordset
Dim DAOfd As DAO.Field
Dim usSQL As String
Dim usRow As Long
Dim usCol As Long
DoCmd.Hourglass True
' usSQLを書き換えることによって、何とでも可
usSQL = "Select * From Q_受講者名簿用 Where [授業名]='" & combo1 & "';"
Set xlApp = CreateObject("Excel.Application")
Set DAOrs = CurrentDb.OpenRecordset(usSQL)
With xlApp
' 出力用Excel新規作成
.Workbooks.Add
' 出力用Excel表題作成
usCol = 1
For Each DAOfd In DAOrs.Fields
.ActiveSheet.Cells(1, usCol) = DAOfd.NAME
Select Case DAOfd.Type
Case dbDate
.ActiveSheet.Columns(usCol).NumberFormat = "yyyy/mm/dd"
Case dbInteger, dbLong
.ActiveSheet.Columns(usCol).NumberFormat = "#,##0"
Case Else
.ActiveSheet.Columns(usCol).NumberFormat = "@"
End Select
usCol = usCol + 1
Next DAOfd
' 出力用Excelリスト作成
usRow = 2
While Not DAOrs.EOF
usCol = 1
For Each DAOfd In DAOrs.Fields
.ActiveSheet.Cells(usRow, usCol) = DAOfd.Value
usCol = usCol + 1
Next DAOfd
usRow = usRow + 1
DAOrs.MoveNext
Wend
' 閲覧用Excel整え
.Range("A2").Select
.ActiveWindow.FreezePanes = True
.Cells.Columns.AutoFit
.Cells.Rows.AutoFit
.Visible = True
End With
Set xlApp = Nothing
Set DAOrs = Nothing
DoCmd.Hourglass False
End Sub
って、感じ・・・エクセル上での表示書式や色々整えてるから、余分なところが多いかもしれないけどね
この回答への補足
ご回答ありがとうございます。
まだまだ勉強不足の私には、上記の内容をどのように扱えばいいかちょっと迷ってしまっています。申し訳ないです。
>出力用のクエリを一時的に作成するとか
具体的にどのような方法かご回答頂ければ嬉しいです。
できればエクセルの方にVBAを記述する方法ではなく、ユーザーが普段使用するアクセスでVBAを記述できているほうがいいので、アクセスで希望した「授業名」のみのデータをエクセルに出力する方法があれば、教えていただければと思います。よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
ACCESS2010 フィルタ後のエクスポート
その他(Microsoft Office)
-
サブフォームでフィルタしたデータのCSV出力
その他(データベース)
-
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
-
4
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
5
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
6
「#エラー」の回避
Access(アクセス)
-
7
Access サブフォームでの選択行の取得
その他(データベース)
-
8
Access 抽出したフォームをファイル出力
その他(データベース)
-
9
access マクロでのフィルタの解除の方法
Access(アクセス)
-
10
【Access】クエリで抽出したデータをCSV形式でエクスポートできますか?
Access(アクセス)
-
11
アクセスVBAのMe!と[ ]
Access(アクセス)
-
12
AccessからExcelへの条件付エクスポート
その他(データベース)
-
13
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
14
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
15
ACCESS VBA メインフォーム及びサブフォームのフィルタのクリア
Access(アクセス)
-
16
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
17
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
18
アクセス:既定値に土日含まず3日後を指定したい
Access(アクセス)
-
19
ACCESSで日付ごとに自動連番(日付+連番)する方法
Access(アクセス)
-
20
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
AIに回答させるって
-
KEYENCEのシーケンスプログラム...
-
cout と cerrの違い
-
プログラムについての質問です...
-
printfとputcharの違いは
-
VBAのExecメソッドで画面を非表...
-
ListViewの複数選択について
-
バッチファイル フォルダサイ...
-
printfの書式%.*s
-
C# 標準出力のencodingをutf8に...
-
Windows Formアプリからコンソ...
-
ブランキング期間
-
AviUtl 出力の失敗
-
汎用人型決戦兵器「人造人間エ...
-
ACCESS クエリ→フォーム...
-
標準出力の上書き
-
C言語の標準関数の引数の順番に...
-
CRC16計算について
-
最近の画像生成AIについて。 長...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
コンセントの電力は入力と出力...
-
MMDでavi出力が出来ない
-
OBS配信すると、マイクが途切れ...
-
VBAでテキスト出力時のスペース...
-
cout と cerrの違い
-
COBOLのMOVEで桁数が異なる場合
-
ACCESS クエリ→フォーム...
-
アクセスでエクセルに出力する...
-
VBAのExecメソッドで画面を非表...
-
テキストファイルから特定の文...
-
Windows11対応の3入力1出力 USB...
-
VBAで有効数字の設定
-
スマホのバッテリー消費につい...
-
Excel VBAで値を変えながら、pd...
-
NTTのホームゲートウェイとOCN...
-
定格冷房能力(出力)とは 定格...
-
プログラムについての質問です...
-
PS5をMacBookProに出力したいの...
おすすめ情報