• 締切済み

Access2010 複数条件での検索フォーム

こんにちは。 1月4日から使用したいため、Access2010で検索フォームを作ろうと思っています。 ExcelでのVBAはある程度理解しておりAccessは2003で少し勉強した程度ですが、作り方が分かりません。 このままでは間に合いそうにないので助けてほしいです。 (1)使用するテーブルは”TBL_登録者一覧”で、レコードの追加はしません。 (2)フィールドは、"個人番号","グループ番号","代表者名カナ","代表者名漢字","カナ氏名","漢字氏名","現住所","現住所地番","現住所方書","生年月日","席次"です。 個人は必ず一つのグループに所属し、一つのグループには単数あるいは複数の人が所属しているものとします。 席次はグループの中での順番で、1から始まりグループ員それぞれに割り当てられています。欠番はなく、1の人が代表者になります。 (3)このテーブルから席次以外のフィールドを使用して複数条件で検索し、合致した人と同じグループに所属している人すべてが表示されるようにします。 表示するフィールドは、"グループ番号","代表者名カナ","代表者名漢字","現住所","現住所地番","現住所方書"をグループの表示として、 "個人番号","カナ氏名","漢字氏名","生年月日","席次"をメンバー毎にリスト表示させるようにします。 例えば、"カナ氏名"のみで検索したとして、同姓同名の人がいない場合はそのままそのグループが表示され、同姓同名の人がいる場合は、該当者を表示したあとでその中から選ぶようにしたいです。 このような具合ですが、どうかよろしくお願いします。

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.4

#3です。見直したところ、誤記に気づきました。 >該当するテキストボックスをサブフォームのフッターセクションに移動すれば良いでしょう。 はヘッダーセクションが正しいです。読み替えをお願いします。

byune-kun
質問者

お礼

ありがとうございます。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

>合致した人と同じグループに所属している人すべてが表示されるようにします。 を実現するには、nicotinismさんが紹介して下さっているフォームのフッターセクションを広げて、 元のテーブル(ここではtable1とします)を元にしたサブフォームを設置して、主フォームで選択したレコードと同じグループに所属するメンバーのリストをサブフォームに表示する様にすれば一応可能だと思います。 下記の様なコードをフォームモジュールに追加します。 Private Sub Form_Current() Me.table1のサブフォーム.Form.RecordSource = "SELECT * FROM table1 WHERE グループ番号='" & Me.グループ番号.Value & "';" End Sub 「table1のサブフォーム」のところやテーブル名は実際の環境に合わせて変更する必要があります。 >グループの表示として を実現するには該当するテキストボックスをサブフォームのフッターセクションに移動すれば良いでしょう。 勤務先がようやくOffice2010になるのでAccess2010を勉強中のものですが、サブフォームがすんなりとAccess2000で言うところの「帳票フォーム」に出来なかったりして戸惑いました。この様な場で簡単に説明できる内容では無いと感じました。 なお、個人ごとのレコードに、代表者名カナ,代表者名漢字といったグループ毎の情報を持たせるべきでなく、グループ番号と代表者情報の対照テーブルを別個に設けるのが良いとされています。入力も煩雑だと思います。ご参考まで。

byune-kun
質問者

お礼

ありがとうございます。参考になりました。 間に合うかどうか分かりませんが、がんばってみたいと思います。 ちなみに、 >個人ごとのレコードに 今回は、既にそのように入力してあるデータをインポートしたテーブルを使用します。 追加することはなく、単に既存の内容を検索するためだけに用いるのです。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

サンプルファイルもありますし、こちらが参考になるかと。 hatena さんの http://hatenachips.blog34.fc2.com/blog-entry-129.html

byune-kun
質問者

お礼

ありがとうございます。 参考になりました。

noname#192382
noname#192382
回答No.1

検索に使うフィールドを指定することはできないのでしょうか。

byune-kun
質問者

補足

検索用のフォームに "個人番号","グループ番号","代表者名カナ","代表者名漢字","カナ氏名","漢字氏名","現住所","現住所地番","現住所方書","生年月日" をそれぞれ入力できるテキストボックスを作り、入力してある項目で検索するようにします。 よろしくお願いします。

関連するQ&A

  • アクセスでの同姓同名の抽出について

    お世話になります。 アクセスで顧客データ(漢字氏名、カナ氏名、生年月日、住所)を管理しています(16000件程度) その中で、同姓同名(カナが同じ人)のデータのみをピックアップしたいのですが、どうしたらよいでしょうか? 流石にデータをカナ順に並び替えて全部プリントアウトして調べるのはあほくさいし・・・。 どなたかご存じの方よろしくお願いします。

  • Access2000で複数の検索項目を作りたいのですが・・・

    こんにちわ。 今、Accessで社員録を作成しているんですが、複数の検索について教えて下さい。 ■テーブル テーブル名:社員録 フィールド名:ID・検索名・氏名・所属ID・所属 ■クエリ クエリ名:社員録クエリ フィールド名:ID・検索名・氏名・所属ID・所属 検索名抽出条件:検索名フィールド: Like [Forms]![社員録 縦]![けんさく]         所属フィールド: Like [Forms]![社員録 縦]![抽出検索名] ■フォーム フォーム名:社員録フォーム:テキスト1・テキスト2・ボタン1       社員録サブフォーム:データソース:社員録クエリ テキスト1:所属を入力 テキスト2:検索名を入力 ボタン1:マクロの再クエリを実行する ■ここからが質問です■ (1)テキスト1又は、2が空白のとき社員録全体から検索かフィルタ。 (2)テキスト1・2が、入力されてる時、両条件から検索かフィルタ。 をしたいのですが、何かいい方法がありましたら教えて下さい。 説明が、長くなってしまってスミマセン。。。

  • Accessで複数条件分岐。

    T_マスタ(テーブル) ・年度 ・社員番号 ・社員氏名 ・所属 ・備考 T_社員一覧(テーブル) ・社員番号 ・社員氏名 ・所属 となっています。 F_マスタというフォームで、 社員番号を入れたら、自動で社員氏名と所属が入るようになっています。 そこで簡単なチェックをしたいのです。 今までは、入力された社員番号が、すでにT_マスタの中に入ってれば 「すでに入力されています」と表示し、それ以外だったら、そのまま入力するように しました。 現在の希望は、入力された社員番号が、すでにT_マスタの中に入っていて、 なおかつ、年度も同じだった場合は、「すでに入力されています」と表示し、 それ以外の、社員番号は一致するが、年度は一致しない場合や、どちらも一致しない 場合はそのまま入力できるようにしたいのです。 どのようにしたらいいでしょうか? ちなみに今までは、 If IsNull(DLookup("社員番号", "T_マスタテーブル", "社員番号 = " & CLng(Me!社員番号.Text))) Then Me![社員氏名] = Me![社員番号].Column(1) Me![所属] = Me![社員番号].Column(2) Else MsgBox "すでに入力されています。" End If こんな感じでした。 よろしくお願いします。 Ac2000です。

  • ACCESSのフォームの作り方について

    ACCESSのフォームについてお尋ねします。 『会員ナンバー』を主キーに設定しているテーブル(顧客データ。会員ナンバー・住所・氏名等のデータが入ってます)を元にACCESSで入力フォームを作っているのですが、会員ナンバーを入力したら住所・氏名のテキストボックスに自動的に入力されるにはどのようにしたらいいですか? 現在データが1番から自動的に表示されていて、例えば1番の人が表示されているときに会員ナンバーのテキストボックスに番号を入力すると、そのまま1番の人が上書きされてしまいます。 会員番号を検索して住所などのデータが出てくるイメージにしたいのですが。。。 本当はすでに入力されている住所等のデータはこのフォームでは上書きされないようにしたいのです。 ちなみにこのレポートは会員を新規追加するためではなくどんな修理をしたかという項目を追加させるため物です。

  • アクセス2007のフォームの編集とボックス表示

    アクセスのウルトラ初心者です。 フォームの編集その他以下の事が出来ず困っています。 エクセルで作ったデータをインポートして「代行団体一覧」のテーブルを作成しました。 フィールド名は、NO、団体名、団体名カナ、担当者名、担当者カナ、郵便番号、住所、電話番号、備考としました。 1.データをインポートした段階で(テーブル)、NOをオートナンバー型にできません。数値型のままです。 2.フォームの編集で、ウィザードを使い、デザインをトラベルに設定したところ、デザインビューで、編集しようとしたら、全てのテキストボックスがグループ化でもされているかのようで、ひとつ選択してサイズを変更しようとしても、全てのテキストボックスのサイズが一緒に変更されてしまいます。 3.フォームで、団体名のテキストボックスに、カーソルを当てるとダイアログボックスが開き、全ての団体名から、該当するものを選択表示させたいのですが、設定の仕方がわかりません。 4.社内ネットワーク上に、みなが見られるように、開くと編集したフォームの状態表示されるように保存したいのですが、保存等の仕方がわかりません。 以上、ウルトラ初心者ですが、よろしくお願いします。

  • 複数のテーブルから複数条件で新規テーブルへ抽出するには?

    こんにちわ。 Windows2000、Access2000という環境下で、 住所録の統合をしようとしています。 簡単な構成は、前任者が、グループ関連会社別に住所録のmdbを作っており、各テーブルのフィールドで主要なものは、「通し番号(各mdbごと)」「氏名」「会社名」「住所」です。 ここで、最終的にテーブルを一つにまとめれば完了としたいところなのですが、 2002年夏の時点での住所録A.mdb 2003年冬の時点での住所録B.mdb 2003年春の時点での住所録C.mdb とあり、それぞれにBの時点での新規入力・(住所等の)更新、Cの時点での新規入力・更新があるのです。 BはAを元に作られており、CはBを元に作られています。 ダブっている部分があるのです。 そこで、AとBを比較してAの中で「氏名」、「会社名」が同じもの以外と、Bのデータを新しいDBのテーブルへ、 新しくできたDBのテーブルとCのテーブルとを比較して、「氏名」「会社名」が同じものは、既存のレコードを消去してCのデータを追加するということをやりたいのです。 つまり、BやCでの更新・新規入力をうまく反映させた形の住所録にしたいのです。 Access自体の使い方に不慣れなもので、この作業がAccessのクエリ等の組み合わせでできるのか、それともSQLやVBAを駆使しないと無理なのかの判断もつきません。 どなたか参考になりそうな操作やSiteを知っていましたら、 教えてください。 よろしくお願いします。

  • [Access]検索データの表示 など

    (1)テーブルがA、Bと2つあります。 Aのフィールドは店舗ID、店舗名、支店名、店舗住所、店舗電話番号です。 Bは案件ID、店舗名、支店名、店舗住所、店舗電話番号、それ以外に20ほどフィールドがあります。 Bをフォームを使って入力するのですが、Bのフォームの電話番号欄に電話番号を入力し、コマンドボタンを押すとAの該当する店舗データがBのそのレコードの各対応するフィールドに反映されるようにしたいのですが、どのようにすればいいかわかりません。 また、該当する電話番号がなかった場合は該当なしのメッセージを表示させたいです。 (2)Bのフォームで新規レコードを作成したときに、自動で日付フィールドに現在の日付を、時刻フィールドに現在の時刻を入れたいです。 どなたか教えてください。

  • アクセスからエクセルのフォーマットへ出力

    初心者につき、ご教示ください。 アクセスのテーブルのクエリから エクセルのフォーマットをコピーして出力したいのです。 例) オブジェクト種別:オブジェクト名:フィールド名 テーブル1:TBL_社員情報:社員番号・氏名・所属・入社年月・退職日・・ テーブル2:TBL_所属情報:社員番号・所属・グループ・業務担当・主務or兼務・・ 出力用クエリ:QRY_エクスポート:社員番号・氏名・所属・グループ・業務担当 エクセルのフォーマット名:所属申請:社員番号・氏名・所属・グループ・主務・兼務 ※主務と兼務はそれぞれ分けた申請になるため、同一社員で複数の申請書が必要になります。 →申請書の様式はありますが、新しいシート(もしくは フォーマットのエクセルに、もともと空シートを作っておいて、そこ)にデータを出力する・・のであれば、申請書の様式が変更になっても使えるものになると想定しています。 単にクエリをエクスポートするだけであれば DoCmd.RunSavedImportExport で、設定できるのは理解しているのですが フォーマットを必要分コピーして別名保存(例えば「社員番号+部署」)するとなると知識が足りません。 ご理解の深い方、お分かりになりましたら ご教示いただけますと幸いです。 よろしくお願い致します。

  • アクセスでの検索回数and 検索日付を出す方法

    どうしてもわからないので教えてください。 アクセス2002 XP フィールド名 ID氏名 生年月日 電話番号 住所 などの情報データがあり、フォームで検索できるように検索条件を氏名生年月日が一致するデーターを抽出できるようにしています。 そこに追加で検索結果表示ボタンクリック時に 例:Aさん検索後、抽出結果→検索回数+検索した日付表示。 あとでこのAさんは何回検索したか?何日に検索したという形で一覧表示させたいのです。 どのようにすればできますか? お力アドバイスおねがいします。

  • ACCESS2000検索の指示

    ACCESS2000は超初心者です。 先日から取引先住所録を作り始めました。 テーブルには「取引先住所録」という名前で 取引先住所録ID、略称、会社名、部署名、氏名、郵便番号、住所、TEL、FAX、携帯、メールアドレス、備考 という、12項目を作りました。 略称は例えば「なにぬねの株式会社」であれば「ナ」というように、頭文字をカタカナ1文字で分類しています。 フォームは完成しています。 やりたいことはフォームに略称を手入力する欄を作っておき、その略称に値する会社名と氏名をコンボボックスに表示させ、そのリストからクリックしたものの情報を表示したいと考えております。 何処にどの様に指示をすればいいのか判らないのです。 よろしくお願いいたします。

専門家に質問してみよう