質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

3回答

3139閲覧

Access テーブルのレコードを表示するフォームについて

Yuyuu

総合スコア12

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2018/07/05 06:42

前提・実現したいこと

度々お世話になります。

データベースにあるテーブルから、一致する条件のレコードを表示するフォームについて
出荷日で検索をかけた際に、非連結のテキストボックスにデータを表示したいです。

出荷日で検索をかける関係上、日によって件数が違います。
配列を使って、テキストボックスを件数文増やしたり減らしたり出来るのでしょうか?

イメージとして、テキストボックスは抽出したデータを表示させたく、
コンボボックスで情報を付加、
単価チェックボタンと、チェックボックスも抽出件数分増やしたり減らしたりしたいです。

情報不足があったら申し訳ございません。
ご教示の程、よろしくお願いします。

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

dit.さん提案のパラメータクエリ案もお勧めですが、
VBAのみで実現する場合は、
やはり、
テーブルをレコードソースに設定する連結フォームにして、
ヘッダーに「出荷日指定」テキストボックスを配置、
詳細セクションにテーブルのフィールドを配置して、
帳票フォームに設定します。

「出荷日指定」テキストボックスの更新後処理のイベントプロシージャに下記のコードを設定するといいでしょう。

vba

1Private Sub 出荷日指定_AfterUpdate() 2 If IsDate(Me.出荷日指定.Value) Then 3 Me.Filter = "出荷日=#" & Me.出荷日指定.Value & "#" 4 ElseIf Nz(Me.出荷日指定.Value) <> "" Then 5 Msgbox "正しい日付を入力してください。" 6 Exit sub 7 End If 8 9 If Me.Filter = "" Then 10 Me.FilterOn = False 11 Else 12 Me.FilterOn = True 13 End If 14End Sub 15

単価チェックボタンも詳細セクションに配置すれば、レコード数分表示されます。

投稿2018/07/05 07:41

hatena19

総合スコア33620

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yuyuu

2018/07/05 08:06

いつもご回答いただき、ありがとうございます! DB接続等の準備が整い次第、試させていただきます! ご教示頂き、ありがとうございます。
Yuyuu

2018/07/09 04:15

日にちが経ってしまいましたが、作業に入れそうだったのですが、 SQLServerにあるテーブルを参照するフォームは作れるのでしょうか? 参照したいテーブルは約25000件ほど、日ごとに増えていきます。 リンクテーブルにしてしまうと、重くなる気がしているのですが、 参照したい日付選択をした段階で、該当レコードのみのテーブルを新規で作る形がよいのでしょうか? (思いついたものの、コード記述はわかっていないです)
hatena19

2018/07/09 07:30

リンクテーブルにするのが、一番簡単です。ウィザードでフォームを作成できるし。 もし、それで重くて実用的でないなら、パススルークエリをフォームのレコードソースにすることになるのかな。そうすると、Filter は使えないかもしれません。 SQLServerとの接続の経験はないのであとは他の人の回答もお待ちください。
Yuyuu

2018/07/12 00:53

ご教示頂き、ありがとうございます! リンクテーブルで試してみます。 重くなりそうだったら、また質問を立てさせていただきます。
guest

0

連結した帳票フォームで作成すると楽です。
帳票フォームの複数コンボボックスで絞り込み 改良版
リンク先はコンボボックスですが、連動しないテキストボックスに読み替えれば良いだけなので。

※後から、御本人が回答される予感。

投稿2018/07/05 06:51

sazi

総合スコア25138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yuyuu

2018/07/05 07:07

いつもご回答頂き、ありがとうございます! 普段接続しているDBとは別の場所での作業のため、 この後試してみようと思います。 ご教示頂き、ありがとうございます!
hatena19

2018/07/05 07:28

連結フォームにするというはまったく同意ですが、 その私のブログのリンク先はちょっと今回の質問の内容とは違うかも。 dit.さんの回答のパラメータクエリをソースとする連結フォームにするという方が適切かと。
sazi

2018/07/05 07:40

取り敢えずhatenaさんところが開いたので、探そうと思ったんですけど、あの形式には慣れていなくて探しきれませんでした。 hatenaさんが適切なサンプルと共に回答するはずと思ったので、ちょっと手抜きがあったのは否めませんですが。
Yuyuu

2018/07/05 08:09

リンク先はhatenaさんのブログだったのですね! 今後参考にさせていただきます!
guest

0

フォームプロパティの既定のビューを「単票フォーム」ではなく「帳票フォーム」にすれば複数のレコードが表示されます。

日付を条件にした選択クエリを実行することで希望の事ができませんか?
(非連結にはしない)

T'sWare 指定日の売上一覧を表示する

このページでは抽出条件に「売上日付」を直接指定してますが、
[Forms]![フォーム名]![条件フィールド名] とか、
「出荷日指定」が空白の時は全レコードを表示させる場合
[Forms]![フォーム名]![条件フィールド名] or [Forms]![フォーム名]![条件フィールド名] is null とかにすればいいかと思います。
※もちろんフォーム名や条件フィールド名はご自身のものに置き換えてください。

質問の意図と違うようでしたら捨て置いてください。

投稿2018/07/05 07:14

dit.

総合スコア3235

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yuyuu

2018/07/05 08:08

ご回答いただき、ありがとうございます。 クエリをあまり使用していないため、 今回はhatenaさんのVBAの方を参考にさせていただきます。 ご教示頂き、ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問