• 1
    りんご 2020/11/15 (日) 18:49:53 48103@0e907

    エラーの状況がよくわからないけれど、
    フォームに名前プロパティ:日付け入力のテキストボックスを作って
    クエリの抽出条件に
    [Forms]![作成したフォームの名前]![日付け入力]
    でどうですか?

  • 2
    名前なし 2020/11/15 (日) 21:53:07 d4e4c@f4546

    有難うございます。上手く行きました。テキストボックスの日付もmsgboxに表示する為に、me.日付入力.valueも入れています。ただ、8桁日付けで本日でしたら20201116と表示され見た目が良くない為、11月16日と置き換える事は、できますでしょうか?宜しくお願い致します。

  • 3
    りんご 2020/11/15 (日) 23:07:39 48103@0e907

    Format関数、“mm月dd日“でどうですか?

  • 4

    ご回答有難う御座います。テキストボックスには、8桁日付けしか入れれない為Format関数をどのタイミングで入れれば良いか分かりません。msgboxの前に変数の構文を作りそれに対して使えば良いのでしょうか?set 変数=format(value)見たいな感じでしょうか?

  • 5
    りんご 2020/11/16 (月) 00:04:15 48103@0e907

    VBA TextBoxに入力された8桁の数値を日付に変換する、をググるといけるかも?

  • 6

    ご回答有難う御座いました。恐らくなんとかなりそうです。
    一般的に、合計を求めてダイアログボックスに表示する方法は、集計関数を使う方法しかないのでしょうか?レコード数であればadoという手もあるのですが。ローカルな環境では無い為、混雑してる時間ですと8個の計算結果を1つのダイアログボックスに表示している為、パソコンが固まり、タスクマネージャーで消すというリスクがある為、一般的にもこの様な事象が起こっているのか気になりまして。そこの所を教えて頂けないでしょうか?

  • 7
    りんご 2020/11/16 (月) 08:49:13 48103@0e907

    私も、そこまで詳しくないので、VBAで探すか、クエリで集計しておくか、フォームのテキストボックスに計算式入れておくかで、軽くなるのかよくわかりません。分かる人に、回答を任せますね。

  • 8
    hiroton 2020/11/16 (月) 09:07:48 e49f8@f966d

    高速化について参考になれば
    Q.Access って1万件超えると遅くて使い物にならないって本当ですか?(Fly me to the Access Heaven (クラウド対応版)さん)
    定義域集計関数とSQLの比較(T'sWareさん)

    ネットワーク越しで何度も読み込みたくないならフォームを作って閉じる代わりにMe.Visible = Falseするような仕掛けが簡単かな

  • 9
    hatena 2020/11/16 (月) 10:18:52 修正

    定義域集計関数をループで繰り返し呼び出したり、クエリ内の演算フィールドで使う場合は重くなる可能性がありますが、
    一回だけ呼び出すのなら、定義域集計関数の第2引数に設定するテーブル、クエリの設計、第3引数の抽出条件の設定次第です。
    他の方法(DAO, ADOなど)を使ってもテーブル、クエリの設計、抽出条件の設定が悪ければ同様に時間がかかります。

    T'sWareさんの定義域集計関数とSQLの比較でも10000回呼び出して差が10秒ですので1回あたりでは0.001秒ですので体感できる差ではないです。一回だけ呼び出すのなら、代替関数と比較すべきですのて、むしろ遅くなってます。

    定義域集計関数で時間がかかっているのなら(それも本当にそうなかの検証も必要です。別の部分で時間がかかっているのかも知れません。)、テーブル、クエリの設計、抽出条件の設定から検討する必要があります。

  • 10

    混雑時を避ければ表示は、早いのでformatによる整形とMe.Visible = Falseを入れてみたりして改善してみます。非常に助かりました。有難う御座いました。