
初めて質問いたします。よろしくお願いいたします。
入力フォームを作成しています。店舗コード、商品コードを入力するとそのコードに該当した商品一覧がサブフォームに表示されるというものです。
メインフォームに入力欄を設けサブフォームに一覧を表示させています。店舗コードも商品コードも複数入力ができるように、二つの入力欄を設け、条件が入るクエリーに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も見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
あなたの「プチ贅沢」はなんですか?
お仕事や勉強などを頑張った自分へのご褒美としてやっている「プチ贅沢」があったら教えてください。
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
一番好きなみそ汁の具材は?
みんなで大好きなみそ汁の具材について語り合おうよっ!
-
親・子リンクフィールドの設定は、どうすればよいのでしょうか。
その他(Microsoft Office)
-
前のレコードの値を自動で入れたい
PowerPoint(パワーポイント)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
-
4
ダブルコーテーション付きでCSV出力
Visual Basic(VBA)
-
5
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
6
サブフォームに新規レコードを追加する際、一番下に表示するのではなく一番上に表示したい
Visual Basic(VBA)
-
7
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
8
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
9
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
10
ACCESS サブ・メインフォームのリンク方法を教えてください。
Access(アクセス)
-
11
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
12
ACCESSのクエリー抽出条件にIIFを使用して
Access(アクセス)
-
13
Accessの条件付き書式設定で、複数の条件が一致した時の書式を設定したい
その他(Microsoft Office)
-
14
アクセスVBAのMe!と[ ]
Access(アクセス)
-
15
Accessで、1つの項目に複数の置換えを1度でするには?
Access(アクセス)
-
16
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
17
ACCESS クエリで1から順番に番号を表示したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
access サブフォームにリストを...
-
Access サブフォームでの選択行...
-
Access2000、これはいったい・...
-
ACCESS サブフォームのフィール...
-
ACCSESS2013VBA フォームのレコ...
-
アクセス2003 - レコード追...
-
googleフォームでインストール...
-
ACCESSでサブフォームの...
-
Accessのサブフォーム上で常に...
-
アクセス2000の終了時にバック...
-
AccessのDoCmd.ApplyFilterの使...
-
Accessで、一覧からクリックし...
-
AccessのFormのみをスクリーン...
-
複数項目でのサブフォームとの...
-
Access VBA acCmdSelectRec...
-
サブフォームのデータを保存す...
-
メインフォームとサブフォーム...
-
サブフォームの切り替え方を教...
-
保存されない理由は?accessvba
-
(ACCESS)条件に応じて、テキ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access 複数フォームを...
-
Access2000、これはいったい・...
-
ACCSESS2013VBA フォームのレコ...
-
(ACCESS)条件に応じて、テキ...
-
access サブフォームにリストを...
-
Accessで、一覧からクリックし...
-
googleフォームでインストール...
-
Access2000 サブフォームのReco...
-
サブフォームでのダブルクリッ...
-
サブフォームが見えなくなる。
-
2回目に画面のレコードセットの...
-
Accessのサブフォームから値を...
-
サブフォームでフィルタしたデ...
-
Accessでサブフォームの中の並...
-
初心者です。accessで請求書を...
-
アクセスでサブフォームのレコ...
-
サブフォームのデータを保存す...
-
レコードセットで得た結果をサ...
-
Accessのサブフォーム内で連続...
おすすめ情報