Access Learning Zone からの今日の TechHelp チュートリアルでは、一般的な「#Name?」について説明します。 Microsoft Access の計算フィールドで日付条件が機能しない場合に発生する可能性があるエラー。プラチナ メンバーの 1 人であるイリノイ州レイク フォレスト在住のライリーさんから、この問題について質問がありました。彼は、「DSum を使用して過去 1 年間のすべての注文を合計する計算フィールドを顧客フォームに作成しようとしていますが、「#Name?」というメッセージが表示され続けます。エラーです。何が間違っているのでしょうか?"
ライリー、これはよくある問題なので、心配しないでください。それは多くの人が犯す間違いです。本質的には、「#Name?」エラーは、Access が何を指しているのかわからないことを意味します。 「日付」などの関数を使用する場合、正しく使用しないと Access が混乱する可能性があります。
まず、すべてが正しく設定されていることを確認してください。 DSum 関数をまだ理解していない場合は、DSum 関数をよく理解しておく必要があります。DSum 関数を使用すると、顧客注文の合計など、別のテーブルまたはクエリの値を合計できるようになります。さらに、DSum、Dlookup、またはその他の D 関数で複数の基準を使用する場合、連結を理解することが重要です。これらのトピックについてよくわからない場合は、先に進む前に、これらの主題に関する以前のチュートリアルを参照してください。
私の Web サイトからダウンロードできる TechHelp の無料テンプレートを使用します。これには顧客と注文のデータが含まれます。この例では、顧客フォームにフィールドを追加して、過去 1 年間のすべての支払い済み注文の合計を表示します。このタスクには DSum 関数を使用します。
まず、フォームに新しいフィールドを追加し、その名前を「OrderTotal」に変更します。プロパティで、コントロール ソースを計算された値に設定します。追加の条件を指定せずに、顧客の注文をすべて合計することから始めます:
"CustomerID = " & [CustomerID].
次に、有料注文のみを含める基準を導入します。条件を追加します:
「IsPaid = True」
スペースを適切に含めることを忘れないでください。これらのスペースは、関数が正しく動作するために重要です。
次に、日付条件を追加しましょう。過去 1 年間の注文を確認したいとします。 Access では、値 1 は 1 日を表します。 1 年前の日付を取得するには、次を使用します:
「注文日 >= 日付() - 365」。
最初は、「#Name?」という結果になる可能性があります。 Access が "日付" を関数ではなくフィールド名として解釈しようとするため、エラーが発生します。これを修正するには、必ず「Date()」を括弧で囲んで記述してください。
また、Access の日付値は # 記号で囲む必要があります:
"#" & Date() - 365 & "#".
それでも期待した結果が表示されない場合は、Access の日付値の比較方法が原因である可能性があります。 "#" 記号を追加すると、Access で値が日付として扱われるようになります。
最後に、結果が null で、代わりにゼロを表示したい場合は、DSum 関数を NZ 関数でラップします。
NZ(DSum(...), 0).
これにより、null 値がゼロに変換され、出力がよりユーザーフレンドリーになります。
これらの一般的なエラー (Date 関数の誤用や日付値を # 記号で囲み忘れるなど) は、何を探すべきかがわかれば簡単に修正できます。関数を正しく使用し、適切な書式設定を行うことで、これらの間違いを回避し、正確な結果を得ることができます。
プログラミングに飛び込むことなく、これらのトピックに関する専門家レベルのレッスンと詳細な手順については、私の Web サイトをご覧ください。このチュートリアルは、基本を超えて開発者レベルのコンテンツにまだ入っていない人を支援することを目的としています。
ここで説明したすべての手順を段階的に説明した完全なビデオ チュートリアルは、以下のリンクから私の Web サイトでご覧いただけます。友よ、長生きして繁栄してください。
このトピックに関する完全なビデオチュートリアルについては、https://599cd.com/DateNotWorking?key=Dev.To をご覧ください
以上がMicrosoft Access で日付が機能しないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。