よろしくお願いします。
■前提条件
OS:XP
Access version: 不明(2003以降だと)
技術力:Accessの初歩段階です。提供されているマクロを
いじっている程度。プログラミングをAccessに書いたことなし。
■サマリー
Access-マクロ-ワークシートの変換(エクスポート)でクエリにあるデータの有無を判定し、データがあるクエリのみExcelに出力したいです。
■詳細
Accessで複数のクエリ(1~10クエリ)があるとします。
そのクエリには、各クエリが参照している大元データによって、
データあるクエリ、ないクエリがあります。
たとえば、クエリの1~5までデータがあり、残りはデータがない
とし、データがある1~5まで同一ファイルのExcel出力したいと
します。1ファイルの中に5シート(クエリ1~5)ある状態です。
Accessのマクロ-ワークシートの変換で、指定したクエリは同一ファイルに複数シートとして出力できることまではできています。
※この場合、ワークシートの変換には、すべてのクエリを指定し、
すべて出力することにしています。
ただ、データがないシートを出力したくないのですが、どのように
データある、なしを判断し、出力すれば良いのでしょうか?
補足
もしくは、一旦データの有無は関係なく、全てのデータは出力し、
Excelのマクロにて制限するなどが考えれますが・・・
No.1
- 回答日時:
クエリにデータがあるかどうかを調べる関数
Function データ有無(ByVal クエリ名 As String) As Boolean
Dim S As String
Dim R As DAO.Recordset
S = CurrentDb.QueryDefs(クエリ名).SQL
Set R = CurrentDb.OpenRecordset(S)
データ有無 = Not R.EOF
R.Close
End Function
ワークシートに変換する
DoCmd.TransferSpreadsheet acExport, , クエリ名, Excelファイル名
出力先(Excelファイル名)は同じものにしておきます。
No.2ベストアンサー
- 回答日時:
> 技術力:Accessの初歩段階です。
提供されているマクロを> いじっている程度。プログラミングをAccessに書いたことなし。
とあるのと、
> Accessのマクロ-ワークシートの変換で、指定したクエリは同一ファイルに
> 複数シートとして出力できることまではできています。
とのことから、恐らく、マクロの『アクション』列に、対象となるクエリの数だけ、
「ワークシート変換」が並んでいる状態ではないかと思います。
以下、この前提で、現在のマクロへの加筆修正の仕方を説明します。
(恐らく、現状でできる最も簡単な方法かと思いますので)
1)当該マクロをデザインビューで開く
2)マクロの『条件』列が表示されていない場合は、Accessのメニューで
「表示(V)→条件(C)」を選択して、『条件』列を表示
3)「ワークシート変換」アクションで指定している『テーブル名』欄のクエリ
の名前を「クエリ1」とした場合、その行の『条件』欄(=「ワークシート
変換」の左隣)に、以下の式を入力:
DCount("*","クエリ1")>0
4)以下、「ワークシート変換」が記載されている全ての行の『条件』欄に、
同様の式を入力
5)マクロを保存して閉じる
・・・以上です。
なお、『ワークシート変換』の『テーブル名』で「=Forms!フォーム1!テキスト0」
といった形でフォームのテキストボックスを参照している場合は、『条件』欄の
式を以下のようにして下さい:
DCount("*",Forms!フォーム1!テキスト0)
※上では「,」(カンマ)の後のクエリ名を「"」(ダブルクォーテーション)で囲んで
いるのに対し、下の場合はその囲みがないので注意してください。
DexMachinaさん
ありがとうございます。おかげで上手くいきそうです。
あとは、各クエリに対してこの条件を設定するという、マンパワー的な作業になります。・・・このマンパワーはどうにもなりませんよね
いずれにしても、ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) Accessのスプレッドシートエクスポートで、シートが追加されてしまう 2 2022/07/16 21:45
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- Excel(エクセル) VBAで「クエリと接続」の画面を出せますか? 2 2022/10/24 13:35
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
- Access(アクセス) Accessのクエリで、replace関数を使い、データの中にある”をブランクに置き換えたいのですが 6 2022/06/15 14:54
- Access(アクセス) Accessのリンクテーブルのパスを相対パスにする方法について教えて頂きたいです 1 2023/02/08 13:29
- Access(アクセス) お世話になります ACCESSを使用しています 下記のクエリデータ(1)があります 商品名 行数 A 1 2022/09/05 08:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS で 項目名を出力せずに...
-
EXCELでシート別にPDF出力出来...
-
エクセルで縦のカラムデータを...
-
指数表示しない方法
-
Accessでエクセル出力の保存先指定
-
アクセスクエリ(複数)→マクロ...
-
Accessレポート出力時の範囲指定
-
teraterm から起動したプログラ...
-
Access データベースの最適化を...
-
AccessでUTF-8のtxtデータを出力
-
エクセル 入力フォームのデータ...
-
アクセスからエクスポートする...
-
Accessから指定した画像データ...
-
Access内の任意のクエリを指定...
-
access 更新ボタンを作る
-
ACCESSで毎回CSVファイルをテー...
-
Access Excel出力する保存先を...
-
AccessのデータをExcelの決まっ...
-
【Excel】[Expression.Error] ...
-
SQLPLUSで結果を画面に表示しない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスクエリ(複数)→マクロ...
-
ACCESS で 項目名を出力せずに...
-
エクセルで縦のカラムデータを...
-
EXCELでシート別にPDF出力出来...
-
Access Excel出力する保存先を...
-
Accessでエクセル出力の保存先指定
-
指数表示しない方法
-
teraterm から起動したプログラ...
-
Access データベースの最適化を...
-
Access内の任意のクエリを指定...
-
AccessでUTF-8のtxtデータを出力
-
AccessのデータをExcelの決まっ...
-
エクセル 入力フォームのデータ...
-
access 更新ボタンを作る
-
アクセスからエクセルの起動が...
-
Accessから指定した画像データ...
-
MS SQL上にあるデータベースの...
-
Accessレポート出力時の範囲指定
-
Accessにはマクロ記録って無い...
-
クエリデータの取り出し
おすすめ情報