Access 検索用フォームで全件表示させる方法

このQ&Aのポイント
  • Access2003において、検索用のフォームを作成し、複数のコンボボックスを用いて検索内容を選択し、決定ボタンで他のフォーム画面に検索結果を表示する方法について質問します。
  • 検索用フォームにて、コンボボックスのうち選択されていないコンボボックスの内容についても全件表示させる方法を教えてください。
  • 具体的には、特定の会社を選択した場合に、未選択の支店と社員の情報も全件表示されるようにしたいです。お知恵をお貸しいただけますと幸いです。
回答を見る
  • ベストアンサー

access 検索用フォームにてコンボボックスで何も選ばなかったときに全件表示させる方法

access2003において、 検索用のフォームを作成し、コンボボックスにて検索内容を選択し、 決定ボタンにて他のフォーム画面へ検索結果を表示するようにしています。 この際、検索用フォームには複数のコンボボックスを用いてますが、 そのうちいくつかのコンボボックスを選択せずに決定ボタンを押した際に選択していないコンボボックスの内容については全件表示させたいと考えております。 例)コンボA=会社 コンボB=支店 コンボC=社員 コンボAのみ特定の会社を選択し、コンボB、コンボCは未選択だった場合、コンボAで選択した会社の支店・社員を全件表示したいのです。 お知恵をお貸し下さい。 以下VBAのソースです Private Sub cmdSearch_Click() On Error GoTo Err_cmdSearch_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "F_検索" stLinkCriteria = "[会社CD]=" & Me![会社] & "And [支店CD]=" & Me![支店] & "And [社員CD]=" & Me![社員] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cmdSearch_Click: Exit Sub Err_cmdSearch_Click: MsgBox Err.Description Resume Exit_cmdSearch_Click End Sub

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

  • ベストアンサー
  • a3453a
  • ベストアンサー率28% (132/460)
回答No.2

あまり自信はありませんが like命令みたいな機能を期待して 「ここ」 へは  * をいれてみるといいかもしれません (* には あいまい検索の機能が有るので) (自信なし) あるいは nullの時には stLinkCriteria = "[会社CD]=" & Me![会社] というような感じで [会社]だけの条件文を使用するという ロジックも方法として有ると思います

chemistry2005
質問者

お礼

またまたご返答ありがとうございます。 どうにか動くものができました。 また困った時、よろしくお願いいたします。

その他の回答 (1)

  • a3453a
  • ベストアンサー率28% (132/460)
回答No.1

コンボB=支店 の 初期値に * を入れておくという手があります IF コンボB="*" THEN -------- -------- などの記述でなんとかなると思います (なにか選択後 * を再度戻すにはダブルクリックなどで・・・)

chemistry2005
質問者

補足

ご返答ありがとうございます。 a3453aさんの方法を取らせていただきましたが、私の不勉強ゆえいまだ解決できていません。 コンボボックスを未選択にした際にNullが入るのが分かったのですが、 If IsNull(Me![支店]) = True Then Me![支店] = "ここ" End If 上記プログラムの"ここ"にどのようなプログラムを組めば全件表示できるのかご教授願いたいと思います。

関連するQ&A

  • Access フォームで検索した結果をフォームで表示するときにあいまい検索をしたい

    Access2003を使用して、検索フォームをつくり、検索結果を別フォームへ表示させるプログラムを組みました。 その際に、かな検索をするとかなが完全一致でないと検索されません。 あいまい検索にてかな検索をする方法はありませんでしょうか? ソースは以下の通りです。 Private Sub cmdSearch_Click() On Error GoTo Err_cmdSearch_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(70) & ChrW(95) stLinkCriteria = "[カナ氏名]=" & "'" & Me![カナ氏名] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cmdSearch_Click: Exit Sub Err_cmdSearch_Click: MsgBox Err.Description Resume Exit_cmdSearch_Click End Sub

  • accessで、フォームの検索をしたいのです。

    今ACCESSで、データ管理をしているのですが、どうしてもうまくいかなくて、困っています。 毎日の出来事を記述するテーブル用のフォームを作って、記述していて、そのデータがたまってきています。 他のフォームに、検索用のテキストボックスとコマンドボックスを作って検索したいのです。 コントロールウィザードを使うと、完全一致のデータしかでてこないのですが、部分一致のレコードを表示させるにはどうすればいいのですか? 教えていただけるとうれしいです。 コントロールウィザードを使うと以下のようになります。多分少しどこかを変えるといいのではないかと思うのです。どうか、よろしくお願いします。 Private Sub コマンド144_Click() On Error GoTo Err_コマンド144_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(21839) & ChrW(12356) & ChrW(21512) & ChrW(12431) & ChrW(12379) & ChrW(12513) & ChrW(12514) stLinkCriteria = "[内容]=" & "'" & Me![テキスト105] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_コマンド144_Click: Exit Sub Err_コマンド144_Click: MsgBox Err.Description Resume Exit_コマンド144_Click End Sub もしかして。。と思い、以下の部分、 stLinkCriteria = "[内容]=" & "'" & Me![テキスト105] & "'" を次のように変えてみたけれど、やっぱりうまくいきませんでした。 stLinkCriteria = "[内容]=" & "'" & "*" & Me![テキスト105] & "*" & "'" よろしくお願いします。

  • アクセスにて検索フォームを作りたい

    お世話になります。 アクセス初心者です。 会社名検索フォームに会社名を入力して表示コマンドをクリックすると 会社フォームの入力した会社が表示されるようにしたいのです。 現在は、表示コマンドをクリックすると会社フォームが開きます。 どの会社名を打ち込んでもNo.1のレコードしか開きません。 つまり会社フォームが開く という指示をしているだけです。 コードなど全く分かりません。 ただ、本を見て真似て下記の通り入力してみました。 間違っているor足りない ということはわかっていますが、 どう入力すれば良いのかわかりません。 教えて下さい。よろしくお願いいたします。 Private Sub cmd表示_Click() On Error GoTo Err_cmd表示_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "会社フォーム" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cmd表示_Click: Exit Sub Err_cmd表示_Click: MsgBox Err.Description Resume Exit_cmd表示_Click End Sub

  • サブ画面(参照のみ)を表示しつつ、メインのフォームの操作をしたい

    Private Sub cmd14検索_Click() On Error GoTo Err_cmd14検索_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "F社員データ" stLinkCriteria = "[所属名称2]=" & "'" & Me![所属名称] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cmd14検索_Click: Exit Sub Err_cmd14検索_Click: MsgBox Err.Description Resume Exit_cmd14検索_Click End Sub という操作でメイン画面(フォーム)を開きます。 そして、これと同時に、サブ画面(参照のみ)としてもうひとつ画面を表示だけさせておきたいのですが、何かよい方法はありませんか? ちなみに、このコードは、自分が書いたものではなく、ツールボックスのコントロールウィザードで作成したものです。 なので、コードは正直書けません。 が、なんとかよい方法があれば教えてください。 宜しくお願い致します。

  • フォームの検索で一致データが無い場合の表示

    簡単なシステムを作成している初心者です。 エクセル2003を使用しています。 コマンドウィザードを使用してVBAに入力されている状態です。 検索用のフォーム(F_番号検索)で番号を入力し(テキストボックス[番号入力欄])、検索コマンドを押し 一致した番号の情報のみ別フォーム(F_情報)に表示されます 一致した番号の情報がなくても F_情報のフォームが開いてしまうのですが、 これを別フォームでもしくはメッセージボックスで「一致する番号はありません」等の表示 をしたいのですが上手くいきません。 どうすればいいでしょうか・・・? Private Sub 検索_Click() On Error GoTo Err_検索_Click Dim stDocName As String Dim stLinkCriteria As String stLinkCriteria = "[番号]=" & "'" & Me![番号入力欄] & "'" DoCmd.OpenForm "F_情報", , , stLinkCriteria [Forms]![F_番号検索].Visible = True Exit_検索_Click: Exit Sub Err_検索_Click: MsgBox Err.Description Resume Exit_検索_Click End Sub

  • アクセス コンボボックスについて

    コンボボックス 印刷ボタンについて アクセス勉強中です。 フォームで作成した画面 だけを印刷する、コンボボックスを作成しています。 コンボボックスウィザードにてフォーム印刷ボタンを作成したのですが、 1000人くらいの、すべてのデーターが印刷されてしまい困っております。 どこを変更すれば1枚だけ印刷ができるのでしょうか? イベントプロジャという部分は下記です。 またプロジャー以外に何かしなければならないのでしょうか?? どうぞ宜しくお願いいたします。 Option Compare Database Private Sub リスト70_AfterUpdate() ' コントロールの値と一致するレコードを検索する Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[IDI] = " & Str(Me![リスト70]) Me.Bookmark = rs.Bookmark End Sub Private Sub コンボ73_AfterUpdate() ' コントロールの値と一致するレコードを検索する Dim rs As Object Set rs = Me.Recordset.Clone rs.FindFirst "[NO] = " & Str(Me![コンボ73]) Me.Bookmark = rs.Bookmark End Sub Private Sub コンボ73_BeforeUpdate(Cancel As Integer) End Sub Private Sub 生年月日_AfterUpdate() Me.年_____齢 = Int(DateDiff("d", [生年月日] - 1, Date) / 365.25) End Sub Private Sub 郵便番号_AfterUpdate() Me!現住所.SetFocus Me!現住所.SelStart = Len(Me!現住所) End Sub Private Sub コマンド121_Click() On Error GoTo Err_コマンド121_Click Dim stDocName As String Dim MyForm As Form stDocName = "顧客リスト" Set MyForm = Screen.ActiveForm DoCmd.SelectObject acForm, stDocName, True DoCmd.PrintOut DoCmd.SelectObject acForm, MyForm.Name, False Exit_コマンド121_Click: Exit Sub Err_コマンド121_Click: MsgBox Err.Description Resume Exit_コマンド121_Click End Sub

  • Access2000での複合検索について

    「体力テスト結果・年齢・性別」というテーブルを元にしたフォームがあり、そこには、老若男女全てのデータがあります。 このフォームを元に、男女別、年齢別の検索フォームを作ろうとしています。 例えば、20歳から30歳までの男性のデータ 41歳から43歳までの女性のデータ というふう検索したい。 現在、下記のような形で、年齢別については、うまくできたのですが、男女別がうまくいきません。 どうすればよいか、ご教示願えないでしょうか? 男女別のデータ型は、Yes/No型(Boolean型)で、 フォーム上では、男性に、チェックマークが入る形に なっています。 また、検索フォーム上では、オプショングループ(二者択一のラジオボタン)でできれば、と思っています。 よろしくお願いします。 Private Sub 検索実行_Click() On Error GoTo Err_検索実行_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "体力テスト結果・年齢・性別" stLinkCriteria = "[年齢] Between " & Me![開始年齢] & " And " & Me![最高年齢] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_検索実行_Click: Exit Sub Err_検索実行_Click: MsgBox Err.Description Resume Exit_検索実行_Click End Sub

  • Access2000でフォームを開くときに常に新規レコードで開きたいのですが

    Access2000で、あるイベントに参加した人のデータベースを作りました。 検索用フォームで「氏名」と「生年月日」で検索し、その人の情報を別の フォームで見ることができるようになっています。 該当者がいない場合は、新しいレコードにそのデータを追加します。 検索結果を表示するフォームに個人情報を表示・書き込みできる画面を開く ためのボタンがあるのですが、このボタンをクリックした時に、常に新規 レコードで開きたいのですが、コードはどのように記述すればよろしいの でしょうか? ちなみに、いまは下記のようなコードになっています。 「新規登録ボタン」は個人情報を表示・書き込みできる画面を開くためのボタン 「応募者」は個人情報を表示・書き込みできるフォーム です。 Private Sub 新規登録ボタン_Click() On Error GoTo Err_新規登録ボタン_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "応募者" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_新規登録ボタン_Click: Exit Sub Err_新規登録ボタン_Click: MsgBox Err.Description Resume Exit_新規登録ボタン_Click End Sub

  • Access2000での複合条件検索

    前にも一回質問したんですが、どうしてもうまくいかないので、もう一回質問させていただきます。(すいません) Access2000での複合条件検索のコードビルダがうまくないようで、正しく動きません。 試験結果の集計なのですが、抽出するためのキーは「面接日」と「判定結果」です。 クエリには「面接日」と「総合判定コード」があります。 フォームには「試験日」と「判定結果」というテキストボックスがあります。 テキストボックスの「試験日」には日付、「判定結果」には1(=合格)か3(=不合格)を入れて抽出ボタンをクリックするのですが、構文エラーになります。 どこを、どう直したらいいのでしょうか? Private Sub 抽出ボタン_Click() On Error GoTo Err_抽出ボタン_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "印刷対象者フォーム" stLinkCriteria = "[面接日]=" & "#" & Format$(Me![試験日], "yyyy/mm/dd") & "#And[総合判定コード]=" & Me![判定結果] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_抽出ボタン_Click: Exit Sub Err_抽出ボタン_Click: MsgBox Err.Description Resume Exit_抽出ボタン_Click End Sub

  • アクセス2000で複数条件での検索

    アクセス2000で、試験結果の管理をしようと思っています。 試験によって合格点が違うので、合否結果はフラグ(1=合格、2=不合格)で管理しています。 フォームにボタンを作って、ボタンをクリックしたら合格者(あるいは不合格者) だけを表示する形にしたのですが、受験日と合否のフラグの両方を条件として、 データの抽出を行いたいのですが、ボタンのコードビルダはどのようにしたら良いのでしょうか?ちなみに、ボタンを作った時の関連付けは受験日となっているのでコードは下記のようになっています。 Private Sub 抽出採用日_Click() On Error GoTo Err_抽出採用日_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "対象者" stLinkCriteria = "[受験日]=" & "#" & Me![受験日] & "#" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_抽出採用日_Click: Exit Sub Err_抽出採用日_Click: MsgBox Err.Description Resume Exit_抽出採用日_Click End Sub