下の内容で質問をしていたのですが、アカウントに関する問題で、運営側に質問を閉じられてしまいました。
http://soudan1.biglobe.ne.jp/qa7791423.html
問題は無事解決しましたので、もしよろしければ、前回の回答者様に引き続きお手伝い願えれば幸いです。
少し時間が経ち、叶わぬ願いかもしれませんが、どうかよろしくお願いします。
参考のため、二つの画像をアップロードしましたので、設定をご覧いただくとわかりやすいかとおもいます。
http://uploda.cc/img/img50aa013c9997c.jpg
http://uploda.cc/img/img50aa011bf2a88.jpg
残念ながらどちらも良い結果は得られていません。
<以下前回投稿内容>
ACCESS2010で顧客名簿を作りました。
顧客データテーブルと、届け先のデータテーブルがあります。
これは顧客(依頼主)から商品を発送する送り先(届先)のデータです。
各顧客データに対し、届先データは0から複数まであります。
各顧客データをメインフォームに反映し、その中にサブフォームを作り届け先データを入力してます。
この顧客データから氏名(依頼主氏名)を検索するために、「データで検索」というページをつくり、そこに検索用のテキストボックス「依頼主氏名検索」を用意しました。ここに顧客名を入れて検索しています。
クエリのデザインビューのフィールドに
IIf(IsNull([Forms]![データで検索]![依頼主氏名検索]),True,[依頼主名前] Like "*" & [Forms]![データで検索]![依頼主氏名検索] & "*")
という式を入れて使用しています。抽出条件に「true」と入れています。
しかし検索結果に、白紙のデータシートビューが出ることがあり困っています。
顧客データ(依頼主データ)は埋まっているのに、
サブフォームのデータ(届先データ)に全くデータが入っていない場合、こうなります。
サブフォームのカラムが一つでも埋まっていれば、希望する検索結果となって顧客データが表れます。
届け先データが空の顧客データも多いのですが、
届け先データを持っている顧客データと同様に表示されるようにしたいです。
そのためには、どこを修正すればよろしいでしょうか。
フィールドに入れた式はネットで検索した様々な参考ページから、拝借したものを入れたもので、自分自身は、なんとなくしかわかりません。一から式を書くことはできません。
式の中に届け先データに触れるような部分が見当たらないので、他の部分に問題があるのではないのだろうか、と考えていますが、見当がつきません。
どうぞお助けくださいますようお願いいたします。
投稿日時 - 2012-11-10 22:40:52
No.5ベストアンサー
- 回答日時:
遅れ馳せながら、前回Q&AのNo.1,3,4の者です(汗)
画像掲載に非対応のパートナーサイトを存在させておいて、
なりすましでもないのに「規約に違反」とはどういうことだ、と
抗議したのですが、締め切りに関しては決定が覆らなかった
ようで、力不足、申し訳ありません(汗)
画像を拝見しましたが、この形(=届け先テーブルは結合
させただけでフィールドは追加しない)でもレコードが表示
されない(=依頼主テーブルの依頼主名前が空白のまま)、
ということですと、クエリの問題ではなさそうです(汗)
となると、私の推測の範囲で試せることは以下の2つです:
a)提示されたクエリのコピーを作成し、そのデザインビュー
で『届け先テーブル』そのものを削除(=『依頼主テーブル』
だけからクエリを作成)した後、そのクエリをデータシート
ビューで表示
→これでも抽出されないなら、検索に指定した文字に誤字
がある可能性があるので、データを見直す
(『装』と『裝』(上側の『壮』の偏の形が異なる)など、
紛らわしい文字などがないか:私の職場での実例から)
b)フォームをデザインビューで開いて、何もないところを
ダブルクリックするなどしてフォームのプロパティシートを
開いたら、『データ』タブにある(はずの)『読み込み時に
フィルタを適用』の値を確認
※当方はAccess2007での確認のため、項目名などに
差異がありましたらご容赦願います(汗)
→「はい」になっている場合は、「いいえ」に変更したら
どうなるかを確認
(レコードソースに設定したクエリの抽出条件は、これが
「いいえ」になっていても機能します:
あくまでフォーム上で、右クリックメニューやリボンなど
から行った「一時的に適用したフィルタ」を、読み込み
時に再度適用するかどうかを設定する項目)
※「b」の動作確認は、上記の代わりに、”レコードが表示されない
検索を行った状態で、右クリックメニュー等から「フィルタの
解除」を行う”でもOkです。
(要は、「例えば『Is Not Null』などの余計なフィルタが掛かって
いるために表示されなくなっている」のかどうかを確認できれば
よい、と)。
・・・以上です。
なお、「b」でレコードが表示されるようになった上で、この
設定は変えたくない、という場合は、『依頼主氏名検索』
テキストボックスの更新後イベントでフィルタの解除を実行
するようにしてください。
(同テキストボックスがメインフォームにあって、サブフォームの
コントロール名(→『ソースオブジェクト』ではなく『名前』の
方)が「埋め込み0」の場合、VBAなら
Me!埋め込み0.Form.FilterOn = False
を実行すればOk)
VBAではなく『マクロ』オブジェクトを使用している場合は、
以下を参照してください:
http://oshiete.goo.ne.jp/qa/7755304.html
この回答への補足
幾たびにもわたり、ご回答いただきまして、誠にありがとうございました。
この度のご回答を全て理解するには力不足であったため、分かる範囲で部分的に参考にさせていただき、自分でも試行錯誤を繰り返した結果、当座の満足ができるような仕様になりました。
試したことをご報告させていただきます。
広すぎたであろうフィールド範囲を狭め、届け先フィールドは全てカットしました。そして使用していたクエリを見直しました。どうやらクエリ内の[ ]の内側に入れる語句違いがあったようです。
長い文章で、初心者にもわかるように噛み砕いて伝えていただいたものの、極初歩的な部分での間違いでした。大変恐縮しております。
本当にありがとうございました。もう少しクエリを勉強します。
アカウントの方までご尽力いただき誠に、ありがとうございます!!
頭が上がりません。。。
またいつもながら沢山の噛み砕いたご回答、本当にありがとうございました。
しかしながら、現在仕事が繁忙状態に陥り、またこの質問の件の検証が
自分の実力以上の領域に入ってきているのでなかなか進みません。
おそらく自分の知識を最初から洗わないといけないように思いますので、参考書を読み返す必要を感じております。
少しずつ確認いたしますので、補足や進行状況など、ややお時間いただきます。まことに申し訳ありません。
No.6
- 回答日時:
メインフォームと、そのメインフォームに組み込んだサブフォームの構成で良かったでしょうか。
前回の回答者ではありませんが、チョッと気になったので。
もし、上記の構成でなかった場合、スルーしてください。
フォームが上記構成であった場合、私なら普通、以下のような構成にすると思います。
新規の accdb で確認してみてください。
環境等の条件)
テーブル「TA」があり、
「ID」(長整数:主キー)「名前」(テキスト型)の構成
「TA」のサンプルデータ・・・・(メイン側のデータ)
ID 名前
1 aaaa
2 bbbb
3 cccc
4 dddd
5 eeee
6 ffff
テーブル「TB」があり、
「an」(オートナンバ:主キー)「ID」(長整数)「住所」(テキスト型)の構成
「TB」のサンプルデータ・・・・(サブ側のデータ)
an ID 住所
1 1 AAAA
2 2 BBBB
3 4 DDDD
4 2 BBBB 2
つまり、テーブル「TA」の「ID」が一側、テーブル「TB」の「ID」が多側。
フォームの作成)
・テーブル「TB」を元にフォームウィザードでデータシートとして、「F2」名のフォームを作成
閉じておきます。
・テーブル「TA」を元にフォームウィザードで単票形式で「F1」を作成し編集モードへ
詳細部分を広げて、出来上がっていたフォーム「F2」をその場所にドラッグ&ドロップ
サブフォームとして組み込まれたので、プロパティを参照します。
「名前」は「F2」になっていると思います。
そして、リンク親フィールド/リンク子フィールドには、「ID」が表示されていると思います。
(表示されていなかったら、どちらにも「ID」を記述)
この状態で、フォーム「F1」をフォームビューに変更し、メイン側のレコードを移動してみます。
メイン側の「ID」が切り替わることにより、サブフォームの表示も、いろいろと替わっていくと思います。
この動きが、現在の検索機能が無い状況と思われます。
メインのフォーム「F1」はテーブル「TA」を元に、サブのフォームはテーブル「TB」を元に、
そして、メインとサブの表示を同期させるのが、リンク親フィールド/リンク子フィールドになります。
つまり、メインの「ID」とサブの「ID」を一致させた表示にしてよ・・・・ってな設定になります。
実際に、メインにあるけどサブには無い・・・・サブ側では全件表示したい(今回の要求仕様?)・・・
は、上記の構成に手を加えていきます。
今回はここまでの記述とします。(誤解釈の可能性もありますので)
構成等一致し・・・また、もう少し聞いてみたい・・・場合は補足してください。
(その際には、上記は実際にやってみて確認しておいてください)
(不要であれば、補足等の記述はいりません)
No.4
- 回答日時:
試していませんが
目的のフォーム名をF_送り状 として このフォームには検索条件なしで
DoCmd.OpenForm "F_送り状"", , ,"依頼主名前 Like "*" & [Forms]![データで検索]![依頼主氏名検索] '"
複数回にわたる詳細なご回答、まことにありがとうございました。
質問しておいて、大変申し訳ないのですが、仕事が繁忙状態に入り、またこの質問の検証も自分の実力以上の領域に入り、最初から勉強のしなおしの必要を感じており、参考書を再度読み返そうとしております。
まことに申し訳ありませんが、検証結果など今少しお時間いただくことにさせてくださいませ。
No.3
- 回答日時:
追伸
http://uploda.cc/img/img50aa011bf2a88.jpg をよく見ると
依頼主名前が複数ありそうですがこれは何故ですか
依頼主を特定するのにコンボボックスをお勧めします
コンボボックスを利用すると依頼主名が依頼主名をふりがな順の
プルダウンメニューになり、依頼主件数が100件程度ならこれでいけます。
また件数が多いとこのコンボボックスにふりがなで絞り込みが出来ます
No.2
- 回答日時:
1.しかし検索結果に、白紙のデータシートビューが出ることがあり困っています。
顧客データ(依頼主データ)は埋まっているのに、
サブフォームのデータ(届先データ)に全くデータが入っていない場合、こうなります。
サブフォームのカラムが一つでも埋まっていれば、希望する検索結果となって顧客データが表れます。
2.届け先データが空の顧客データも多いのですが、
届け先データを持っている顧客データと同様に表示されるようにしたいです。
上記はご質問の内容ですが
2.を満足させるためには届け先が白紙が出て当然ですね
白紙のデータシートが不要なら結合プロパティが
(1)両方のテーブルの結合フィールドが同じ行だけを含める
尚、色々なフォーム(またはレポート)があって
あるフォームでは届先データのないものは対象外、
別のフォームでは届先データのないものも対象
とするにはフォーム毎に結合のプロパティーを定めます。
フォーム(またはレポート)をデダインビューで開き
プロパティーのレコードソースの右端の … をクリックすると
クエリー作成の画面になります。
ここで作成したクエリーは一つのフォームだけのもので、フォームに
必要なフィールドだけ下の枠にドラッグします。
追伸
抽出条件欄は複数行あり、同一行はAND条件 行を変えるとOR条件
No.1
- 回答日時:
外部サイトに画像載せても、見ないよ
> サブフォームのデータ(届先データ)に全くデータが入っていない場合、こうなります。
先にレコードカウントしておくとか。その結果で分岐させる。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける (再質問) 4 2022/09/14 22:51
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Excel(エクセル) エクセル 多数のファイルから値を抜き出したい 4 2022/12/12 16:49
- Access(アクセス) 対象月の2桁表示について 1 2023/01/07 05:08
- その他(ソフトウェア) 現在と過去の顧客名簿、新規・解約・更新など作りたいのですが「やよいの顧客管理」なら簡単に扱えますか? 1 2022/05/18 10:44
- Excel(エクセル) エクセルデータ。容量を減らすにはどうしたらいい? 11 2022/12/22 09:01
- その他(プログラミング・Web制作) 大学のゼミのレポートがムカつきます。 R言語というデータ分析に特化したプログラム言語を用いた授業の課 1 2023/06/29 00:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access レポート印刷するときに...
-
access2021 印刷プレビューでの...
-
accessデータを指定したExcel、...
-
Accessのクエリで、replace関数...
-
Accessのテキストボックスの入...
-
Microsoft365にAccessってあり...
-
Vba Userformを前面に出すについて
-
Accessのフォーム上のテキスト...
-
実行時エラー3131 FROM 句の構...
-
【Access】Dcount関数の複数条...
-
Access で半角スペースと全角ス...
-
access2019 チェックボックスと...
-
access クエリ yes/no型のクエ...
-
Accessのクエリの結果を、既存...
-
ACCESS VBA でのエラー解決の根...
-
Access VBA [リモートサーバー...
-
Access VBA でHTML文を表示したい
-
ACCESS2019でのエラーメッセージ
-
Access 複数条件検索の設定が上...
-
Accessのスプレッドシートエク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access レポート印刷するときに...
-
Microsoft365にAccessってあり...
-
Accessのクエリで、replace関数...
-
ACCESS VBA でのエラー解決の根...
-
Accessのスプレッドシートエク...
-
Access VBA を利用して、フォル...
-
【Access】Dcount関数の複数条...
-
accessデータを指定したExcel、...
-
Accessレポートのチェックボッ...
-
Access VBA [リモートサーバー...
-
Vba Userformを前面に出すについて
-
Accessのリンクテーブルのパス...
-
実行時エラー3131 FROM 句の構...
-
Accessのフォーム上のテキスト...
-
CSVファイルの「0落ち」にVBA
-
Access 複数条件検索の設定が上...
-
アクセス 削除するレコードを含...
-
Access で半角スペースと全角ス...
-
access 更新クエリについて
-
Accessのクエリの結果を、既存...
おすすめ情報