2010-12-09 110 views
1

基于Web读取,我构建了一个新的ODBC连接,仔细查找可能会提示更新的细微配置参数,但没有找到。然后我测试了新的链接。访问ODBC到SQL Server的链接表允许插入但不更新

重新测试我的问题:

1)我创建的SQL Server 2005下表:

[TestTbl] 

column1: Key  Type:Integer 
Column2: Name  Type:varchar(5) 

填充的如下

Key  Name 
    ===  ==== 
    1  Apple 
    2  Bear 
    3  Cat 

2)然后在Access 2007中,使用我最新的ODBC连接创建了一个指向SQL Server表TestTbl的链接。

3)接下来使用链接和Access 2007中执行我插入成功插入下面的新记录到SQL Server表:

Key  Name 
    ===  ==== 
    4  Dog 
    5  Elephant 

4)最后,我试图执行以下简单的更新查询:

UPDATE dbo_TestTable SET dbo_TestTable.TestName = "CatNip" 
    WHERE (((dbo_TestTable.TestKey)=3)); 

我走出挫折的错误消息“操作必须是一个可更新的查询”

5),我插入另一条记录

Key  Name 
    ===  ==== 
    6  Nonsense 

然后我发布了这个问题寻求帮助。

任何人都可以请解释为什么我可以插入新的记录到链接表,但我不能更新现有的记录?

+0

varchar(50)是Column2的数据类型 – 2010-12-09 03:10:55

+1

也许这只是一个错字,但是您的列被称为Key和Name,但是您的INSERT语句引用TestKey和TestName。 – 2010-12-09 03:30:51

回答

2

您遇到的问题是因为没有定义主键,或者您在Access中链接表时没有定义主键。重新添加链接表(删除并添加)并选择一个主键字段,在这种情况下,列1