【发布时间】:2017-02-27 15:36:01
【问题描述】:
我有一个 Microsoft Access 表单,它(以某种方式)由查询提供。查询包含三个通过各自的主键和外键链接在一起的表,表单显示数据非常愉快。
奇怪的事情(就我而言)是表单允许使用查询输入数据的能力。
但是,如果用户创建一条新记录,由于[table2] 表中的必填字段,整个事情似乎都有问题。
SELECT [table1].*
,[table2].JobNo
,[table2].PlannedDateOC
,[table3].DateJobStarted
,[table1].PlanNo
FROM (
[table1] LEFT JOIN [table2] ON [table1].PlanNo = [table2].PlanNo
)
LEFT JOIN [table3] ON [table2].JobNo = [table3].JobNo
ORDER BY [table2].PlannedDateOC
,[table1].PlanNo;
根据用户的说法,在从 Access 97/2003 格式转换为 Access 2010(2007 文件格式)之前,此表单运行良好。
谁能澄清这(它应该工作的事实)是否合法,以及这个过程是否可以在任一版本的 Access 中工作,如果是的话?能够使用查询来输入数据的概念对我来说很陌生。
如果您需要进一步说明,请告诉我。
注意: 这里需要注意的一点是,我确实将一些字段移到了表单标题中,以便它们在表单的其余部分滚动时始终可见。不知道这样会对表单的性能有什么副作用。
【问题讨论】:
-
当所有非空字段都有值时,上述查询将允许您将数据插入 [table1]!你有什么问题?
-
感谢您的回复,@krishKM。 Quote: 但是,如果用户创建一条新记录,由于
[table2]表中的必填字段,整个事情似乎有问题。 基本上记录不会保存,因为有一个必填字段在第二个表中。 -
并确保在插入新记录时只有 table1.fields 变脏。并非其他表中的所有可见字段..这将是(不一致的更新/插入)并且很可能会导致错误
-
当然!让我们知道。 (理想情况下只是锁定/禁用其他表中的其他字段)以便他们在打开查看时仍然可以查看它们)
-
20 年前的 access 97 版本与新的 2016 版本相比,数据库引擎和表单的工作方式没有变化。因此,无论问题是什么 - Access 的工作方式并没有发生一些变化 - 其他事情已经/被搞砸了。
标签: forms ms-access view ms-access-2010 ms-access-2003