Microsoft Access 掲示板

上限ありの連番フィールドをつくりループさせるには / 8

24 コメント
views
4 フォロー
8

DLookupは激重だと聞きますが、昔のイメージが強いだけで、最近のPCかつインデックス設定をすれば常用して問題ないということですか?

DLookupはたしかに重いですが、今回は、おそらく、新規レコードが作成されるときに取得すればいいだけですので、その時に一回呼び出されるだけですよね。どんなに件数が多かろうと1秒もかかりません。たぶんユーザーから見れば一瞬です。

DLookupやDCountは重いから避けるべきというのは、クエリの演算フィールドに使う場合です。
レコード件数分、繰り返し呼び出されるので、重くなる場合があります。

画像について

フォームではそのような表示は不可能なので、レポートでの話ですね。
そのようなレイアウトにするなら、日付テーブル(あるいは営業日テーブル)を用意して、そこに注意事項のIDを格納するようにすればいいかと思います。

フォームでの入力は、メインフォームのソースを日付テーブル、サブフォームのソースに画像のデータのテーブルを設定すればいいでしょう。
メインフォームに前回の回答のVBAを設定すればいいでしょう。

あるいは、事前に日付テーブルにまとめて(1ヶ月分ずつとか)日付、注意事項ID(連番)をVBAで追加するような運用でもいいでしょう。その場合、DLookupを使わずに、前のレコードの連番に1加算していけばいいだけです。

通報 ...