• ベストアンサー

選択クエリーについて

すでに出来上がっている選択クエリーを実行したときに、何レコード抽出されるか事前に知りたい場合、 DCountのような関数で知ることは可能でしょうか? Me![F_サブフォーム名].Form.RecordSource = "Q_クエリー名"のように、 サブフォームで明細を表示する前に、何件合致しましたという表示をさせたいのですが・・・。 (選択クエリーなので、テーブルを作成しているわけではありません。)

質問者が選んだベストアンサー

  • ベストアンサー
  • harumimi
  • ベストアンサー率46% (51/109)
回答No.2

Dcount関数のHELPを見て頂くとわかるかと思いますが、抽出条件は省略可能です。 下記のような感じでどうでしょうか? Dim lng件数 As Long lng件数=DCount("*", "Q_クエリー名") msgbox ""& lng件数 &"件合致しました。"

SHINYA-W
質問者

お礼

ありがとうございました。

SHINYA-W
質問者

補足

おお、これです。"*"というのが、解らなかったです。 これで解決しました。一歩前進です。 これからもよろしくお願いします。

その他の回答 (1)

  • harumimi
  • ベストアンサー率46% (51/109)
回答No.1

DCount関数は、選択クエリーでも使用できますよ。

SHINYA-W
質問者

お礼

回答、ありがとうございます。

SHINYA-W
質問者

補足

DCount関数の書き方なのですが、いつもはここに抽出条件を羅列しているのですが、 クエリーとして既に保存され、基になるテーブル名もそこに指定されている場合、どのように書けばいいのか、 いろいろやってはみているのですが、エラーになってしまいます。

関連するQ&A

  • Accessの選択クエリの選択を切り替えたい

    Accessで、フォームにコンボボックスとサブフォームを作成してコンボボックスで選択したテキストをキーワードにサブフォームに選択クエリを表示させようと考えています。 コンボボックスの項目は、値集合ソースでテーブルを設定して、選択された項目は、my_Text = Me.コンボ1.Textで取得して クエリのSQL文を変更すればいいのかなぁ?って想像しています。 でも、サブフォームに設定したクエリのSQL文の変更の仕方が解りません。どなたか?詳しい方いらっしゃいましたら教えて頂けないでしょうか?宜しくお願い致します。

  • ボタン押下でサブフォームのレコードソースを変更

    ボタン押下でサブフォームのレコードソースを変更 する方法を探しています。 元とするテーブルは同じですが、拾うべきフィールドが全く異なるため2つのクエリを作成しました。 元テーブル「メンバー一覧」 クエリ「q_1組のみ」「q_女性のみ」 フォームヘッダーにコンボボックスでどちらかのクエリを選択し、ボタンを押したら サブフォームが表示されるようにしたいのですが、 現在のところ、「閉じているかまたは存在しないオブジェクトを参照」というエラーが出てしまっています。 Me.でもForms("検索ウィンドウ").でも結果は同じでした。 ソースはクエリを指定しています。 Access2007 --------------------------------- Private Sub 検索ボタン_Click() If [Forms]![検索ウィンドウ]![申込形態] = "1組のみ" Then Me.検索結果サブフォーム.Form.RecordSource = "q_しぼりこみ1" Else Forms("検索ウィンドウ").検索結果サブフォーム.Form.RecordSource = "q_しぼりこみ2" End If

  • ACCESS クエリで”1”でないものを選択するには?

    ACCESS2003で排他選択("1"でないものを選択) をしたいのですが あるフィールドに”1”かブランクが入っていて ”1”以外のものを選択したいのですが クエリのデザイン画面で ------------------------- フィールド テーブル 並べ替え 表示 抽出条件  <> "1" ------------------------- 抽出条件に = "1" を入れると、"1"のレコードのみ 選択できます やりたいのは "1"以外のものを選択したいのです そこで 抽出条件に<> "1"といれると レコードがゼロ件になります また、Not "1"とか <> "1"、とか、Not = "1" と入れてみても、抽出結果はゼロ件になります 原因を教えてください

  • AccessVBA RecordSourceのリセットについて

    こんにちは。 フォーム上で、データベースを検索するものを作っています。 SELECT ~ WHERE ~ で条件に合致するレコードを、サブフォームを連続表示しています。 リセットボタンを作成して、検索結果を消したい(カラにしたい)と思うのですが、 Me![subform].Form.RecordSource = "" Me![subform].Requery 上記のVBAを実行すると、1レコードだけ表示され、コントロール上では「#Name?」が出てしまっています。 参照するテーブルが無いためにこういうことが起きているのだと思うのですが、防ぐ方法が分かりません。 教えてください。 宜しくお願いします。

  • ACCESS コンボボックスで選択した項目の内容をクエリで抽出

    今フォームの中にサブフォーム(クエリ)を入れようと思っているのですが、なかなかできません。 ・フォームを開く ・フォームのコンボボックスでテーブルの内容を選択 ・その内容をクエリで検索し抽出 ・そのクエリをサブフォームに表示

  • MicrosoftAccess2000の選択クエリについて教えて下さい

    MicrosoftAccess2000の選択クエリについて教えて下さい 当方は全くの素人ですが、なんとかAccess2000を用いてデータベースを作成しています。 ところが、時々クエリの内容を全く変更していないのにクエリ結果が違ってくる、といった現象が起きてしまいます。原因が分からず対処できずにいます。 どうかお知恵をお貸し下さい。 事例) Aテーブル(レコード数50)を基にした、Bクエリ(選択クエリ)があるとすると、 Bクエリの結果が、正しくは50レコードである筈なのに、100レコード(2倍)、あるいは400レコード(4倍)抽出されてしまう現象が起こります。(重複して抽出されます。) この現象は1ヶ月のうち1~2回しか起きません。 データベース構造をコピーし、Aテーブルをインポートした後にBクエリを開くと、もうこの現象は起きません。

  • 親フォームからサブフォームのレコードソースを設定

    親フォームからサブフォームのレコードソースを設定するには? フォーム1にテーブル1をドロップアンドドラッグして、「テーブル1のサブフォーム」を作成しました。 フォーム1にあるコマンドボタンから「テーブル1のサブフォーム」のRecordSourceを設定する方法を教えてください。 「テーブル1のサブフォーム」からなら Private Sub Form_Load() Me.RecordSource = "" End Sub とできるのですが、 やりたいことはフォーム1からのイベントなので 「テーブル1のサブフォーム」からのイベントは使えません。 だからってフォーム1の Private Sub コマンド2_Click() Me.テーブル1のサブフォーム.RecordSource = "テーブル1のサブフォーム" End Sub とするとコンパイルエラーになります。 良い方法があれば教えてください。アドバイスよろしくお願いします。

  • 選択クエリでの複数抽出条件の記述について

    フォーム上に「テキストボックス」、「コンボボックス」、「チェックボックス」の項目があって、それぞれの条件に合致した、データを抽出する選択クエリを書いてるのですが、うまく抽出してくれません。 「テキストボックス」、「コンボボックス」には、[Forms]![テーブル名]![入力するボックスの名前] or 、[Forms]![テーブル名]![入力するボックスの名前] is nullと記述しています。 「チェックボックス」には、、[Forms]![テーブル名]![チェックボックスの名前] = True or [Forms]![テーブル名]![チェックボックスの名前] = Falseと記述しています。 しかしながら、任意のコンボボックスからテキストを選択し、チェックボックスにレのついたデータを抽出したくても正しいデータを表示してくれません。 どなたか、クエリに詳しい方よろしくお願いいたします。

  • 選択クエリを基に不一致クエリを作成したけれど...

    識者の力をお借りしたく質問いたします。 質問ページから不一致クエリに関する内容を参考に、ある不一致クエリを作成しています。 しかし、出来るはずの方法で結果が正しく表示されず途方にくれています。 処理の内容としては、あるクエリのフィールドを参考に不一致クエリで差分レコードを抽出したいというものです。 通常不一致クエリはテーブルの主キーを基に作成するものと私は理解しているのですが、今回の処理では基のテーブルに主キーが無く、(作成できない事情があり)クエリで無理矢理主キーもどきのものを作りました。 クエリで作成したのは、数字6桁(最大で)の後ろにチェックディジットとしてアルファベット1文字を追加した計7文字のフィールドです。 例:131401A 不一致を抽出したい基となる2つのテーブルに対しこのクエリを作成しました。 この2つのクエリから不一致クエリで差分を抽出し、基のテーブルに追加クエリで追加したいのですが、どうやっても不一致項目が表示されません。 根本的にクエリからの不一致クエリは作成できないのでしょうか? よろしくお願いいたします。 ■状況 テーブル1/テーブル2(基となるテーブル、主キー無し) クエリ1/クエリ2(テーブル1/テーブル2のレコードにコードを追加するクエリ) コード1/コード2(クエリ1/クエリ2で作成したコード)例:131401A 不一致クエリ テーブル2 → テーブル1 (リレーションシップ) コード2 条件:Not Null ※テーブル2の方が最新レコードが入っているので、テーブル2の差分レコードをテーブル1に追加したいというのが基本的な内容です。 よろしくお願いいたします。

  • アクセス チェックボックスとクエリ

    いつもお世話になっております。アクセス初心者です。 あるフォームのチェックボックスのオンオフとコンボボックス、 クエリの選択条件が思うように連携できなくて困っています。 やりたいことは、、、フォームのチェックボックスが、 ON(True)ならば、 フィールドにコンボボックスのキーワードを含むレコードおよびフィールドが空白のレコードを抽出し、 OFF(False)ならば、 フィールドにコンボボックスのキーワードを含むレコードのみでフィールドが空白のレコードは抽出しない、 としたいのですが…。 IIfやSwitchで式を書きましたが、チェックを入れても外しても、どちらも抽出件数が0件になります。 クエリの実行は、コマンドボタンで別のフォームを開いています。 (IIfでは、エラーが出ているのか、チェックを入れた時『~キャンセルされました』と出ます。  IIf(…,…,IIf(…,…,…)) という感じで書きました。) Switchの時のクエリの抽出条件の式は、次のような感じです。 Switch([Form]![チェックボックス]=True,([テーブル名].[フィールド名]) Like "*" & [Form]![コンボボックス] & "*" Or Is Null,[Form]![チェックボックス]=False,([テーブル名].[フィールド名]) Like "*" & [Form]![コンボボックス] & "*") ( Like の前の『([テーブル名].[フィールド名])』は、式をビルドすると、勝手に追加されてきます。) このようなことはできないのでしょうか? 別の方法が必要でしょうか? すみませんが、教えてください。宜しくお願い致します。

専門家に質問してみよう