- 締切済み
Accessの使い方で質問です
画面上から指定された条件をどのようにクエリに活かせばいいのかがよくわかりません。どなたかアドバイスをどうかお願いします。 ・対象テーブルの列は以下のような構成です。 会社コード 商品コード 商品番号 購入者名 ・やりたいこと (1)フォーム上のテキストボックス(に限りませんが)に上記の列名のいずれかを指定させます。 (2)そのテキストボックスに入ってきた列のデータ値に合わせた条件をユーザーに入力してもらいます。 (3)その結果を同じフォームの下半分にレコードデータのように表示させます。 ユーザーから見た操作イメージは「どの列に対して((1))条件を指定して((2))レコード検索する((3))」といった感じです。 (2)はクエリ上でその列に対して「like[入力値を入れてください]」と指定すればできると思うのですが、(1)の条件をどのように画面上で指定してもらい、それを(2)のクエリにとりこめばいいのかがわかりません。(3)はサブフォームで(2)のクエリを元に作成すればいいのかも・・・と思うのですが、(1)(2)が出来ないので先に進めず困っています。 どなたかどうかアドバイスをお願いします。質問の内容が足りなかったらすぐ補足します。
- kb2006
- お礼率22% (2/9)
- その他(ソフトウェア)
- 回答数2
- ありがとう数1
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ipsum11
- ベストアンサー率21% (55/251)
どうも#1です、補足見ました。 見た所、条件は一つの項目(商品コードならそれのみ)しかないのですね? 考えられる方法として、 1.条件分(各列分)のクエリーを用意してやり使い分ける。 2.全ての項目に条件を設定しておく(like [Forms]~)。 条件ウィンドウで不必要な項目は「**」をフォーム上のダミーコントロールにセットする。 どちらかですかね。2がわかりづらいですかね。 クエリの各列の抽出条件に「like [Forms]~」。 フォームに条件用コントロールを4つ作る。 例えば、リストで商品コードを選び、質問ウィンドウで「AA0101」と指定したら、条件用コントロールの2番目に「AA0101」とし、それ以外の1・3・4番目には「**」とします。 こうすれば商品コードが「AA0101」で、他の項目は全て検索対象になるはずです。 また、不明点がありましたら、どうぞ。 遅くなるかもしれませんが...
- ipsum11
- ベストアンサー率21% (55/251)
(1)これについては、どのような条件にしたいのかがわからないので、答えようがありません。 とりあえず、条件に使いたい項目をフォーム上に作ります。あとは、それらを使い、会社コードで検索なのか、会社コードの範囲で検索なのか、商品コードか、商品番号か、購入者か、それらの複合か、で使い分ければいいわけです。 (2)上記(1)で条件が決まればそれを元にクエリーを作りますが、その時の抽出条件にフォームのコントロールを指定しておけばいいのです。 [Forms].[フォーム名].[コントロール名] と言う風に。 (3)そのクエリーを使用するサブフォームのレコードソースに指定しておけばいいはずです。
関連するQ&A
- ACCESS2010テキストボックス値を抽出条件に
ACCESS2010にて、フォームに作ったテキストボックスの入力値(数字3桁)をクエリの抽出条件にしたいと考えています。 ただ、そのテキストボックスの数が30個の為、クエリデザイン画面の抽出条件欄にorを用いた条件式で設定することが出来ませんでした。(文字数上限超?) そこで、VBAを用いて抽出条件を設定しようと考えているのですが、初心者のため全く勝手が分かりません。VBAでの設定方法やVBA以外での抽出方法があれば教えて頂けないでしょうか。 尚、テキストボックスには商品コード(数字3桁)を入力し、売上データを集計したクエリにおいて、フォームのテキストボックスに入力された複数の商品コードを抽出条件に設定したいと考えております。 以上、どうかお願い致します。
- 締切済み
- オフィス系ソフト
- (アクセス)全てのイベントプロシージャが無反応に
何らかの原因でプロシージャやコマンドボタンに設定したマクロ等が無反応になる現象に苦慮しています。 多くのフォームの中で、この現象に関連するフォームは2画面あり、それぞれをフォームA、フォームBということで説明いたします。((1)~(4)) (1)フォームAのコマンドボタン押下でフォームBを開きクエリーのデータ(フォームAで指定した条件) を表示しています。 フォームBで他のフォームと異なっているプロパティは次の通りです。 ・ポップアップ ----はい ・作業ウィンド固定 --はい (2)フォームBにはレコードソース(クエリ)の値を表示する幾つかのテキストボックスとコンボボックス が2つあり、それぞれをコンボA、コンボBとするとフォームBを開いた時はそれぞれにクエリーの データを表示し、変更する場合はコンボAで選定した条件でクエリによりコンボBにデータを表示す るようにしています。 (3)なお、コンボAの列数は2で、コンボボックスには列1のデータ(商品名)を表示するようしていて列 2の値(商品コード)を一旦テキストボックスに取り出し、そのコードでクエリによりコンボBのデータ を表示しています。テキストボックスのプロパティのコントロールソースには次のように記述していま す。 =コンボ186.column(1) ※=コンボ186がコンボAのことです (4)あと、フォームBにはデータをチェックするためのイベントプロシージャが幾つかとフォームAへ戻る ためのコマンドボタンがありますが他のフォームと比べても特に問題は無いように思えます。 以上のような環境でフォームAからフォームBを開いた時に、フォームBにはレコードソースであるクエリの値は全て表示するものの全てのイベントプロシージャ及び(3)で説明しました =コンボ186.column(1) の処理が一切動作しなくなります。 しかし、次の操作により回復し、その後はACCESSを終了し再起動しても正常に動作します。 ・フォームBをデザインビューで開く ・フォームBを開く時に設定しているイベントプロシージャを表示 ・イベントプロシージャをいじって閉じる。(内容は変更しない) ・フォームBをホームビューで開く だらだらと長くなり説明も不十分かと思いますが、原因がどうしてもわからなく困っております。 何か手がかりを教えて頂けたらと思い投稿しました。 よろしくお願いいたします。
- 締切済み
- その他(データベース)
- ACCESS 選択クエリーの抽出条件について
既出でしたら、大変申し訳ありません。 選択クエリーの抽出条件をフォーム上テキストボックスに入力した 値で行いたいと思います。 対象の項目は商品コードであり、テキスト型です。 フォーム上のテキストボックスに、1111 と入力し、 クエリーの実行をしたところ、正常に抽出。 しかし、フォーム上のテキストボックスに、"1111" or "2222"と 複数の商品を抽出したいので入力した場合、結果が出ませんでした。 おそらく、"1111" or "2222"の記述に問題があるのだと思い、 何パタンか挑戦しましたが、結果バツ。 どなたかお分かりになる方いらっしゃいますか? つたない文章で申し訳ありません。
- ベストアンサー
- その他(データベース)
- Access2000 フォーム/サブフォームについて
質問させていただきます。 フォーム/サブフォーム形式で画面を作っています。サブフォームは帳票形式で、複数のレコードを表示しており、各行の左にコマンドボタンを用意し、それをクリックすると、更新クエリー、削除クエリーが動くようにしています。 しかし、更新、削除クエリーとも ”0件のレコード”で処理が正しく動作しません。 ちなみに、両クエリの抽出条件は・・・ [Forms]![メインフォーム]![サブフォーム]![商品コード] しかし、フォームを使わずクエリーから実行する(パラメータに条件を手入力する)と正しく動作します。 記述ミスがないか何度も見返したのですが・・・。 「サブフォームの目的の行の商品コードと一致するデータを処理する」としたいのですが・・・。
- 締切済み
- オフィス系ソフト
- ACCESS2003でクエリを使った検索フォームを作っています。
ACCESS2003でクエリを使った検索フォームを作っています。 クエリは以下の様になっています。 ---------- 番号 タイプ 品名 1111 AA 商品1 2222 AA しょうひん2 3333 BB 商品しょうひん3 ---------- 品名のフィールドの抽出条件に ---------- Like "*" & [Forms]![品名検索フォーム]![品名検索] & "*" ---------- と入れています。 品名検索フォームは帳票タイプで、フォームヘッダーにテキストボックスを設け 「品名検索」と名前をつけています。 テキストボックスに【商品】と入力すれば番号1111と3333が、【しょうひん】と入力すれば 番号2222と3333が抽出されるように設定し、ここはうまく動きました。 ただ、このフォームを開いた際、テキストボックスは空欄になっているため、全レコードが 表示されてしまいます。テキストボックスが空欄の際は、何も表示したくないのですが どこを触ればいいのでしょうか? どうかよろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- Accessであいまい検索するフォームをつくってみたんですが?
Accessの初心者です。 本などをみながらあいまい検索ができるようなフォームをつくってみましたがフォームを開いた時、全レコードが表示されてしまいます。 クエリーの抽出条件はLike "*" & Forms!フォーム1!テキスト0 & "*"にしてテキストボックスプロパティの更新後処理でDoCmd.Requeryとしました。(意味がよくわからないんですけど) フォームを開いた時やテキストボックスになにも入力されていない時、全レコードが表示されないようにするにはどうすればいいのでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- ACCESSでの検索
あいまい検索をしたいです。 【現状】 フォームデザインでテキストボックスを作り、検索ボタンを作成 ↓ 【したいこと】 マクロデザインで、「テキストボックスに文字列を入力すると、文字列を含むデータを抽出」 というまくろを組みたい。 [コード]=[Forms]![total]![コード入力]という、完全一致のものはここで教えていただいて作成できたのですが、もうひとつ、あいまい検索もしたいです。 あいまい検索は、「商品名」です。 宜しくお願いします。
- 締切済み
- オフィス系ソフト
- アクセスのフォームでデータ元をテーブルからクエリにかえたい
上手く表現できるかどうかわからないのですが、頑張って書きます。少々長いです。 アクセスでフォームを使ってデータ入力しています。これは単純で、あるテーブルへのデータ入力をフォームを使ってやるだけのことです。このテーブルの中に「都道府県」というフィールドがあります。ある事情からこのフォームを使ってデータ入力(または修正)をするレコードは、「都道府県」のフィールドが「福岡県」のものだけでよくなりました。 そこで、「都道府県」に「福岡県」を持っているレコードだけを取り出すクエリを作ります。このクエリを元にして、同じフォームでデータ入力したいのです。入力項目は全く同じです。「福岡県」をもっているレコードだけが全く同じフォームで表示されるようにしたいのです。 もとのテーブル名を「全データ」とし、クエリを「福岡県抽出クエリ」と呼ぶとすると、どこかで「全データ」を「福岡県抽出クエリ」に書き換えればすべてのテキストボックスのデータ元が入れ替わってくれると思うのですが、それでいいのでしょうか。その場合、どうやったらいいのでしょう。 なぜ一からファームを作り直さないかというと、テキストボックスの大きさや配置を決めるのに膨大な労力を費やしていて、全部をやり直したくないからです。 どうかお願いします。ご指導ください。
- ベストアンサー
- その他(データベース)
- Access クエリ抽出条件の「Between」の記述で
こんにちは。Access2000を使用しています。 「抽出条件」フォーム上のテキストボックス "txt開始コード"と"txt終了コード"の入力条件を 「抽出」選択クエリの抽出条件として Between [forms]![抽出条件][txt開始コード] And [forms]![抽出条件][txt終了コード] 記述しました。 抽出条件は「業務データ」テーブルの"業務コード" に対応しており、「業務コード」はテキスト型長さ4 で定義してありますが、「0000」~「9999」の数値 が格納されています。また、フォーム上のテキストボックスの書式は「0000」としています。 条件を何も入力しない時はデータを抽出しますが、条件 を指定すると何も抽出されなくなってしまいます。条件 の指定を、 Between '[forms]![抽出条件][txt開始コード]' And '[forms]![抽出条件][txt終了コード]' のようにシングルクォーテーションで囲んでもうまくいき ません。文字列なのに数値が入っているのでアクセス側で 自動認識しうまくいかないのか、検討がつきません。 どなたか解決策をお願いいたします。
- ベストアンサー
- オフィス系ソフト
- access 検索について教えてください。
フォームにテキストボックス(テキスト0)を配置し、県名を入力するとこのフォーム(検索フォーム)にレコード内容が表示されるようにしました。クエリの県名の抽出条件にform![検索フォーム]![テキスト0]とし、検索フォームの更新後処理に Private Sub テキスト0_AfterUpdate() DoCmd.Requery End Sub と記載し利用しています。 ここで質問ですが、抽出条件に[me].[テキスト0]と記載し、上記内容のコードを記載しましたが、検索フォームが表示できません。 どこがいけないのでしょうか? お願いします。
- 締切済み
- オフィス系ソフト
補足
ipsum11さん、アドバイスありがとうございます。 あと、言葉足らずですみません・・・。言葉で補うのが難しいので、出来る限り画面イメージと一緒に補足してみます。 [画面イメージ] ------------------------------------------------- 項目:リストボックスから選択 (リストは列名リスト) 検索ボタン[ボタン] (これを押すと「項目」で選択した列に対する質問(like[~])がウィンドウ表示されて、指定後、下のサブフォームに該当するレコードが表示される) ----サブフォーム----- 会社コード 商品コード 商品番号 購入者名 00001 AA0101 1001 ヤマダタロウ 00002 AA0101 1002 ヤマダハナコ ------------------------------------------------- 例えば、「項目」部分で「商品コード」をリストから選択し、検索ボタンを押した後に表示される質問ウィンドウ(likeの場合)で「AA0101」と指定したらサブフォームに該当するレコードが表示されるというイメージにしたいのです。 でもクエリで、各列全てにlike指定やForms指定をしてしまうと「ある列に絞ってlikeやForms条件を実行したい」ということができず、全ての列が対象になってしまうので困っています。 ipsum11さん、この説明で補足出来ていますでしょうか・・・?