0

私はいつも不可能なことをしようとしているようです。さて、私は次の形式で[月/日]テーブルを設定しています。

Noombers | Lemmas
-----------------
0101     | Jan 1
0102     | Jan 2
...      | ...
1230     | Dec 30
1231     | Dec 31

この[月/日]テーブルを利用する[ReadsFrom]フィールドと[ReadsT​​o]フィールドを持つ[PublicationVenues]のテーブルがあります。情報を入力するときに、「Sep 1」と入力して、タブを押します。これは、フィールド(バックグラウンド)を「0901」で埋めます。英数字でソートし、英数字の比較も行いたいので、これはテキストフィールドです。現在読んでいる出版場所のリストを表示するために作成したクエリの基準で、次のようなことができると思いました。

Field:       Reads From              | Reads To
Table:       Publication Venues      | Publication Venues
Sort:       
Show:    
Criteria:    >Format(Date(),"mmdd")  | <Format(Date(),"mmdd")

ただし、エラーは表示されていませんが、表示されるはずのレコードも表示されていません。実際、私はレコードを見ていません。

したがって、この時点で、クエリの基準でFormat()を使用できないと想定しても安全ですか?もしそうなら、私がこのフィルターを設定するための別の方法は何ですか?すでに数百のレコードが入力されているので、できれば、すでに取得しているテーブルを使用します。Format()を使用できる場合、私が間違っていると思いますか?

SQLは次のとおりです。

SELECT
    [Publication Venues].*
FROM
    [Publication Venues]
WHERE
    ((([Publication Venues].[Still Active?])=Yes)
  AND
    (([Publication Venues].[Reads From])<Format(Date(),"mmdd"))
  AND
    (([Publication Venues].[Reads To])>Format(Date(),"mmdd")));
4

2 に答える 2

1

あなたがしていることはエラーを引き起こさないので、あなたはエラーを見ません。ただし、期待どおりには機能しません。

あなたが4つの数字としてあなたの日付を物語っているならば、Accessはそれを解釈する方法を本質的に知りません。たとえば、日付に変換された1231は、1903年5月15日です。

使用しているフォーマットを使用するには、その違いを補う必要があります>Format(Date()-40043,"mmdd")<Format(Date()-40043,"mmdd")

4桁を次のような日付に変換することをお勧めします。

Cdate(Left$([Reads From],2) & "/" & Right$([Reads From],2) & "/" & Year(Date()))>Date()

簡単に言うと、日付を日付として使用する場合は、日付を日付として保存する必要があります。それ以外の場合は、フロントエンドが日付を処理していることを認識できるように、いくつかのフープをジャンプする必要があります。

于 2012-12-12T20:33:52.047 に答える
1

少なくとも私の脳の働き方に関しては、これが解決策であることが判明しました。

SELECT [Publication Venues].*
FROM [Publication Venues]
WHERE
   ((([Publication Venues].[Still Active?])=Yes)
AND
   (((([Publication Venues].[Reads From]) < ([Publication Venues].[Reads To]))
   AND
   (Format(Date(), "mmdd") BETWEEN ([Publication Venues].[Reads From]) AND ([Publication Venues].[Reads To])))
OR
   ((([Publication Venues].[Reads From]) > ([Publication Venues].[Reads To]))
   AND
   (Format(Date(), "mmdd") NOT BETWEEN ([Publication Venues].[Reads From]) AND ([Publication Venues].[Reads To]))))
);

私はあなたの助けに感謝します、人々。あなたのフィードバックは、私を解決に導く方向に私の心を動かしました。

于 2012-12-12T21:51:54.877 に答える