控件无法编辑;它绑定到自动编号字段 [FieldName]

Control can't be edited; it's bound to AutoNumber field [FieldName]

我有一个 Microsoft Access ADP 类型的数据库,链接到 SQL Server 2012 数据库,该数据库最近从 Office XP (2002) 升级到 Office 2010。除了一个问题外,升级基本成功在具有可更新数据源的表单上使用组合框 - 在 Access XP/2002 中,用户可以 select 下拉列表中的值,并且该值将在 table 中更新。但是,当用户尝试使用 Access 2010 中的 'tblL.LMID' 组合框修改记录时,屏幕底部的状态栏中短暂闪烁错误(并且记录未更新):

"Control can't be edited; it's bound to AutoNumber field 'LMID'"

我知道如果相关字段是 SQL 服务器中的身份列,这是正常功能,但这里不是这种情况。但是,'tblL.LMID' 字段确实在幕后用作 SQL 查询中的连接。

表格上的数据来源如下:

SELECT dbo.tblLM.OpID, dbo.tblL.*, dbo.tblLM.DR 
FROM dbo.tblL INNER JOIN dbo.tblLM ON dbo.tblL.LMID = dbo.tblLM.LMID 
WHERE (dbo.tblLM.DR = 1) 
ORDER BY dbo.tblL.DS

查询中涉及的table如下:

CREATE TABLE [dbo].[tblL](
    [LID] [int] IDENTITY(1,1) NOT NULL,
    [LMID] [int] NOT NULL,
    [DS] [nvarchar](10) NOT NULL)

CREATE TABLE [dbo].[tblLM](
    [LMID] [int] IDENTITY(1,1) NOT NULL,
    [OpID] [int] NULL,
    [DR] [bit] NULL DEFAULT ((1)))

根据 table 结构,tblL.LMID 是一个简单的列(不是 Autonumber/Identity),我们应该可以像在 Access [=29] 中那样修改它=] 应用程序版本。

我很乐意接受有关此问题的任何帮助,非常感谢! :)

将表单放入设计视图;删除当前组合框。创建一个新的组合框并按照向导操作。

问题出在查询本身。要解决这个问题,我们必须用特定的列名替换 "dbo.tblL.*" select,并给有问题的列一个别名:

SELECT dbo.tblLM.OpID, dbo.tblL.LMID as l_MID, dbo.tblLM.DR 
FROM dbo.tblL INNER JOIN dbo.tblLM ON dbo.tblL.LMID = dbo.tblLM.LMID 
WHERE (dbo.tblLM.DR = 1) 
ORDER BY dbo.tblL.DS

然后我们更新了组合框以使用新别名 ("l_MID"),然后它开始正常工作。