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
Sql server 使用链接表访问时更新SQL视图失败_Sql Server_Ms Access - Fatal编程技术网

Sql server 使用链接表访问时更新SQL视图失败

Sql server 使用链接表访问时更新SQL视图失败,sql-server,ms-access,Sql Server,Ms Access,我有一个创建视图的表。该视图实际上没有改变任何东西,除了列的顺序,一列从int转换为varchar 该视图在Access 2013中设置为链接表。一切都很好。当我在Access中调出表单以编辑视图中的行时,我遇到了问题 我尝试用NA更新列OSP\u COMPLETE\u。最终用户希望此字段不仅仅是int。我更新了视图,以便它像这样拉动列: convert(varchar(10),OSP_PERCENT_COMPLETE) OSP_PERCENT_COMPLETE 因此,它保持相同的名称,但现在

我有一个创建视图的表。该视图实际上没有改变任何东西,除了列的顺序,一列从
int
转换为
varchar

该视图在Access 2013中设置为链接表。一切都很好。当我在Access中调出表单以编辑视图中的行时,我遇到了问题

我尝试用NA更新列
OSP\u COMPLETE\u
。最终用户希望此字段不仅仅是
int
。我更新了视图,以便它像这样拉动列:

convert(varchar(10),OSP_PERCENT_COMPLETE) OSP_PERCENT_COMPLETE
因此,它保持相同的名称,但现在是一个
varchar
字段。然后,当我在表单中更新该字段时,我会收到此错误消息

ODBC--更新链接表“PMDBII”失败 访问视图或函数“”的[Microsoft][ODBC SQL Server驱动程序][SQL Server]更新或插入失败,因为它包含派生字段或常量字段。(#4406)

我可以检查PMDBII链接表中的字段,它显示为长度为10的
短文本
字段

有一件事我应该提一提,这大部分是由一位不再在公司工作的同事建立的,我不像他那样精通访问


那么为什么会出现错误呢?

之所以会出现错误,是因为“视图”不会改变底层字段仍然是“int”的事实。如果使用表单,可能会在将NA转换为null的“更改前”事件中包含代码,但这可能不是一个好主意。

之所以会出现错误,是因为“视图”不会改变基础字段仍然是“int”@WayneG.Dunn的事实,所以基表字段需要是
varchar
而不仅仅是视图?这是我应该知道的。作为答案,我将结束这个问题。这让我觉得自己很愚蠢,因为我一开始没有意识到这一点。谢谢