Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 基于查询在窗体上插入记录_Ms Access_Ms Access 2010_Ms Access 2003 - Fatal编程技术网

Ms access 基于查询在窗体上插入记录

Ms access 基于查询在窗体上插入记录,ms-access,ms-access-2010,ms-access-2003,Ms Access,Ms Access 2010,Ms Access 2003,我已经多年没有在Access方面做太多工作了,但我已经做了一些支持工作来帮助解决问题。 数据库是Access 2003数据库,在2010年以兼容模式运行(但在2003年的行为相同),数据位于SQL Server 2005后端 我们有一个基于查询的单一表单(即非主/子表单),连接两个表-这是一个简单的组织。理论上是多对一,但实际上是一对一。我甚至不确定这是否/如何工作,但总的来说是这样的 如果您创建了一个新记录(表单有一个按钮,但如果您使用内置的“新记录”按钮,它会根据tblAddress表上的自

我已经多年没有在Access方面做太多工作了,但我已经做了一些支持工作来帮助解决问题。 数据库是Access 2003数据库,在2010年以兼容模式运行(但在2003年的行为相同),数据位于SQL Server 2005后端

我们有一个基于查询的单一表单(即非主/子表单),连接两个表-这是一个简单的组织。理论上是多对一,但实际上是一对一。我甚至不确定这是否/如何工作,但总的来说是这样的

如果您创建了一个新记录(表单有一个按钮,但如果您使用内置的“新记录”按钮,它会根据tblAddress表上的自动编号生成一个新的地址ID,并填充Organization表中的org_addr_code列。 但是,如果您随后尝试创建第二条新记录,它将抛出一个错误

The Microsoft Access database engine cannot find a record in the table tblAddress with key matching field(s) 'ORG_ADDR_CODE'
如果我将记录直接插入基础查询的数据表视图,那么它允许我添加任意多的记录

如果我在插入第一条记录后退出表单,然后返回,我可以添加另一条记录。只有当你试着用同一种形式“会话”做不止一次的时候。我尝试了我能想到的刷新/重新查询的每一种变化,但没有乐趣

有人有什么想法吗?我不想重写整个表单——如果真的是这样,他们只需要坚持一次添加一条记录


卡尔

你需要探索幕后发生了什么。检查所有代码,表单的recordsource和后面的查询,控件的controlsource和rowsource。啊,在设置更新日期的自定义“保存记录”按钮上有一段额外的代码,但在保存之后。一旦我移动了它,一切都很好。但我还是不喜欢这个设计!