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

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

ただいまの
回答率

90.34%

  • VBA

    1902questions

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

  • Access

    471questions

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

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

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 1,059

Yuyuu

score 6

 前提・実現したいこと

度々お世話になります。

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

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

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

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

![イメージ説明](31d0db4abf0ea887d7c773d531cad109.png)

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+2

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

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

Private Sub 出荷日指定_AfterUpdate()
    If IsDate(Me.出荷日指定.Value) Then
        Me.Filter = "出荷日=#" & Me.出荷日指定.Value & "#"
    ElseIf Nz(Me.出荷日指定.Value) <> ""  Then
        Msgbox "正しい日付を入力してください。"
        Exit sub
    End If

    If Me.Filter = "" Then
        Me.FilterOn = False
    Else
        Me.FilterOn = True    
    End If
End Sub

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/05 17:06

    いつもご回答いただき、ありがとうございます!

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

    キャンセル

  • 2018/07/09 13:15

    日にちが経ってしまいましたが、作業に入れそうだったのですが、
    SQLServerにあるテーブルを参照するフォームは作れるのでしょうか?

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

    キャンセル

  • 2018/07/09 16:30

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

    キャンセル

  • 2018/07/12 09:53

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

    キャンセル

+2

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/05 16:07

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

    キャンセル

  • 2018/07/05 16:28

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

    キャンセル

  • 2018/07/05 16:40

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

    キャンセル

  • 2018/07/05 17:09

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

    キャンセル

0

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

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/05 17:08

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

    ご教示頂き、ありがとうございます!

    キャンセル

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

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • VBA

    1902questions

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

  • Access

    471questions

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