• ベストアンサー

アクセス2000検索箇所作成について

こんにちは。 アクセスの2000を使用しております。テーブルで顧客リストなる基データ(約5000件)は既に作成済みで、フォームにて、基データを表示させております。で、5000件のリストにはそれぞれ11~15桁のIDが割り振られています。 そこで質問なのですが、例えばそのID、もしくは名前、会社名(どれか一つだけを入力)を入力して、該当データを一箇所に抽出するという方法はどのようにしたら良いでしょうか?? 何分初心者なものですので、噛み砕いて教えていただければと思いますのでよろしくお願い致します。 Webページ等があればそちらも、記載して頂けたら幸いです。

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

  • ベストアンサー
noname#140971
noname#140971
回答No.2

色んなやり方が考えられます。 ここでは、検索パラメータを入力するフォームを用意する方法を示します。 <顧客名簿> ID____名前_______フリガナ________会社名_郵便番号_都道府県_市区町村_番地_ビル等 1_____鈴木 一郎__スズキ イチロウ_関西組 2_____中村 太郎__ナカムラ タロウ_関東組 3_____山田 信次__ヤマダ シンジ___関東組 <検索フォーム> ID:_____[________] 名前:___[_______________] 会社名:_[関東______________] <検索結果> 2_____中村 太郎__ナカムラ タロウ_関東組 3_____山田 信次__ヤマダ シンジ___関東組 *表示フォーム=帳票ですと、このように表示されます。 さて、以下は、検索コマンドボタンのイベントに書いたコードです。 Private Sub cmdLookupCustList_Click() On Error Resume Next   Dim stLinkCriteria As String   ' ----------------------------   ' [ID] が指定されている場合   ' ----------------------------   stLinkCriteria = IIf(Nz(Me.ID) > 0, "[ID]=" & Me.ID, "")   If Len(stLinkCriteria & "") = 0 Then     ' ---------------------------------------------------     ' [ID] が指定されていない場合のみ他の検索条件を採用     ' ---------------------------------------------------     stLinkCriteria = IIf(Len(Me.名前 & "") > 0, _                "[名前] LIKE '" & Me.名前 & "*'", _                "")     If Len(stLinkCriteria & "") > 0 Then       ' ----------------------------------------------------       ' [名前] が指定されていれば、AND文にするか否かを判定       ' ----------------------------------------------------       stLinkCriteria = IIf(Len(Me.会社名 & "") > 0, _                  stLinkCriteria & " AND [会社名] LIKE '" & Me.会社名 & "*'", _                  stLinkCriteria)     Else       ' -------------------------------------------------------------------       ' [名前] が指定されていなければ、[会社名]の指定の有無で条件文を作成       ' -------------------------------------------------------------------       stLinkCriteria = IIf(Len(Me.会社名 & "") > 0, "[会社名] LIKE '" & Me.会社名 & "*'", _                 "")     End If   End If   If Len(stLinkCriteria & "") > 0 Then     DoCmd.OpenForm "顧客名簿", , , stLinkCriteria, acFormReadOnly   Else     MsgBox "検索条件が不明です!", vbInformation, " お知らせ"   End If End Sub

sinnji0429
質問者

お礼

ご回答有難う御座います。おかげさまで問題解決しました。頂いた回答はとても約にたちました!有難う御座いました(^_^)

その他の回答 (1)

  • JAWS55
  • ベストアンサー率38% (176/452)
回答No.1

そのテーブルを基にクエリを作成します。その際にたとえばIDを検索したい場合は、抽出条件の欄に "[IDは?]"("は不要)としておけば、そのクエリを開くと、"IDは?" と聞いてきます。IDを入力してやればそのIDが検索されます。 そのクエリを元にフォームを作れば、フォームを開くとIDを聞いてくるようになります。

参考URL:
http://www.accessclub.jp/beginer/index.html
sinnji0429
質問者

お礼

ご回答有難う御座います。おかげさまで問題解決しました。頂いた回答はとても役たちました!有難う御座いました(^_^)

関連するQ&A

  • Accessについて教えて下さい。

    Access初心者です。 フォームのクリック時のイベントで開いた別のフォームを、サブフォームのリンクフィールドように、リレーションの項目を入力しなくてもテーブルに反映させるにはどうしたらいいのでしょうか? 今現在の状況は テーブルは顧客リスト、送付物、問合せがあり顧客IDでリレーションになっています。フォームはそれぞれ作りました。 メインフォームは顧客フォームで問合せのサブフォームが組み込まれています。送付物フォームはボタンでクリック時開くようマクロで作成しました。where条件は[顧客ID]=[Forms]![顧客リスト]![顧客ID]となっています。 例えば手紙を送ることになり、顧客フォームで該当者を選択→ボタンをクリックし送付物フォームを開く →顧客IDを入力→その他必要事項を入力というかんじです。 顧客IDを入力しないと『フィールド顧客IDとキーが一致しているレコードをテーブル顧客リストで探すことはできません』とエラーになります。 問合せのサブフォームは顧客IDでリンクフィールドとなっています。 ID表示が必要ないので顧客IDは消してあります。 こちらは顧客フォームで該当者を選択し、顧客IDを選択しなくても入力すると問合せテーブルに顧客IDも反映されています。 問合せのように送付物にも顧客IDを選択しなくても反映させるようにするにはどうしたらよいでしょうか? 説明がわかりづらいとは思いますが、お分かりになる方よろしくお願い致します。

  • Access2003でのフォーム作成について(再度です)

    民宿の顧客管理をAccessでしようかと思っています。 氏名、住所、来客日などのフィールドを持つ顧客テーブル。 来客日、その日の献立1~17までを持つ日別献立テーブル。 この2つのテーブルからクエリーを作成し、 それを基にフォームを作ってデータを両方のテーブルに振り分けしようとしたんですが、うまくいきません。 クエリーで来客日同士を結ぶとデータは表示されますが新規の入力が出来ません。 顧客テーブルの顧客ID(オートナンバー)と 日別献立テーブルに顧客ID(数値型)を挿入し、2つを結んでも一方のデータしか表示されません。 おかしいとは思いますが、何がおかしいかわかりません。 何か良い方法があればお教え下さい。

  • Access2000 フォームからレコード検索

    Access2000で質問です。 「顧客テーブル」を作ります。 顧客テーブルには以下のフィールドを設けます。 顧客ID(主キー) 名前 TEL 住所 変更住所 顧客IDから住所まではすでにデータが入っています。 「変更住所」に新しくデータを入れていきます。 その際に、フォームを利用したいと思っていますが、 新規フォーム(何もデータが入っていない)に顧客IDを入れたら、すでに顧客テーブルに入力されている名前、TEL、住所がパッと表示され、変更住所だけが空欄で表示されるようなフォームを作りたいと思います。 どのような方法がありますでしょうか? ぜひお知恵を貸してください。よろしくお願いいたします。

  • アクセスである文字を含む検索

    ACCESS2000を使っています。 あるデータテーブル「発注書テーブル」があって、ここでは「(1)ID」「(2)顧客名(法人)」「(3)発注商品」「(4)納品済チェック」の4つフィールドがあるとします。 作業はフォームで行います。フォーム名は「発注書フォーム」。 「(2)顧客名」から検索をかけたくて、検索コマンドボタンをつくり、「検索フォーム」を発注書フォームとまったく同じ形態でつくり、そこにとべるようにしました。 「検索フォーム」には「検索」というテキストボックスを作ります。 「検索クエリ」というクエリを作り、発注書テーブルを素とし、すべてをデザインビューで表示するようにしました。 そして、「(2)顧客名」の抽出条件に[Forms]![検索フォーム]![検索]を入力します。 すると、「検索フォーム」の「検索」をコンボボックスにして、顧客名をすべて表示させ選択した場合は、「検索フォーム」では、選択した顧客の情報が表示されるようになりました。 が、しかし、「検索」をコンボボックスではなく、テキストボックスで、しかも顧客名の一部だけを入力したら、その文字を含むすべてのレコードを表示してほしいのです。 そこで、「検索クエリ」の「(2)顧客名」抽出条件にlike"*[Forms]![検索フォーム]![検索]*"と入力してみました。 そして「検索フォーム」の「検索」テキストボックス(非連結)に顧客名の一部を入力したところ、ぜんぜん絞りこみ抽出してくれません。 もちろん、クエリ上でも絞り込んでいない模様です。 どうしたら文字の一部からその文字を含む顧客名のレコードを全て抽出し、表示させることができるでしょうか? 細かくてすみませんが、かなり困ってます。 どうかわかる方、教えてください。 まったくちがう方法(別の手法)でもかまいません。 この説明でわからない部分がありましたら補足しますのできいてください。 よろしくお願いします。

  • Access、教えてください。

    顧客データテーブル(ID・Name)とトータルデータがあります。 フォーム(トータルデータテーブル)内のコンボボックスで顧客データを選択して入力するのですが、その時、フォーム上では名前を表示し、テーブルにはIDで保存したいのです。できますでしょうか?どのようにしたら良いのでしょうか?教えてください。よろしくお願いいたします。

  • アクセスのフォームによるデータ入力について

    顧客の販売履歴管理で サブフォーム上に抽出した顧客データをクリックして 入力用のフォームが立ち上がりデフォルト値として抽出した顧客のデータがすでに入った状態にする方法はどうすればよいでしょうか? 顧客データデーブルと履歴テーブルがあり2間は顧客IDでリレーション関係されています。

  • アクセスでお問い合わせDBを作成したいが

    顧客テーブルのID(オートナンバー)と、問合せ入力テーブルの親ID(数値型)をリレーションシップで一対多の設定をしています。 顧客テーブルから作成したフォームからコマンドボタンで新規の問合せ入力フォームを開きたい(サブフォームは別の用途に使用したいので使いたくありません)のですが、フィルタがかかって入力できず、顧客テーブルのIDが問合せ入力フォームのIDに自動的に入りません。どのようにしたらよいのでしょうか? とても困っています。お願いします。

  • Accessフォームの操作で

    2つの別々なフォームがあります。 それぞれのフォームの基になっているテーブルが別々にあります。 ひとつはデータが入力されているテーブルで もうひとつはフォームから入力していく空のテーブルです。 データが入力されているフォームでは、データ抽出するサブフォームを持っていて、 そこにあるレコードセレクタをダブルクリックすると もうひとつの空のテーブルから作成したフォームにデータを入力していくようにしたいんですけど、うまくいきません。 乱文でわかりにくいとは思います。 ご迷惑をおかけしますが教えてください。 よろしくお願いします。

  • accessのフォームで参照しながら入力

    access初心者です。教えてください。 今、以下のようなテーブルがあるとします。 TBL_A ID,名前,TEL,FAX TBL_B ID,顧客ID,年月日,メモ 新規でTBL_Bのデータを追加するときにリストボックスから顧客を選び、年月日とメモを入力するフォームを作成しています。 このときにリストボックスより選択後、年月日とメモを入力するテキストボックス等の横に該当顧客の直近(TBL_Bの該当顧客の年月日が最新のもの)のデータを表示したいです。 要するに前回のデータを見ながら入力したいです。 表示はテキストボックスでもラベルでもかまいません。 実際には項目数は20個程度あります。 VBAでもかまいません。どのような方法があるでしょうか? 教えて頂きたいです。

  • Accessでの電話番号下4桁での検索について

    Access初心者です。 今Accessで顧客管理を作成しています。 フォームで電話番号の下4桁で検索し、該当の顧客の情報がフォームで見れるようにしたいのですが、クエリでの取り込むべきフィールドや抽出条件などがよくわかりません。 今現在はクエリに「電話番号」フィールドだけを取り込み、抽出条件に Right([Forms]![電話番号検索]![電話番号],4) というのを入れてます。 今の段階で作成しているものは、 ・ユーザーテーブル ・検索実行クエリ ・ユーザーフォーム ・書き込みフォーム ・電話番号検索フォーム ・開くマクロ ・閉じるマクロ ・最後のレコードへ移動するマクロ ・新しいレコードへ移動するマクロ ・書き込みマクロ ・終了マクロ 以上になります。 電話番号検索フォームで下4桁を入力し、検索ボタンを押すとユーザーフォームの該当の顧客の情報が表示されるようにしたいというのが目的です。 何卒ご指導の程よろしくお願い致します。

専門家に質問してみよう