• ベストアンサー

アクセスでの文字検索方法

いつもお世話になります。 今回、マイクロソフト アクセスを使用する事になりました。 会社の見積りで使用するのですが、今まではエクセルで見積りを作り、過去の見積書から拾い出し、コピペで作成していました。 今はコンボボックスを使用して見積書を作成していますが、検索数が多いので、文字を入力して検索出来ないかと思います。 1つのテーブルに「機械名」「品番」「部品名」「型番」「単価」「担当者」と作り、コンボボックスで「機械名」を選び、次に「部品名」「型番」・・・と選ぶようになっています。 これを「機械名」「部品名」と入力すると、フォーム詳細に出るようにしたいです。 どのような方法があるのでしょうか。 アクセス暦が2ヶ月と超初心者なので、説明が分かりにくいと思います。 OSはWin2000、アクセスは2000です。 どうぞ、よろしくお願いします。

  • derio
  • お礼率92% (26/28)

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

  • ベストアンサー
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

カテゴリが、おそらく違うので回答が付かないだろうと思ったのですが・・・付いてませんね。 クエリーで、検索条件に Like "*" & Form![フォーム名]![コントロール名] & "*" を設定し、フォームのレコードソースに使用し、上記のコントロールが更新後に、再クエリーのマクロかVBAを稼動させる事で、フォーム詳細に絞込みが可能になります。 ただし、クエリーの条件に使用するコントロール名はコントロールソースなしのテーブルのフィールド名と違うものを使用ください。 多分、これで、 > フォーム詳細に出るようにしたいです。 は、可能だと思うのですが・・・。 どう見積書の内訳として使うのか、イメージできないのですが・・・。

derio
質問者

お礼

お返事ありがとうございます。 まだまだ初心者なんで、1つ1つ勉強していきます。 見積書と使用する方法は、フォームを作って、その中にサブフォームで今回、お聞きした物を入れようと考えています。 カテゴリが違うかったんですね。すみません。

その他の回答 (1)

  • kafuyu
  • ベストアンサー率0% (0/1)
回答No.2

>これを「機械名」「部品名」と入力すると、フォーム詳細に出るようにしたいです。 →Dxak様のご回答通り、フォームレコードのソースにSQL文を入れれば問題ないかと思います。 ですが、それだけではクエリーが実行されません。ですからいずれかのアクション時に以下のVBAを記載してあげれば大丈夫だと思います。 Me.Requery '←フォーム内のクエリーを再表示 後は、ヘッダー部分に『機械名』『部品名』のコンボボックスを作れば、一覧は出来ると思います。 ただこれが見積書に、どのように結びつくか解りませんが…。 あとDxak様のご回答に少し発展させたSQLを記載して見ますね。 テーブル名:ICHIRAN SQL文:SELECT * FROM ICHIRAN WHERE 機械名 Like '*" & Me![コントロール名] & "*' AND 部品名 Like '*" & Me![コントロール名] & "* ' " 自分のフォーム内でしたらMeが使えます。 他のフォームでしたらForms![フォーム名]![コントロール名]で参照出来ます。 色々書いてしまいましたが、もし色々悩んでましたら、参考URLの掲示板を見て下さい。結構役にたちますよ。

参考URL:
http://www.moug.net/
derio
質問者

お礼

お返事ありがとうございます。 参考URL、とても役に立ちます。 パソコンを使えるのが会社で僕がメインになってしまっているので、 他の誰にも聞けません。(社員10人の零細企業です) 少しづつですが、がんばって勉強いたします。

関連するQ&A

  • アクセスでの抽出方法

    アクセス2000を使用しています。 今までエクセルで単価を調べていたのを、アクセスで調べたいと考えています。 今は下図のようにテーブルのフィールドを作りました。 担当者 見積番号 機械名 部品名1 単価1 部品名2 単価2・・・ ○○様 001   △△機   A1   500  A2    300 ただ、機械一式で作る場合は問題無いのですが、機械の部品だけを数点作る、という事が多くあります。 例えば、機械一式の場合は下記のようなテーブルを作りました。 品名1 単価1 品名2 単価2 品名3 単価3 品名4 単価4・・ A1   500  A2   300  A3   800  A4   200 この機械で部品3点の場合は下記のようになります。 品名1 単価1 品名2 単価2 品名3 単価3 品名4 単価4・・ A2  300  A4   200  A6   800  A9   300 これで「A2の部品の単価が知りたい」となった時には、フォームに「テキストボックス品名1」と「テキストボックス品名2」を作り、それぞれから調べる方法しか僕には分かりません。 これを、1つのテキストボックスで、部品名を入力またはコンボなどからの選択で、品物1、品物2、品物3などのフィールド全てから検索し、単価を抽出する事は出来ないでしょうか? 今はエクセルで見積書を作成し、そこからアクセスへインポートしています。 言葉足らずかも知れませんが、よろしくお願いします。

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

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

  • Access VBA

    Access 2000 についての質問です。 下記のようなフォーム上のコンボボックスで 商品、産地、サイズを選択 →テキストボックスに個数を入力 →見積りボタンをクリック →テキストボックスに合計金額を表示 ----------------------------------------- フォーム  コンボ コンボ コンボ   テキスト  商品  産地  サイズ   個数 ボタン        テキスト 見積り        金額:______円 ----------------------------------------- というものを、下記の表に基づいて作りたいのです。 単価.xls ===================== 商品  産地 サイズ 単価 みかん 和歌山 L  30 リンゴ 青森  M  50 リンゴ 青森  L  70 リンゴ 長野  L  70 ===================== そこで、コンボボックスで選択した値を活かして 単価.xlsの ”単価”の値を利用して テキストボックスに表示したいのですが、 どのように記述すれば使用できるのか?わかりません。 超初心者ですのでわかりやすく教えてください。よろしくお願いします。

  • アクセスのついて

    アクセスのフォームのフォームフッターに検索項目をコンボボックスで作成しました。 コンボボックスを作成まではできたのですが、その後ができません。 コンボボックスに条件を入力して、フォームに検索結果を出したいのですが、検索項目が29個あって、どういう風に設定したらよいのか分かりません。 今日中になんとかしたいのですが、どなたか教えてください。宜しくお願い致します。

  • Accessの検索フォームについて

    Access2000 XP SP2 はじめまして。 Accessを使ってたまったデータを 検索するフォームを作成しています。 その検索フォームですがコンボボックスを使おうと思っています。 そこで、Googleツールバーの様に 何か文字を入力したタイミングで後方検索し 候補をずらっと出てくるようにしたいと思っております。 使う人がAccessをまったく知らないので なるべく負担がかからないような仕様を考えております。 サンプルなどありましたら教えて頂けないでしょうか? 宜しくお願いします。

  • Access2003にて・・・

     こんにちは。Accessにて、詰まってしまいまして、お知恵をお借りできればと思っています。よろしくお願いします。 Access2003 にて テーブルAには、 品番、品名、単価の3つのフィールドがあります。 このテーブルをもとにして、フォームAを単票形式で作成しました。 このフォームを、品番を登録したりするためではなく、品名や単価の確認用として使用したいと考えています。そこで、「品番」コントロールに品番を入力すると、あとの2つのコントロールに自動でデータが表示されるようにできればいいな、と思いました。  「品番」コントロールはコンボボックスに変更し、テーブルAの品番から値を取得するよう設定し、ここを入力したあと更新後処理であとの2つのコントロールに値を表示するような設定をするのかな、というところまで至って、はてここにどのような処理を書き込めばいいのかで詰まってしまいました。  このやり方がそもそも間違っているのかもしれません。テーブルをもとにするのではなく先にクエリを作っておくのがいいのかもしれませんが、自分なりにいろいろ試してみたのですが、なかなかうまくいかなくて…  何か方法はありますでしょうか?他にここへ組み込むサブフォームやら、別のフォームを表示させるボタン等考えているのですが、上記の方法ができるかできないかでフォームAのつくりを変えようと思っているので、とりあえずは必要と思われることだけ書きました。言っていただければどんどん補足させていただきますので、何か方法がございましたらご教授お願いいたします。 (ちなみに、私のAccessレベルは初心者でございます…)

  • Accessでの検索

    Accessで文書を管理するシステムを作成しているのですが、検索フォームの作成がうまくいきません。どのような検索が行いたいかといいますと、複数の条件をコンボボックスで指定して、それに対する検索を行うといった形を取りたいのです。1つの項目に対する検索はできるのですが、複数になるとどのようにすればいいのかわかりません。どなたか教えてください。よろしくお願いします。

  • Access コンボボックスを使って抽出

    Access2000・Windows2000を使用しています。 レコードの抽出をしたいと思います。テーブルは1つ、フィールドには日付・商品名・業者名・単価・・・とあります。フォームで「商品名から抽出(コンボボックスから商品を1つ選ぶ)」または「業者名から抽出(コンボボックスから業者を1つ選ぶ)」(コンボボックスから商品を1つ選ぶ)出来るようにし、なおかつ今月のレコードのみ表示させたいのですが、まずそのテーブルを1つ作成した時点でつまづいてしまっています。 どなたかご教授お願いします。

  • vlookup関数で検索値に文字を入れてもエラーが出ないようにするには?

    エクセルのVLOOKUP関数を使って、注文表を作成しています。 品番(検索値)を入力すると商品名と単価が表示されるように作り、空白でもエラーが表示されないようにはできました。 しかし、品番が空白のときだけでなく、「セール」と入力した場合でも、商品名と単価が空白になるようにしたいのですが、やり方がわかりません。 「空白ORセールの場合、空白にする」という論理にするにはどうしたら良いのでしょう? どなたか教えていただけますようお願い致します。

  • ACCESSでコンボボックスで入力しないとき

    ACCESS2000を使用しています。 コンボボックスを使用しているのですが、コンボボックスの中から選択して入力したのか、ダイレクトに入力したのかを区別するということは出来るのでしょうか。 コンボボックスとして作成した項目のところに、コンボボックスから連続して複数の値を取得する ということをしています。 つまり、コンボボックスの中に    1111    222    333333 とあるとすると  2221111 という項目にしたいというときです。 上記の質問は 間違って 作成したとき 2221111 を 後ろの1111を削除して 222に戻したい としたいときのことです。  よろしくお願いいたします。     

専門家に質問してみよう