【问题标题】:Using a query to supply an Access form使用查询提供 Access 表单
【发布时间】: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


【解决方案1】:

当所有非空字段都有其值时,上述查询将允许您将数据插入[table1],并确保只有table1.fields在新记录时变脏已插入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多