0

古い Access データベースを「修正」していますが、クライアントから DATE フィールドをフォームに追加するように要求されました。問題は、以前に Access を使用したことがないことです。私は SQL の専門家で、独自の UI を構築しています。このフォームの事は私を良くしています。

わかりました-だから私は2つのテーブルを持っています: tblQuestionairre QuestionairreID EventID 何とか何とか何とか

tblEvent EventID DateTime 何とか何とか何とか

現在、frmQuestionairre (Questionairre Form) を編集しています。Questionairre テーブル (tblQuestionairre) からのすべての情報はここにあります。問題は、このフォームのどこかに DateTime フィールドを追加して、クライアントが質問がいつ入力されたかを確認できるようにする必要があることです。ご覧のとおり、私のリンク アイテムは EventID です。

「式ビルダー」を使用して Event テーブルから DateTime を「追加」することはできません。ロードされている現在の Questionairre の正しい DateTime をロードする必要があります。各アンケートはイベントにリンクされています。

このフィールドを Questionairre フォームに追加するにはどうすればよいですか? #名前を取得し続けますか? これは明らかに、EventID で 2 つのテーブルをリンクする方法がわからないためです。アイデアはありますか?

編集: はい、これは単純な 1 対 1 の関係です。はい、フィールドは編集可能である必要があります。

ANSWER: =DLookUp("[DateEntered]","tblEvent","EventID=" & Forms!frmQuestionnaire!EventID)

編集:表示されたので、編集できません!?

4

3 に答える 3

0

私が質問を正しく読んでいる場合、tblQuestionairreとtblEventの間のEventIDに1-1の関係がありますか?

その場合は、フォームのプロパティシートを開き、[データ]タブの[レコードソース]プロパティを編集して、tblQuestionairreだけでなく、2つのテーブルを結合するクエリに基づくようにします。プロパティシートから直接ビルダーを使用して、クエリを作成することもできます。

その設定が完了すると、フォームに新しいテキストボックスをドロップして、そのコントロールソース(プロパティシートの[データ]タブ)を[DateTime]フィールドに設定できるようになります。

于 2009-02-04T22:52:30.433 に答える
0

最も簡単な方法は、フォームのOnCurrentイベントでDLookup関数を使用することです。OnCurrentは、新しいレコードがロードされ、DLookupが1つの値を返す単純なデータベースルックアップを実行したときに発生します。

于 2009-02-04T22:56:30.003 に答える
0

フォームのRecordSourceを変更して、1つだけではなく2つのテーブルを結合するクエリにリンクするようにする必要があります。

この場合、RecordSourceプロパティを編集し、デザイナを使用してクエリを作成するか、SQLボタンをクリックして次のように入力します。

SELECT tblQuestionaire.QuestionaireID, 
       tblQuestionaire.EventID,
       tblQuestionaire.blahblah,
       tblEvent.DateTime,
       tblEvent.blahblahblah
FROM tblQuestionaire 
INNER JOIN tblEvent 
      ON tblQuestionaire.EventID=tblEvent.EnventID;

これは、テーブル間に厳密な1対1の関係があることを前提としています。それ以外のLEFT JOIN場合は、1対[0,1]の関係の場合はaを使用します。

于 2009-02-19T02:03:50.077 に答える