• ベストアンサー

Accessでフォームの検索について教えてください

契約書情報の管理をしています。 (1)契約書TBL [契約書No][契約書名][契約社名][担当部署名][グループ名][社員名] (2)社員情報TBL [部署名][グループ名][社員名] (それぞれ入力用のフォームあり。) やりたいこと: ・契約書フォームで契約書名、社員名を検索すると、該当した情報が表示され、その中から選択して契約書情報の修正がしたい。 ・新規で契約書フォームに入力する場合、社員名を検索し、自動的に部署名、グループ名がフォームに表示されるようにしたい。 お手数ですがご回答頂ければと思います。 宜しくお願いします。

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

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

社員名の更新後処理に If Dlookup("グループ名","社員情報TBL","社員名 = '" & me!社員名 & "'") = "" then msgbox "そんな人知りません" Exit sub Else Me!グループ名 = Dlookup("部署名","社員情報TBL","社員名 = '" & me!社員名 & "'") Me!グループ名 = Dlookup("グループ名","社員情報TBL","社員名 = '" & me!社員名 & "'") End sub かな?

kumafukuro
質問者

お礼

回答ありがとうございます。 少し変えて使わせていただき、希望通りにできました。 大変助かりました。ありがとうございました!

その他の回答 (1)

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

契約書フォームで契約書名、社員名を検索すると、該当した情報が表示され、 その中から選択して契約書情報の修正がしたい。 フォームに非連結テキストボックス 契約書名検索、社員名検索を配置。 それぞれの更新後処理に Me.Filter = "契約書名 like '*" & Nz(Me!契約書検索, "*") & "*'" _ & "And 社員名 like '*" & Nz(Me!社員名検索, "*") & "*'" Me.FilterOn = True とか? 新規で契約書フォームに入力する場合、社員名を検索し、 自動的に部署名、グループ名がフォームに表示されるようにしたい Dlookup メソッドについて調べてみてください 得られたものを、部署名・グループ名に代入すればよいと思います。

kumafukuro
質問者

補足

回答ありがとうございます。 一つ目はお蔭様でできました。 二つ目は、Dlookupを使うとのことですが、いまいち使い方がわかりません。 以前、Dlookupを使って、コードを入力すると顧客名が表示される、ということはやったことがあるのですが・・。 申し訳ありませんが、アドバイス頂けると助かります。 お手数お掛けしますが宜しくお願いします。

関連するQ&A

  • アクセス2002:フォームからレポートへ

    いつも助けてもらってます。 アクセスで綺麗にフォームを作りました。 それをそのまま単表形式でレポートにしたいのですができますか? クエリからやらなければ駄目なのでしょうか? 詳細を言うと社員一名の情報を一枚の紙に出したいです。フォームではパラメータで社員NOを入力するとその社員の情報が現れるようになっています。 どうぞよろしくお願いします<m(__)m>

  • Access2002_検索フォームの作り方《初心者》

    既存のフォーム上に検索機能を追加させたいと思っております。 現在のフォームは社員の情報を入力していくものです。 既に入力されている社員の情報を変更するときにも使用します。 既存情報の変更はAccessの検索機能を使用して行っておりますが 今後Accessを使えない人でも変更処理が出来るよう、使いやすい検索機能を追加することになりました。 イメージとしては検索したい社員コードを入力し、検索ボタンを押すと該当の情報が表示されるようにしたいと思ってます。 いろいろ調べてみたところ、やりたいことに近いVBAコードをいくつか見かけましたがどうもうまくいきません。 下記のようなオブジェクトがある場合どのようなコードをどこに書けばよろしいでしょうか? 初心者なので出来るだけ手取り足取り教えていただけると助かります。 T_社員マスタ(テーブル) ・社員CD ・氏名 T_社員サブ(テーブル) ・社員CD ・住所 ・生年月日 ・血液型 Q_結合(選択クエリ) ・社員CD ・氏名 ・住所 ・生年月日 ・血液型 ↓このフォームに検索用機能を追加したいです F_検索&入力(フォーム) ・社員CD ・氏名 ・住所 ・生年月日 ・血液型 長々と申し訳ありません。 どうぞよろしくお願い致します。

  • アクセスの構築、スマートなやり方教えてください。

    初心者でうまく説明できないかもしれませんが、 添付アクセスでNo1,2,3とテーブルをクエリでフォームを作りました。 1の社員番号を入力すると名前が呼び出され、 2の所属コードを入力すると部署。。。が呼び出されます、 3は資格コードをいれると資格名。。。が呼び出されるようにしました。 1にも所属コードを入力してあり1と2のリレーションを所属コードで結んでます、 これで困ったのが社員番号は変わらないのですが、所属コードは部署名が 変わったり変わったり人も部署の異動で変わります、 このままだと、部署の異動があった場合、入力してあるデータの修正が必要に なります、 次にやったのは1と2を一つのテーブルにしました、しかし、これも部署名が変わった時 社員数分変更をしなければなりません、本当なら変わった部署を修正し1と2をあとで 一緒にできるといいのですが、 1と2のテーブルをクエリで一緒にして3のテーブルと合わせてフォームを作ったところ 入力ができなくなりました、 添付の1と2を別なテーブルで出来て、部署名など変更になったり、部署の異動の時 過去のデータを修正せずにすむ構築教えてください。

  • Accessの検索フォーム

    以前にも似たような質問をして、その時は解決したのですが、また同じようなことでつまづいて、以前の回答をみて、 そのとおりにやってるつもりなのに、できなくて…。 テーブル1とフォーム1・フォーム2があります。 フォーム1に入力された情報をもとに、テーブル1の内容を検索して、フォーム2に表示するものを作成しています。 テーブル1には「***.***.**.☆」(情報)という形の情報が入っています。 *の部分の桁数は固定で☆は不定形です。(テキスト形式) フォーム1に入力された情報は「(***.***.)**.*」(検索1)や「(***.***.)**.**」(検索2)などです。 ※()内は入力せず テーブル1の情報の9文字目以降と、フォーム1に入力された情報を比べたくて、以下のようなものを作成しました。 (多少省略等があります) condKensaku = "(Mid(Val(テーブル1.情報),9) between " & Val(Me!検索1.Value) & " and " & Val(Me!検索2.Value) & ")" wherecond = condKensaku DoCmd.OpenForm "フォーム2", acNormal, WhereCond これを実行すると 実行時エラー '2501': OpenForm アクションの実行はキャンセルされました。 と出て、デバッグを押すと、 DoCmd.OpenForm "フォーム2", acNormal, WhereCond の行が黄色になります。

  • アクセス2002:フォームの作り方

    アクセス初心者です。 [社員テーブル] ・社員NO ・社員名 など [通信教育履歴テーブル] ・社員NO(重複あり) ・受けたコースNO ・修了日付 [通信教育コース名テーブル] ・コースNO ・コース名 があります。 社員NOを入力したらその社員が過去に受けた通信教育の履歴がぴゃーっとでる様にしたいのですが うまくいきません。メインフォーム・サブフォームとかいうのが必要になるのでしょうか? 最終的には1000人位いる社員の過去通信教育受け状況を一人一枚の帳票に出力したいです。 どうぞよろしく<(_ _)>

  • アクセスでフォームが更新できない&データ参照ができなくなった

    こんばんは。いつもこちらにはお世話になってます。 会社の業務でアクセスでデータを管理してます。 前任者が作ったフォームに、新規データを入力・・といういつもの業務をこなそうとしたら・・ フォームに新しいレコードが追加できなくなりました(今日突然です) 特に原因が分からないのでヘルプで見て フォームの「レコードセット」のところを ”ダイナセット”→ダイナセット(矛盾を許す)に変えて、何とか新規レコードは追加できるようになったのです。 しかし、いざ新規のレコードを追加する段になって、 今度は 本来、社員NOを入れれば自動的に部署や、性別などが表示されていたのに、一切されなくなりました(今回は仕方ないのですべて入力しましたが) ちなみに簡単に元になっているDBの説明をしますと (1)社員基本情報テーブル(主なものだけ抜粋します) フィールド 従業員NO       部署       性別     (2)社員出張情報テーブル フィールド 従業員NO       出張日       出張先        この(1)と(2)のテーブルがクエリで結ばれて仮想テーブルができてます。 クエリのデザインを開くと、(1)(2)の従業員NO同士が 一本の線で結合されており(一対多とかではなく) クエリの出力フィールドでは (2)の従業員NO,(1)の部署、性別、(2)の出張日、出張先 が指定されてました。 フォームはこのクエリを元に作成されてるのですが、 従業員NOを入力すると自動的に部署と性別は表示され、出張日と出張先を入力するという業務でした。 特に何かをしたわけではない(はず)なので原因が分からないまま、とりあえず部署と性別を手入力でしのぎました。 何か解決策があれば教えてください。 (ちなみに質問の書き方で分かるかと思われますが、初級者レベルです)

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

    お世話になります。 アクセス初心者です。 会社名検索フォームに会社名を入力して表示コマンドをクリックすると 会社フォームの入力した会社が表示されるようにしたいのです。 現在は、表示コマンドをクリックすると会社フォームが開きます。 どの会社名を打ち込んでも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

  • ACCESS2007あいまい検索について

    いつもお世話になっております。ACCESS2007において、システムを作成しています。元になるデータから情報を抽出して、表示するということなのですがうまくいきません。 検索メニューは下記のとおりです。 <検索メニュー> _________________ |社名:[会社名a] ← AAA、AAA株式会社 ←空白でも構わない。 |内容:[業務内容a] ←電気、水道 ←空白でも構わない。 |住所1:[住所a] ←空白でも構わない。 |住所2:[住所b] ←空白でも構わない。 |           [検索] [入力クリア]  |__________________ どれか、ひとつ情報を入力するようにする。 どこに入力をしても、データを抽出できるようにしたいです。下記は元データのフィールドです。 [ID][呼称][社名][郵便番号][住所][電話番号][郵便番号][住所2][電話番号][内容] 一つの情報さえ入力されれば、抽出されフォームに表示する。選択クエリに下記のような条件式を入れてあります。あいまい検索がうまくいかず、データの1件目しか表示されません。 Like "*" & [Forms]![会社情報検索メニュー]![会社名a] & "*" Like "*" & [Forms]![会社情報検索メニュー]![業務内容a] & "*" Like "*" & [Forms]![会社情報検索メニュー]![住所a] & "*" Like "*" & [Forms]![会社情報検索メニュー]![住所b] & "*" お分かりになる方、どうかご教授ください。お忙しいとは思いますが、どうぞよろしくお願いいたします。

  • フォームでのデータ検索

    ACCESS 2000 OSはWin2000を使っています。 フォーム内にコード検索の枠とボタンを作成して、データを検索しています。 フォームには個人データが表示されており、検索枠に個人コード(例えば:00131)を入力して検索ボタンを押すとフィルタがかかるようになっています。 VBAのコードを書いていて、他のフォームで同様のことをするとうまくいくのですが、このフォームではどうしてもうまくいきません。 しかも個人コードではなく、もう一つ別のコードなどで検索をかけるとうまくいったりします。 どうしてこのような問題が発生するのでしょうか? そして、どうすれば解決できるのでしょうか? どなたか、ご教授お願いします。 下記にVBAコードも表示させておきます。 Private Sub 個人NO検索_bt_Click()  Me.Filter = "[個人NO] Like " & Me.[個人NO検索]  Me.FilterOn = True End Sub 個人NO:個人NOがあらかじめ表示されているテキストボックスです。 個人NO検索:検索したい個人NOを入力するところです。

  • access クエリ 検索フォームの作り方

    よろしくお願いします。 やりたいこと: フォーム上で、テキストボックスに入力した値を検索して表示したい。 本やウェブで調べて、なんとか一度はやっと出来たのですが、 誤って何かを変更してしまい、使えなくなってしまいました。 今となってはどの資料を見て作れたのかわからなくなりました。 やったこと: クエリ :クエリA   条件にforms!フォームA!txt0を入力 フォーム:フォームA ヘッダーに非連結のテキストボックスtxt0を作成 txt0の更新後処理:docmd.requeryを入力 しかし、txt0に入力しても検索されません。 フォームのプロパティのレコードソース欄にクエリAを選択するようですが、 選択するクエリ名が表示されないので、クエリ名を入力しましたがダメでした。 どこか間違っているのでしょうか。VBAまでは勉強できないので上記範囲内でお願いします!

専門家に質問してみよう