0

良いタイトルを思いつくのに苦労していますが、状況をもっとよく説明できればと思います。現在、("11:00-21:00"または"11:01-21:00")の条件を持つクエリがあります。これは実行時に完全に機能しますが、複数のクエリでこの基準が必要になるため、以下のような機能を考え出すことにしました

Function timeIntervals()

    timeIntervals = "11:00 - 21:00" & " Or " & "11:01 - 21:00"

End Function

そして、各クエリでそれを呼び出します。したがって、この文字列を変更する必要があるたびに、その1つのインスタンスを介してそれを行うことができますが、この文字列を上で実行すると、機能しません。 "" "とchr(34)を引用しますが、機能しません。誰かが回避策を提案できますか?

4

2 に答える 2

3

Remouが示したように、これを機能させることはできません。本当にVBA関数を介してチェックを実行したい場合は、次のように記述できます。

Function timeIntervals(Value) As Boolean
    If Value = "11:00 - 21:00" Or Value = "11:01 - 21:00" Then
        timeIntervals = True
    End If
End Function

チェックする値を渡し、結果の関数がtrueの場合は、行を表示します。のようなもの:where timeIntervals(myvalue) = true

おそらく最善の解決策は、timeIntervalsのテーブルを作成することです。次に、クエリに次のように記述します。

Where MyValue IN(Select timeValue from timeIntervals)

この後者の方法を使用すると、すべてのユーザーの結果を更新するテーブルを更新でき、フロントエンドの再リリースは必要ありません。

于 2012-12-18T18:11:48.487 に答える
0

引用符で何をしても、それは機能しませOrん。ブール値または必要な文字列ではなく、文字列として返されるためです。2つのテキストボックスを持つ非表示のフォームを使用すると、次のように言うことができます。

WHERE timeIntervals = Forms!MyForm!Text1 Or Forms!MyForm!Text2

フォームが開いたままである限り、クエリとそれに基づくフォームまたはレポートは機能します。さらに、コードを変更せずに間隔を変更するのは非常に簡単です。

于 2012-12-18T18:02:20.863 に答える