クエリで使用されるカスタム関数を作成しました。この関数は小さなテーブル (50 セル) を開き、検索結果に基づいてクエリの 1 つの列に日付を追加します。ただし、関数の実行が遅すぎるのは、クエリ内のすべてのレコードに対してレコード セットを開いたり閉じたりするためだと思います。関数が呼び出されるたびにレコード セットを開いたり閉じたりするのを避ける方法はありますか? これはそもそも関数を使用する目的に反していると思いますが、誰かが解決策を持っていることを望んでいます。
元の投稿の後に追加されました。
以下の構造に基づいて、テーブルから説明をクエリの CustomFunctionField に取得する必要があり、日付フィールドが接続されます。テーブルには日付範囲が保持され、クエリには日付範囲内の特定の日付があります。
--クエリ-- ID | 情報 | 日付 | CustomFunctionField
--表-- ID | 開始日 | 終了日 | 説明
コードは次のとおりです。
Public Function SelectTerm(DateFull)
Dim rstin As DAO.Recordset
Dim dx As Date
Dim dterm As String
Set rstin = CurrentDb.OpenRecordset("tblTerms", dbOpenSnapshot)
dx = "1/1/2000"
If Not rstin.EOF And Not rstin.BOF Then
Do Until rstin.EOF Or dx >= DateFull
dx = rstin.Fields("DateEnd")
rstin.MoveNext
Loop
rstin.MovePrevious
dterm = rstin.Fields("Description")
rstin.Close
End If
SelectTerm = dterm
End Function