• ベストアンサー

Accessで検索フォームを作成したい。

pooh_200xの回答

  • pooh_200x
  • ベストアンサー率46% (7/15)
回答No.2

簡単な検索ソースを書きます。 ↓がパラメータクエリをSQLビューで閲覧した際に見えますよね? SELECT テーブル名.TEL, テーブル名.社名 FROM テーブル名 WHERE (((テーブル名.SQNO)= [SQNOを入力して下さい。] )); そこで簡単な検索方法では↓Docmd.Runsqlを使用します。 Dim intKen As Integer  '数字の場合Integer・文字列の場合はString intKen = Me.検索値  '検索値=フォームのテキストボックスの名前・intKen(変数に格納) Docmd.Runsql "SELECT テーブル名.TEL, テーブル名.社名" _ & "FROM テーブル名 WHERE (((テーブル名.SQNO)= " & intKen & " )); '「説明」SQLを改行する際は「 ~" _ 」で改行して次行は「 & " 」 '[]のパラメータクエリが入る場所に"&変数名&"を入れる。 '上記は数字の場合で文字列は「 '" & intKen & "' 」 こんな感じでよろしいでしょうか? そうそうあいまい検索の際には「*」を入れてください。 また、わからない点は追記して下さい。

KODAMAR
質問者

補足

Dim intKen As Integer intKen=Me.検索値 docmd.Runsql"SELECT 一覧.Date_year, 一覧.Date_month, 一覧.Date_day, 一覧.氏名ID, 一覧.ソートID1, 一覧.ソートID2, 一覧.氏名, 一覧.削除対象, 一覧.挨拶状送付, 一覧.年賀状送付先, 一覧.暑中見舞送付先, 一覧.ランク, 一覧.喪中, 一覧.会社グループID, 一覧.会社名, 一覧.会社名2, 一覧.役職, 一覧.所属, 一覧.会社郵便番号, 一覧.会社住所, 一覧.会社電話番号, 一覧.自宅郵便番号, 一覧.自宅住所, 一覧.自宅電話番号, 一覧.お歳暮・お中元_備考, 一覧.住所・ハガキ_備考, 一覧.異動・退職_備考, 一覧.その他_備考"_&From 一覧 WHERE(((一覧.Date_year)=" & intKen & ")); とかいたところ 「SQLステートメントが正しくありません。 'DELEATE'、'INSERT'、'PROCEDURE'、'SELECT'または'UPDATE'をしようしてください。」 と出ました。 その後 SELECT 一覧.Date_year, 一覧.Date_month, 一覧.Date_day, 一覧.氏名ID, 一覧.ソートID1, 一覧.ソートID2, 一覧.氏名, 一覧.削除対象, 一覧.挨拶状送付, 一覧.年賀状送付先, 一覧.暑中見舞送付先, 一覧.ランク, 一覧.喪中, 一覧.会社グループID, 一覧.会社名, 一覧.会社名2, 一覧.役職, 一覧.所属, 一覧.会社郵便番号, 一覧.会社住所, 一覧.会社電話番号, 一覧.自宅郵便番号, 一覧.自宅住所, 一覧.自宅電話番号, 一覧.お歳暮・お中元_備考, 一覧.住所・ハガキ_備考, 一覧.異動・退職_備考, 一覧.その他_備考 Dim intKen As Integer intKen=Me.検索値 docmd.Runsql"SELECT 一覧.Date_year, 一覧.Date_month, 一覧.Date_day, 一覧.氏名ID, 一覧.ソートID1, 一覧.ソートID2, 一覧.氏名, 一覧.削除対象, 一覧.挨拶状送付, 一覧.年賀状送付先, 一覧.暑中見舞送付先, 一覧.ランク, 一覧.喪中, 一覧.会社グループID, 一覧.会社名, 一覧.会社名2, 一覧.役職, 一覧.所属, 一覧.会社郵便番号, 一覧.会社住所, 一覧.会社電話番号, 一覧.自宅郵便番号, 一覧.自宅住所, 一覧.自宅電話番号, 一覧.お歳暮・お中元_備考, 一覧.住所・ハガキ_備考, 一覧.異動・退職_備考, 一覧.その他_備考"_&From 一覧 WHERE(((一覧.Date_year)=" & intKen & ")); としましたが、やはりうまくいきません。 どこが間違っているのでしょうか?

関連するQ&A

  • ACCESSで複数条件でデータ抽出するフォームの作成

    ACCESS2000で複数の条件を入力し、該当するデータを抽出するフォームを作成しています。どんな方法がありますか?簡単に出来る方法をお教えください。 具体的には、売上明細データを検索します。あらかじめ テーブル:売上明細データ をいろいろなマスタを参照している クエリ:売上明細クエリ を元に抽出します 条件は売上日付の日付1と日付2の項目と、伝票区分の項目です。 フォームの頭にテキストボックスを3つ作成し、日付1~日付2までの売上日付で 入力された伝票区分のもののみを表示させたいのです。 検索というコンボボタンを配置し、クリック時にその下にクエリからの必要な表示項目を売上明細クエリから配置しています。 抽出する方法(条件の与え方)を教えてください。よろしくお願いいたします。

  • Accessの検索フォームで。

    Accessを使ってデータベースを作成しています。 「テーブル1」があり、これには 名前ID 名前 入力日 チェック項目1 チェック項目2   : とあります。 これをもとに「検索クエリ」を作成しました。 検索クエリの項目は「テーブル1」とまったく同じですが、 すべてを検索するわけではないので ・名前ID  「検索項目なし」 ・名前  「Like IIf(IsNull([Forms]![検索条件入力フォーム]![名前]),[氏名],'*' & [Forms]![検索条件入力フォーム]![名前] & '*') ・入力日  「検索項目なし」 ・チェック項目1  「Like IIf(IsNull([Forms]![検索条件入力フォーム]![チェック項目1]),[チェック項目1],[Forms]![検索条件入力フォーム]![チェック項目1])」 ・チェック項目2  ※上記と同じ。   : としてあります。 この「検索クエリ」をもとに「検索条件入力フォーム」を作成してあります。 名前の欄に「田中」と入力すれば、「田中」がつく人がすべて検索されるというようなカンジになっています。 「テーブル1」に空欄があり、その場合に、検索がうまくいきません。 「検索クエリ」のところですべてに条件を入れればいいのですが、フォームに全てが入っていないので。。。 やはりフォームに「テーブル1」の項目すべてを含め、クエリで条件を入れるべきでしょうか? これが今考えている中では一番手早いようなカンジがするのですが、どうしてもあまりスマートなやり方ではないような気がして。。。 これしかないのであれば、これでやりますが、他にいい方法があれば、教えていただけないでしょうか? あまり上手な文章ではないので、補足要求があれば補足します。 宜しくお願いします。 Ac2000です。

  • Access、検索用フォームでのあいまいな検索

    現在、Accessでデータベース作成をしています。 テーブル:  ・テーブルA          ・テーブルB          (A・B間にリレーションシップ設定) クエリ    ・検索クエリ(テーブルA・テーブルBを元に作成) フォーム   ・検索用フォーム(デザインビューでフォーム作成より)          ・検索結果フォーム(検索クエリを元に作成) また、以下のような設定を入力しました。 「検索クエリ」の抽出欄  Like "*" & [Forms]![検索用フォーム]![検索したい名前] & "*"・・(1)  ※検索したい項目、すべての抽出欄に設定済 「検索用フォーム」  検索実行ボタンを作成し、マクロを設定  ・フォームを開く→「検索結果フォーム」  ・フィルタ→「検索クエリ」 上記の設定により、検索用フォームに検索文字を入力することで、その結果を「検索結果フォーム」に反映することができました。 ただ、テーブルAが元になっている項目の抽出欄のみに(1)を入力すると、うまくいくのですが、テーブルBが元になっている項目欄にも (1)を入力しようとすると、検索用フォームからうまく検索することができなくなります。 2つのテーブルを元にしたクエリからは、検索用フォームをつかった複数のOR検索はできないのでしょうか?? ご存知の方、ぜひ教えてください。 よろしくお願いいたします。

  • Accessでキーワード検索(抽出)

    Access97で新聞記事のデータベースを作っています。 以下のようなテーブルがメインの非常に単純なものです。 ┌──┬───┬──┬──┐ │日付│見出し│分類│備考│ ├──┼───┼──┼──┤ 新聞記事を日付やキーワードで抽出したいのですが、 キーワード検索がうまく出来ません。 パラメーターで見出し列からデータを抽出したところ、 完全に一致するデータは抽出されるのですが、 「*キーワード*」で一部合致のデータを 抽出することは出来ませんでした。 デザインビューで「抽出条件」に入力すれば 「*キーワード*」でも可能なことは確認しましたが Accessに慣れていない人に操作をさせたいため、できれば キーワード入力を促すフォーム(ダイアログ)表示 ↓ キーワードを入力して抽出 ↓ クエリー、フォーム又はレポートに表示 という手順にしたいのですが、 Accessの機能のみでそういったことはできますでしょうか? VBAを使った方がいいでしょうか?

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

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

  • ACCESS のフォームの内容をクエリーの抽出条件にするには?

    Windows2000,Access2000です。 Accessのクエリーでデータを選択して表示する作業をしています。 現在はクエリーを自分で修正して実行しています。 でもそれではみんなで使うには使いづらいので、 フォームを作成しそのフォーム上の入力項目に入力された データをクエリーの抽出条件に指定する様にしようという事になりました。 フォーム上の入力フィールドの内容をクエリーの抽出条件に設定する方法はすぐわかりました。 でも「like」を指定する方法がわかりません。 つまりフォーム上の入力データを“xxx”とした時、クエリーの抽出条件を 「like "*xxx*"」としてクエリーを実行したいのです。 つたない文章でわかりにくいかと思いますが、ご存じの方おりましたら、 よろしくご教示ください。

  • Accessでデータベースを作っています。

    Accessでデータベースを作っています。 先日、こちらで質問をさせていただいて、クエリで複数のフィールドを対象にデータを検索する ことはクリアできました。 ありがとうございました。 ご指導に基づき、4つのフィールド(仮にA,B,C,D)について、クエリの抽出条件に  Like "*" & [Aを入力] & "*"  Like "*" & [Bを入力] & "*" ・・・ とそれぞれ設定してパラメータ入力を求め、4つの条件すべて、または一部のみ設定して検索し、 正しい検索結果が得られました。 今度は、検索用のフォームを作成し、フォームで入力した条件をクエリに送って、同じ結果を 得たいと思うのですが、以下の方法では正しい検索結果が出てきません。 ・フォームに検索用のボックスをA~Dまで4つ作成(ひとつはコンボボックス、あとはテキスト) ・クエリの抽出条件に、それぞれ以下を入力     Like "*" & [Forms]![Q_form(作成したフォームの名前)]!                       [A(それぞれの検索ボックスの名前)] & "*" ・フォームに「クエリの実行」のコマンドボタンを配置 パラメータで入力する代わりにフォームを使いたい、というものなのですが(パラメータ入力 よりも、コンボボックスを使って値を選ぶ方が検索する人には使いやすいかと思って)、どうしたら うまいこといきますでしょうか。。 教えてください。

  • accessのnot検索

    access2000で テーブル[日付](yyyy/mm/ddで入力されています)   [内容](なんでも。空白の場合もあります) フォーム  「日付」(yyyy/mm/ddのみ入力可能にしています)  「NGword」(どんな文字でも入力できます) という項目を作成し・・・ 1、クエリでフォームの「日付」に入力したものかつ 2、フォームの「NGWord」を含まないレコードのみを抽出したいのですがうまくいきません。 「日付」「NGword」が空白の場合は入力された条件のみ適用させたいです。 (「日付」・「NGWord」が両方空の場合は全レコード抽出したいです) クエリを作成して・・・ [日付]の抽出条件を like "*" & forms![フォーム名]![日付] & "*" で [内容]の抽出条件を (not like "*" & forms![フォーム名]![NGword] & "*") or (is null) で設定したのですがうまくいきませんでした・・・泣 宜しくお願いします。

  • アクセス2003で選択クエリから検索フォームを作成しています。検索した

    アクセス2003で選択クエリから検索フォームを作成しています。検索したいレコードの名前を入力する際に、コピーアンドペーストができません。パラメータの入力でその都度入力しているので不便です。貼り付けができるようにするにはどのようにしたらよいでしょうか。どなたかご教授ください。よろしくお願いいたします。

  • Access2003 検索用フォームでの検索がうまくいかない

    Access2003 検索用フォームでの検索がうまくいかない とある、テーブルを参照するフォームを作成。 そしてテキストbokを設けて、各項目毎にキーワードを指定してデータを抽出できるようにしたいのですが、 どうもうまくいきません。 検索は出来ているのですが、全部ひっかからないのです。 例えば ID という項目を検索するbox に"1"を入力して ID=1の全データを抽出しようとすると、一部検索にかかってこないものがある という具合です。 テーブルに入力されている数字や文字が本当に一致しているかどうかも調べましたが確かに一致しています。 実際、テーブルを開いて ctr+f で検索すると全てひっかかります。 何が原因なのでしょうか??? 私の作った手順は以下のとおりです。 テーブル作成(エクセルからインポート) ※空白の欄もあります フォーム新規作成でフォーム作成 フォーム上にテキストbox作成 クエリ作成 (Like "*" & [Forms]![フォーム名]![テキストbox名] & "*" ) マクロ作成⇒フィルタ実行/上の手順で作ったクエリを登録 マクロをフォーム上へドロップ およそこのような手順です。