初めて質問いたします。よろしくお願いいたします。
入力フォームを作成しています。店舗コード、商品コードを入力するとそのコードに該当した商品一覧がサブフォームに表示されるというものです。
メインフォームに入力欄を設けサブフォームに一覧を表示させています。店舗コードも商品コードも複数入力ができるように、二つの入力欄を設け、条件が入るクエリーにBetween演算で出力したものをサブフォームに表示させています。クエリーもサブフォームの元になっているフォームにも結果はきちんと現れますが、メインーサブフォームにはなぜか、正しく表示されません。
from店舗コードとto店舗コード、from商品コードとto商品コードという4つのフィールドでリンクしています。
(親リンクフィールド、子リンクフィールドともにfrom店舗コード;to店舗コード;from商品コード;to商品コードとしています。)リンクの仕方が悪いのでしょうか?
アクセスに詳しい方是非お知恵をお貸しください。
No.4ベストアンサー
- 回答日時:
すみません。
なかなか時間が取れなくてご回答遅くなりました。こんな感じです・・・
まずフォーム上には、店舗コードと商品コードを入力するフィールドがfromとtoで合計4つあります。
これらの検索条件入力後に検索を開始するボタン「検索」ボタンが必要です。
そして最後に検索結果を表示する商品一覧のフィールドが
複数あるわけですよね!?
1.フォームのコントロールソースには[テーブル1]を指定
2.商品一覧の各フィールドのコントロールソースには、[テーブル1]の該当するフィールド名を選択
3.フォームのコントロールソースを無指定(ブランク)に戻す。
4.「検索」ボタンの「クリック時」のイベントプロシージャーで前記のForms![フォーム1].RecordSource = ~~を記述する。
これによってフォームの初期表示時には一覧は表示されず、検索条件を入力後「検索」ボタンを押してはじめて一覧が表示されます。
kurohiroさんが書かれたSQL文の詳細は検討しておりませんが、基本的にはこれをForms![フォーム1].RecordSource = ~~に記述していただければよろしいかと思います。
なるほど。
お忙しいところ何度もありがとうございます。
ポイントの発行をさせていただきたいのですが、「マスターと準マスターと2人選んでください」とか「同じ人にはできません」とかエラーになってしまってこちらもうまくいきません。よく調べて後ほど発行させていただきますので今しばらくお待ちください。(こちらの使い方も初心者で申し訳ないです。)skikichiさんのような専門家の方にご指導いただけて大変勉強になりました。仕事に還元していきます。ありがとうございました。
No.3
- 回答日時:
そうですね。
一般的な作り方をされるのが後々改良したり別のものと整合性を取ろうとした場合に問題にならない確率は極めて高いです。ちなみに、一つのフォームで作成する場合には・・・
Forms![フォーム1].RecordSource = "SELECT * FROM [テーブル1] WHERE ([店舗コード] >= Forms![フォーム1]![from店舗コード] And [店舗コード] <= Forms![フォーム1]![to_店舗コード]) And ([商品コード] >= Forms![フォーム1]![from商品コード] And [商品コード] <= Forms![フォーム1]![to_商品コード])"
こんな感じでよろしいかと思います。
この回答への補足
申し訳ありません。再度教えてください。
サブフォームの元フォームを再利用しようと考えました。サブフォームはコントロールソースがクエリでそのクエリはSQLで
SELECT マスター1.* FROM マスター1
WHERE (((IIf([Forms]![F_フォーム1]![to店舗コード] Is Not Null,(([マスター1].[店舗コード]) Between [Forms]![F_フォーム1]![倉庫コード] And [Forms]![F_フォーム1]![to店舗コード]),([マスター1].[店舗コード])=[Forms]![F_フォーム1]![倉庫コード]))<>False) AND ((IIf([Forms]![F_フォーム1]![to商品コード] Is Not Null,(([マスター1].[商品コード]) Between [Forms]![F_フォーム1]![商品コード] And [Forms]![F_フォーム1]![to商品コード]),([マスター1].[商品コード])=[Forms]![F_フォーム1]![商品コード]))<>False))
ORDER BY マスター1.店舗コード, マスター1.商品コード;
としてあります。
このSQLをそのままフォームのコントロールソースにすればいいのかと考えたのですが、甘かったようです。
大変恐れ入りますが、もう少し教えていただけますか?
上記の回答を拝見するとForms![フォーム1].RecordSource = ~~ となってますが、これをどこかのイベントに貼り付ければよろしいのでしょうか?
ここ数日こればかり考えていて、ちょっと周りが見えなくなっています。とても初歩的な質問かも知れませんが、ここから抜けられなくて苦しんでおります。是非お知恵をお貸しください。よろしくお願いいたします。
ご丁寧にありがとうございます。
本当に参考になりました。
頑張ってよいものを作り上げたいと思っております。
今後ともご指導いただければ幸いです。
本当にありがとうございました。
No.2
- 回答日時:
VBAは分りますか?
メインフォームとサブフォームの関係は基本的に「1:多」になります。
キーとなるメインフォームのデータにリンクしたサブフォームのデータは芋弦式に自動的にAccess側で表示されます。
この元となる情報はそれぞれのテーブルを結ぶキーのリレーション定義です。
したがって、サブフォームのデータをプログラムで表示させようとすること自体Accessが標準で提供しているメインーサブフォームの設計概念からはずれてきます。
ですから、通常このような検索データの一覧表示は一つのフォームで行うのです。
あえて、メインーサブフォームに分割して表示させたいのであればAccessの標準で持っている機能を使用するのではなく、まったく別のメインーサブフォームの関係でプログラムで制御し一覧表示させることになるかと思います。
そもそもそこまでしてフォームを分割する意味はあるのでしょうか?
ということで、最初にお聞きした疑問となったわけです。
1.各テーブルのキーは?
2.それぞれのテーブルのリレーションシップはどうなっていますか?
3.また、結合の種類は何を選択されていますか?
この回答への補足
なんどもありがとうございます。
そうなんです。本来のサブフォームの使い方ではないのです。ちなみにメインフォームはどのテーブルとも連結していません。なので、メインーサブフォームの子リンクフィールドなども手入力しました。途中までは強引であっても、うまくいってたのでそのまま進めてしまいました。進めてしまったので、メインーサブフォームにこだわっているだけで、そうまでする必要がないといえばないのですが、もう一工夫で使えそうだったのでアクセスにお詳しい方であればこのまま進める方法をご存知かと思い質問させていただきました。
私のような初心者の質問に専門家であるskikichiさんのような方にアドバイスいただけて幸せです。
一般的な方法で一から作成しなおします。
ありがとうございました。
No.1
- 回答日時:
一般的なサブフォームの使用方法ではないようですが、メイン/サブフォームに分割する意味は?
一つのフォーム上に検索範囲入力できるフィールドを設けて、同じフォーム上で検索条件に一致する商品一覧を一括表示するのではダメなのでしょうか?
この回答への補足
早速のご回答ありがとうございます。
他の画面の兼ね合いなど考えた結果、この結果に行き着きました。やはり、少し強引でしょうか・・・
ひとつのフォームで作成する際の具体的な方法を教えていただけると幸いです。絞込みの条件を入れるまでは明細行には何も表示させたず、条件を入れると該当データが表示され、そのデータを修正するというものがつくれれば、いいのです。よろしくお願いいたします。
が・・・もし、よろしければ、サブフォームのなぞも解いていただけると幸いです。せっかく作ったので・・・
重ねて、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- Visual Basic(VBA) VBA 税率を判定表する方法を教えて下さい。 10 2022/03/28 11:21
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
親・子リンクフィールドの設定は、どうすればよいのでしょうか。
その他(Microsoft Office)
-
ACCESSで和暦を西暦に・・・
Access(アクセス)
-
アクセスのレポートのヘッダーを2ページ以降にもつけるには?
Access(アクセス)
-
-
4
Access サブフォームでの選択行の取得
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access2000、これはいったい・...
-
Access サブフォームでの選択行...
-
Access 複数フォームを...
-
access サブフォームにリストを...
-
Accessで、一覧からクリックし...
-
ACCSESS2013VBA フォームのレコ...
-
ACCESSでfilterとorderbyについて
-
(ACCESS)条件に応じて、テキ...
-
ACCESSでサブフォームの...
-
Accessで、サブフォームのある...
-
フォームをA4サイズにおさめる...
-
Accessでサブフォームを使った...
-
アクセスで サブフォームの表...
-
アクセスでサブフォームのレコ...
-
Access レイアウト変更したサブ...
-
Access VBA acCmdSelectRec...
-
初心者です。accessで請求書を...
-
Accessでのフォーム表示がうま...
-
複数項目でのサブフォームとの...
-
Accessでサブフォームの中の並...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access2000、これはいったい・...
-
(ACCESS)条件に応じて、テキ...
-
Access 複数フォームを...
-
access サブフォームにリストを...
-
ACCSESS2013VBA フォームのレコ...
-
Accessで、一覧からクリックし...
-
googleフォームでインストール...
-
サブフォームが見えなくなる。
-
Access2000 サブフォームのReco...
-
Accessで、サブフォームのある...
-
Accessのサブフォームから値を...
-
アクセスでサブフォームのレコ...
-
サブフォームのデータを保存す...
-
Accessでのフォーム表示がうま...
-
サブフォームでのダブルクリッ...
-
2回目に画面のレコードセットの...
-
AccessのFormのみをスクリーン...
-
アクセスで サブフォームの表...
-
ACCESSでfilterとorderbyについて
おすすめ情報