【初心者向け】Accessでの顧客テーブルの絞り込み方法

このQ&Aのポイント
  • Access初心者の方に向けて、顧客テーブルの絞り込み方法についてご説明します。顧客テーブルから特定の名前で絞り込みをかける方法を学びます。
  • 顧客テーブルからフォームを作成し、名前で絞り込みをかける方法をご説明します。フォームヘッダーにテキストボックスと検索ボタンを設置し、テキストボックスに名前を入力してボタンをクリックすると絞り込みが行われます。
  • 上記のVBAコードに問題があり、パラメータが表示されてしまい絞り込みができない状況です。解決方法として、コードの修正やデータベースの設定を確認することをおすすめします。
回答を見る
  • ベストアンサー

Accessの絞りこみについて教えて下さい。

Access初心者です。顧客テーブルがあり、名前で絞りこみをかけたいのですが、エラーになってしまい困っています。 顧客テーブルからフォームを作り、フォームヘッダーにテキストボックスとボタンを作成しました。 絞り込みは苗字でもHITするようにし、テキストボックスには名前を入力、ボタンで絞り込みをかけるというかたちです。。 テキストボックス名は検索用、ボタンの名前は検索にしています。 そこで下記VBAコードを入力したところ、パラメータが出てきてしまい、絞り込み出来ません。 Private Sub 検索_Click() Me.RecordSource = "select * from 顧客リスト where 氏名 like ‘*" & 検索用 & "*’" End Sub どうしたらよいでしょうか? 教えて下さい。 よろしくお願いします。

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

>"select * from 顧客リスト where 氏名 like ‘*" & 検索用 & "*’" "select * from 顧客リスト where 氏名 Like '*" & Me!検索用 & "*'"

maruzen22182688
質問者

お礼

ご回答ありがとうございます。piroin654様のに変更したら、出来ました。 ありがとうございました。

その他の回答 (1)

  • jacob-wk9
  • ベストアンサー率36% (85/231)
回答No.2

実機で試してないのでちょっと保証ないですが、 filterを使えば上手くいくのではないでしょうか。 Me.Filter = "氏名 like '" & Me!検索テキストボックス & "'" Me.FilterOn = True 解除ボタンも作って Me.FilterOn = False とすれば元に戻ります。

maruzen22182688
質問者

お礼

ご回答ありがとうございます。 このようなやり方もあるのですね。大変参考になります。 ありがとうございました。

関連するQ&A

  • Accessの検索フォーム

    またまたAccessについての質問です。 検索フォームというのを作りました。 テーブルのデータから条件に合うものだけを抽出したいのです。 たとえば1つ目の検索フォーム[A]のテキストボックスに「AAA」を入力します。 そのあとBには「BBB」と入力します。 同じくCには「CCC」と入力します。 そして絞込みボタンを押したらAAAでBBBでCCCのものが抽出されます。 これはうまくいきました。 とりあえず、複数条件なので、わけもわからず「&」で結んでしまいました・・・。 ↓は絞込みボタンのクリック時です。↓ 困ったのは、すべて検索条件を指定しない場合です。 たとえば「AAA」で「CCC」のものを抽出したいとき、[A]のテキストボックスに「AAA」と入れ [C]のテキストボックスに「CCC」と入れます。 そして絞込みボタンをクリック。 するとBが未記入だからか、抽出されたのは真っ白でした・・・。 Option Compare Database Private Sub コマンド50_Click() Me.Filter = "契約='" & Me!テキスト51 & "'and A='" & Me!テキスト57 & "'" Me.FilterOn = True End Sub 組み合わせが自由になる検索フォームにするにはどうすればよいのでしょうか? 誰か助けてくださ~い!

  • ACCESSの技を

    ACCESS初心者なのですがデータ入力(テーブルに)フォームにてふりがなのコンボボックスを使い 顧客のふりがなで検索して顧客を選びそのままフォームの他の入力をしてテーブルに記録させる方法ってのは ありますか? 顧客が多くて顧客のリストボックスではうっとおしくそのまえに「あ」と入れたら あ行の顧客しかでないリストボックス そんなのを作りたいです。 どなたか教えてもらえませんか? それか参考になるHPを教えてください。 お願い致します。

  • アクセス2000 二段階絞込み コマンドボタン使用

    はじめて投稿させていただきます、宜しくお願いいたします。 アクセスは初心者です。 現在はじめてシステムを作っているんですが、1つどうしても上手く出来ないことがあります。 二段階(もしくは三段階以上)絞込みを「コマンドボタン」を使用してやりたいんですが、 関係するスレをいろいろ探しても「コンボボックス」を利用するやり方の説明はよく見受けられますが、「コマンドボタン」でのやり方のスレを見つけるのに苦労しています。。。 どのように使っていきたいかの具体的内容は以下の通りです。 (1)親フォームに検索条件を入力して、 サブフォームで検索結果を表示する⇒これは一段階の絞込みであれば問題なく出来ています。 (2)問題はここでの二段階絞込みですが、 具体的には、、、 まず、親フォームのテキストボックスの検索条件に「品番」を入力し、それをサブフォームに結果を表示します。その時のコードは以下の通りです。 ※サブフォームの名前は「生産課マスタSub」です。   コマンドボタンの名前は「検索Cmd1」です。  テキストボックスの名前は「品番検索Txt」です。 Private Sub 検索Cmd1_Click() Me!生産課マスタSub.Form.FilterOn = True Me!生産課マスタSub.Form.Filter = "[品番] Like '*" & Me.品番検索Txt & "*'" End Sub 次に、テキストボックスで「品名コード」の検索をかけ、二段階に絞込みをし、それをサブフォームに反映させたいのです。 つまり、例えば品番「1997」をコマンドボタンで検索をかけ、サブフォームに表示させたあと、次に品名コード「C1997」で同様にコマンドボタンで検索をかけ絞り込めるようにしたいのです。 (そこから更に条件を追加してどんどん絞込みをかけていけたらと思いますが、、、) 出来ましたら、わかりやすく全体的なプロシージャを表記して説明していただけるとありがたいです。勉強不足で申し訳ありませんが、ご指導宜しくお願いいたします。

  • パススルークエリの動的パラメータの指定方法

    SQLServer初心者です。 社内で顧客情報を管理するためAccessを使っています。 フォームを使って検索,登録等できるようにしています。 データ量が増えてきたので, テーブルのみSQLServerに移行することになりました。 ただ単にテーブルをSQLServerに移行して クエリ等はそのままで使ってみたところまったく高速化されませんでした。 Accessで行っている動作は以下です。 フォーム上に設置した検索用テキストボックスに「ヤマダ」と入力して 「検索」ボタンをクリックすると リストボックスに「ヤマダ」とつく氏名一覧が出てきて, 該当する氏名をクリックすると,右側にその人の詳細情報が表示されます。 抽出はAccessクエリで行っています。 検索用テキストボックスを使って,Accessのクエリで絞り込みをしているのですが パススルークエリを利用してSQLServer上で絞り込みをすることができるようだと 調べていて知りました。 しかしそのやり方がうまくWEBで検索できずにいます。 パススルークエリの動的パラメータの指定方法をご教授いただきたいです。 よろしくお願いいたします! 環境は以下です。 SQLServer:microsoft SQL SERVER 2008 R2 Access:Access2007 ODBCデータソースを作成してSQLServerに接続しています。

  • ACCESS VBAで抽出条件の書き方

    フォームに、テキストボックス(名前「txt住所」)とコマンドボタン(名前「cmd開く」)を作成しています。 テキストボックスに入力した値と等しいレコードだけを、F_顧客フォームに表示するには以下のように書く。 とテキストに書いてありました。 Private Sub cmd開く_Click() DoCmd.OpenForm "f_顧客", , , "住所='" & Me!txt住所 & "'" End Sub ・・・質問があるのですが。 なぜMe!txt住所は、&(文字列連結演算子)で囲まないといけないのでしょうか?? そして、& Me!txt住所のあとにスペースをいれないと、構文エラーになるのですが、スペースが必要なのはなぜでしょうか??

  • Access2002での複数項目検索について

    教えてください。 Access2002でデータベースを作っています。 ふたつのテーブルから選択クエリを作成、そのクエリ内で部分一致のパラメータを設定し、 複数項目(5つ)の検索を行っていましたが、検索のたびに毎回5つのダイアログボックスを クリア(必要項目を入力、入力しないパラメータは「OK」でとばす)するのがめんどくさいと 使用者にいわれ、検索フォームからの検索に変えたいと思っています。 その場合、  (1)選択クエリを基としたフォームを新規作成し、  (2)非連結のテキストボックスを5つ作り、それぞれ適当な名前を付け、  (3)クエリの抽出条件の欄の現在パラメータ設定をしているところを、       [Forms]![フォーム名]![テキストボックス名]に変える だけではできないのでしょうか。。 いろいろWeb上で調べたり、本を読んで見よう見まねでつくってみましたが、出来上がった フォームから検索ボタン(「クエリの実行」ボタン)を押しても、全件が表示されてしまうの です。 パラメータではできているのに・・・。 どなたか、ご教示くださるとうれしいです。 よろしくお願いいたします。

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

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

  • テーブルをコンボボックスで選びたい

    いつも、お世話になっています。お願いします。 1つのフォームで複数のテーブルにデータ入力をしたいのです。 テーブルに、平成14年1月、平成14年2月、・・・、と 毎月分あります。 現在は、コマンドボタンを作成して、以下のようにしてます。 Private Sub コマンド1_Click() Me.RecordSource = "平成14年1月" End Sub Private Sub コマンド2_Click() Me.RecordSource = "平成14年2月" End Sub これですと、テーブルの数のコマンドボックスが必要ですので、 ちょっと、煩雑に見えています。 コンボボックスを作って、 テーブルを選べるようにしたいのですが、 式ビルダとか、見ているのですが、出来ません。 お教えください。お願いします。

  • フォーム上での検索方法

    Windows2000/ACCESS2000 を使ってます。 顧客台帳等を作ってるのですが、フォームのそれぞれのテキストボックスで検索出来るように設定したいのですが・・・・ 例えば、フォームの電話番号のテキストボックスに検索したい電話番号を入力して検索ボタンを押すとその番号の顧客データーが表示されるようにしたいのですが、どのように設定したら良いのか分かりません。 お手数かけますが、宜しくお願いします。

  • ACCESSのMVBかな?

    ACCESSの検索した結果をテーブルのところに転記する方法はありますか? 例)入力フォームで顧客が多い為「あ」と押してあ行の顧客(顧客情報はID・顧客名など)を検索して別のフォームを開き そこに転記というコマンドのボタンを押すと元の入力フォームに顧客IDが入力される なんてMVBのプログラム教えてもらえませんか? 現状最後の転記だけ出来てません  Option Compare Database Option Explicit Private Sub コマンド7_Click() If kdck = 1 Then Forms![借用入力F]![顧客ID] = Me![顧客ID] DoCmd.Close DoCmd.Close DoCmd.GoToControl "運転者名" End If End Sub Private Sub 閉じる_Click() DoCmd.Close End Sub とあるところから参考でコピーしたMVBのプログラムですがまったく初心者で理解できていません。 どなたか助けてください。

専門家に質問してみよう