0

我正在“修复”一个旧的 Access 数据库,客户要求将 DATE 字段添加到表单中。问题是,我以前从未使用过 Access。我是一个 SQL 人,我构建了自己的 UI。这种形式的事情正在使我变得更好。

好的 - 所以我有两个表: tblQuestionairre QuestionairreID EventID blah blah blah

tblEvent EventID DateTime 等等等等

现在,我正在编辑 frmQuestionairre(Questionairre 表格)。Questionairre Table (tblQuestionairre) 中的所有信息都在这里。问题是,我需要在此表单的某处添加 DateTime 字段,以便客户可以看到输入问题的时间。如您所见,我的链接项是 EventID。

尽我所能,我不能只使用“表达式生成器”从事件表中“添加”日期时间。我需要为当前加载的 Questionairre 加载正确的 DateTime。每个 Questionairre 都链接到一个事件。

如何将此字段添加到 Questionairre 表单?我不断收到#Name?错误,这显然是因为它不知道链接EventID上的两个表..想法?

编辑:是的,这是一个简单的一对一关系。是的,该字段需要可编辑。

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

编辑:现在我已经显示了,我不能编辑它!?

4

3 回答 3

0

最快的方法是在表单的 OnCurrent 事件中使用 DLookup 函数。OnCurrent 在加载新记录并且 DLookup 执行返回一个值的简单数据库查找时触发。

于 2009-02-04T22:56:30.003 回答
0

如果我正确阅读了这个问题,那么您在 tblQuestionairre 和 tblEvent 之间的 EventID 上有 1-1 关系吗?

如果是这样,只需打开表单的属性表并编辑“数据”选项卡上的“记录源”属性,使其基于连接两个表的查询,而不仅仅是 tblQuestionairre。您甚至可以使用属性表中的构建器来构建查询。

一旦你设置好了,你应该能够在表单上放置一个新的文本框并将它的控制源(再次在属性表的数据选项卡上)设置为“日期时间”字段。

于 2009-02-04T22:52:30.433 回答
0

您需要更改 Form 的 RecordSource,以便它链接到连接两个表而不是一个表的查询。

在您的情况下,编辑 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 回答