• ベストアンサー

アクセス2000でデータ抽出時に・・・。

yoishoの回答

  • yoisho
  • ベストアンサー率64% (331/516)
回答No.5

○クエリーの件 一つだけ確認ですが、T_個人名簿テーブルの[住所ID] と結合している T_住所一覧テーブルのフィールドは [住所] フィールド([住所ID] フィールドでなく)で間違いありませんでしょうか。 とすれば、maro200さんがおっしゃるように、SQLを見たところではクエリーに特に問題はないようですので、やはりテーブルのデータの問題でしょうか? ○データ抽出時のエラーの件 もしかしたらフォームの AllowAdditions(追加の許可)プロパティを False(いいえ)に設定されているでしょうか? もしそうですと、レコード数がゼロ(該当データが無い)の場合、フィルターをかけようとするとこんなエラーが出ると思います。(とすれば、クエリーの問題が解決しても、たとえば名前の抽出にまちがって“ん”なんて入れてしまうと、エラーが出てしまいます。) これが原因なら、最も簡単な解決方法は、(再下段に常に空の行が表示されてしまいますが)フォームの追加の許可をはいにすることです。(レコード数がゼロになっても、新規レコードに移動できる。) データの追加を禁止したければ、各テキストボックスの Enabled(使用可能)、Locked(編集ロック) プロパティで、工夫してみてください。 どうしても空の行を表示させずにエラーを回避したければ、 (1)レコード数がゼロになった場合に、分岐処理で工夫する。 レコード数のチェックは、Dcount関数(こちらの方が考え方がわかりやすい)か、Me.RecordsetClone.RecordCount(すっきりしているし処理も高速だけど、初心者には考え方が多少難しい)でできるかと思います。 (2)エラー処理で対応する。 VBAがマクロより優れていることの一つは、エラー処理が可能ということです。 On Error ステートメントの HELP がヒントです。 どちらにしてもその後の処理も工夫が必要ですので、それなりに複雑になります。なれていないとけっこう難しいかと思いますので、必要でしたら補足でコメントを要求してください。 もし原因が、上記の問題とは違うようでしたら、フォームのモジュールを示していただけませんでしょうか。 ○追伸 追加アドバイスが必要な場合、月曜以降になってしまうかもしれませんが、ご容赦ください。

mk114
質問者

補足

お世話になります。クエリの件については、maro200さんにお礼として伝えたとおりクリアーしました。データ抽出時のエラーの件については、未だ解決とは行っていません。アドバイスいただいた、フォームの追加許可は「はい」になっていますが、間違った条件を入れてしまえばエラーが出ます。 抽出条件にはコンボボックスを使って、T_グループ名の値を表示選択できるようにしています。フォームのデータは、困っていたクエリですが、クエリに抽出できていないグループ名を入れるとエラーになります。わかりにくいですが、これってクリアーする方法あるのでしょうか?ありましたらご指導お願いします。

関連するQ&A

  • access2000のレポートについて。

    お世話になります。前に質問した件がまだ解決していないのに、また質問してすみません。 質問NO.217579の時のデータベースなのですが、T_グループ名の印刷フィールドのチェックボックスがonになっているものを選択クエリで作っています。そこにはT_個人名簿のグループIDが同じレコードも抽出されます。 このクエリをもとにレポートを作っているのですが、レポートの詳細にはクエリで表示された目的のグループIDに該当するすべてのデータが表示できました。でも、T_個人名簿の代表者フィールドのチェックボックスがonになっている人を、レポートのグループIDヘッダーにも表示させたいのです。 フィールドリストにない値って表示できないのでしょうか?どなたかご指導お願いします。

  • Accessデータ並べ替えをハイブリッドにしたい

    [使用しているツール] Access 2007 PROFFESSONAL [やっていること(現状)] 1つのテーブルで複数のクエリ(複数のフィールドの並べ替えが必要な為)と複数(クエリと同数)のフォームを作成して、フォームの数だけコマンドボタンを作成してフォームを一覧表示で開いています。 [やりたいこと] 1つのテーブルで「1つのクエリ」による複数のフィールド(名)を切替えて、「1つのフォーム」で表示(一覧)させたいと思っています。 例えば、テーブル名:顧客名簿(取引先、県名、商品名、入庫日)、クエリ名:顧客名簿クエリ、フォーム名:顧客名簿一覧としたとき、(取引先、県名、商品名、入庫日)をコンボボックス等で切り替えることで、指定したフィールド(名)で並び替えられたデータを「フォーム名:顧客名簿一覧」に表示させられないでしょう。 [考えたこと] コンボボックス(名前:コンボ1)を作成し値集合ソースに「”取引先”;”県名”・・・・。」と入力、クエリ「顧客名簿クエリ」の抽出条件欄にビルダを起動させて「・・・コンボ1」を指定、フォーム「顧客名簿一覧」のレコードソースにクエリ「顧客名簿クエリ」を選択しました。しかし、フォーム「顧客名簿一覧」を開いても、データは抽出できずデータなしの表示で先へ進めていません。 以上ですが、宜しくお願いします。

  • ACCESSで抽出したデータだけ印刷がしたいです

    アクセスでフォームを作りました。何人かの質問と同じなのですが、参考にしてみましたがやはり抽出したデータだけが印刷できずに困っています。抽出条件のフィールドの抽出条件に=[Forms]![メインフォーム名]![抽出条件のコントロール名]という他の方のアドバイスを参考にしてみましたがメインフォームが開けなくなってしまいました。アクセス初心者ですが何かアドバイス教えて下さい。お願いします。かなり切実です。

  • アクセスでクエリーによる抽出方法

    アクセスの超初心者です。 クエリーのデータをフォームのコンボボックス等のデータを選ぶことにより抽出したいのです。クエリーの抽出条件にフォームのコンボボックスを割り当てて抽出することはできるのですが、例えばクエリーデータは下記のようになっています。  A  B  石川  100 東京  200   沖縄  150 フォームのコンボボックスで石川を選べば  "石川" "100"と表示できますが、コンボボックスに”すべて”という項目をつけてその”すべて”をクリックするとクエリーが全表示になるようにしたいのです。(そのクエリーにはすべてという項目はない) 長くなりましたがおわかりいただけたでしょうか。よろしくお願いします。 また、クエリーを使わず別の抽出方法がありましたら教えてください。というのもいろいろな抽出条件をするのにそのつどクエリーを作らなければならないからです。よろしくお願いします。

  • ACCESSのクエリの抽出

    ACCESS2003を使っています。フォームのコンボボックスに入っているデータを見てクエリで抽出したいと思っています。 フォームのコンボボックスにデータが入っているときは、そのデータで抽出を行い、nullのときは抽出をやめてすべてのデータを表示させたいです。 抽出項目には、null値はありません。 クエリの抽出欄に下記の式を入れましたがうまくいきません。 IIf(IsNull([Forms]![フォーム名]![コンボボックス名])=true , Is Not Null , [Forms]![フォーム名]![コンボボックス名]) コンボボックスにデータが入っている場合は、抽出はうまくいくのですが、nullのときは、何も表示されません。 どこか式が違っているのでしょうか? よろしくお願いします。

  • AccessクエリでYes/No型データの抽出

    AccessクエリでYes/No型データの抽出条件について教えてください。 フォーム上のオプショングループにオプションボタン 1:Yes 2:No 3:両方 の3つを作成し、選択したオプション値によって抽出条件を変えたいのですが、 Choose([Forms]![オプショングループ名],-1,0,-1 Or 0)とすると3:両方を選択した際に、Yesのデータしか抽出できませんでした。 ただ、-1 Or 0 を -1 Or 1 としたら、両方抽出されました。 処理的には解決できたのでOKなのですが、理由がわからずちょっと気持ち悪いので。。。 よろしくお願いいたします。

  • accessで空白の時の抽出

    access2000を使っています。まだ初心者なので難しい事はできないのですが、クエリを使って絞り込み検索のフォームを作っています。 テーブル内のデータで空白のデータがあります。その際にクエリの抽出条件にlike iif(is null([forms]![formA]![テキスト100]),"*","*"&[forms]![formA]![テキスト100]&"*")としています。フォームのテキストが空白のときは全て抽出するという条件を満たす予定で設定したのですが、テーブル内のデータが空白の物が抽出できません。データが空白がない様にすればいいのでしょうが、クエリの条件で設定できないものでしょうか?データはテキスト型です。

  • Access2003でコンボボックスからデータを抽出したい

    自己啓発でAccess2003を勉強しています。 Access2003でコンボボックスで名前を選択して、データ(住所)を抽出したものをリストボックスに表示させたいのですがどこがまちがっているかわかりません。こんなことで3週間ぐらい悩んでいます。 回答またはアドバイスをお願いします。 もしくはもっと簡単なやりかたがあればお願いします。 (1)「氏名」、「住所」のテーブルを作成。テーブル名は「01データ」 (2)「氏名」、「住所」のクエリを作成。クエリ名は「クエリ1」 (3)フォームでコンボボックスとリストを作成。フォーム名は「印刷」 ⇒コンボボックスの名前は「検索」。 ⇒値集合ソースはSELECT [01データ].ID, [01データ].氏名 FROM 01データ; これで「氏名」が選択できた。 (4)クエリの「氏名」抽出条件にLike [forms]![印刷]![検索] (5)検索するマクロを作成。マクロ名「M検索」 アクションは 全レコードの表示 フィルタの実行 ⇒Where条件は[Forms]![印刷]![検索]=[クエリ1]![氏名] (6)マクロ「M検索」をコンボボックスのプロパティ「イベント」タブから変更時に設定する。 (7)フォーム「印刷」を開き、コンボボックスで氏名を選択すると『クエリ1!氏名』と表示されてしまいます。 (8)フォーム「印刷」のリストボックスは全レコードが表示されている。

  • アクセスでデーター抽出方法を教えて

    アクセスで、クエリー&サブフォームを使わず、テーブルのデータをフォーム上で抽出したいです。教えて下さい。(例)テーブル1:商品名A 商品番号2・・・・・、フォーム上で商品番号2と入力したら商品名Aだけを表示したい。

  • アクセス2000でデータ抽出できない

    アクセス2000でデータ抽出できない サブフォーム上でコンボリストを使用して入力し、その条件にあったものだけを別のコンボボックスに表示したい。 フォーム:[取引名][種別][資材名] ※全てコンボリスト 取引先を選択し、種別を選択し、その2つの条件を満たすものだけテーブルから抽出し、資材名のリストに表示したいのですが、どうしたらできるかわかりません。