我有一个连续的表单,它将基于表单标题中的组合框过滤表。从现在开始,所有事情都是通过一种形式进行的,没有子表单。我希望允许用户编辑现有记录以及添加新记录。编辑似乎没有引起任何问题,它正在尝试添加新记录。将数据添加到单个表单中的多个表Access数据库
我刚才问了一会儿以下的问题,并将所有的事情都正常化了。为了将所有信息集中到一个地方,我使用了查询,但是无法通过查询编辑记录,所以我只根据结果创建了一个表格。我试图通过子窗体的方式编辑数据时,子窗体基于查询,但没有奏效。自从我创建包含查询结果的表以来没有尝试过。
基本上问题是我不能添加一个记录,如全新的供应商,因为供应商不存在于表中。我需要将数据添加到多个表(供应商,供应商代码,联系信息,来自prev 3的所有信息)。真的不需要添加任何东西的人就是联系人类型表。
我在某处读到它是一个糟糕的结构,需要这样的事情发生,但如果一切都需要正常化似乎是矛盾的。
https://social.msdn.microsoft.com/Forums/Lync/en-US/3877ce6a-34d9-4732-9af3-4c2704e50a62/adding-data-to-multiple-tables-using-one-form-in-access-2010?forum=accessdev
Show All Records For Given Field Filter In Access 2010 Table
东西我以前没有考虑的是更新查询。这是否适合这种情况?我以前没有用过,但总是乐于学习新东西。唯一的问题是我不熟悉SQL,但会在必要时使用它,如果有任何问题,请使用VBA。
编辑
SELECT tblSuppliers.Supplier,
tblSupplierCodes.[Supplier Code],
tblContactType.Type,
tblContactInfo.[Contact Name],
tblContactInfo.[Contact Email]
FROM (tblSuppliers INNER JOIN tblSupplierCodes ON
tblSuppliers.ID = tblSupplierCodes.[Supplier ID])
INNER JOIN (tblContactType INNER JOIN tblContactInfo ON
tblContactType.TypeID = tblContactInfo.TypeID) ON
tblSuppliers.ID = tblContactInfo.SupplierID
WHERE (((tblSuppliers.Supplier)=[Forms]![frmContacts]![cboChooseSupplier])) OR ((([Forms]![frmContacts]![cboChooseSupplier]) Is Null))
ORDER BY tblContactType.Type, tblContactInfo.[Contact Name];
现在你已经提到它了,大多数表格都有一个自动编号的主键,所以一些链接并不总是始终来自主键。这很好,可能是我的问题。 _具有多表连接的查询不在关键字段上_从第二个链接引出的引号,我相信最符合我正在处理的问题 –
请在该SELECT字符串中添加一些换行符,以便它更易读。 ---但没有任何明显的突出。尝试一次删除一个表并检查哪个表阻止查询可更新。 – Andre
如果我正尝试向现有供应商添加新记录,例如tblSuppler.Supplier和两个tblContactInfo字段都会产生此问题。不知道这是否有助于缩小范围 –