设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 4259|回复: 18
打印 上一主题 下一主题

[查询] 操作必须使用一个可更新的查询

[复制链接]
跳转到指定楼层
1#
发表于 2011-10-9 14:22:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用DoCmd.RunSQL
当sql语句是insert into的时候没有问题
但是当使用update的时候
就弹出“操作必须使用一个可更新的查询”
请问这种如何解决,谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2011-10-9 14:26:16 | 只看该作者
我用的是access对sql server进行更新
3#
 楼主| 发表于 2011-10-9 14:43:34 | 只看该作者
而且用的还是管理员账号
4#
发表于 2011-10-9 14:46:06 | 只看该作者
不是所有的查询都可更新的。
5#
发表于 2011-10-9 14:54:05 | 只看该作者
有这个问题存在
我是这样理解的,用查询到的结果进行更新时,因为经过多重嵌套或计算等原因,更新查询本身不能添加新记录时,那么这个查询就属于不可更新的查询,这时就无法更新记录.
我是这样解决的,先将查询到的结果生成临时表,即先运行个生成表查询,再用这个临时表数据更新查询,因为是直接由临时表建立的更新查询,属于可更新查询,就能成功更新,最后再删除临时表.

最好的方法是不用更新查询,而使用删除+添加组合
6#
 楼主| 发表于 2011-10-9 14:54:33 | 只看该作者
我用的是:
DoCmd.RunSQL "UPDATE [ODBC;Driver=SQL Server;Server=XXXX;Uid=XXXXwd=XXXX;database=XXXX].XXXX a SET a.ZHDLSJ = #" & Now() & "# WHERE a.MAC='" & GetNICInfo(0) & "'"
这个查询可以更新吗
7#
 楼主| 发表于 2011-10-9 14:58:55 | 只看该作者
tzh16000 发表于 2011-10-9 14:54
有这个问题存在
我是这样理解的,用查询到的结果进行更新时,因为经过多重嵌套或计算等原因,更新查询本身不能 ...

换成删除也不行,弹出无法删除
因为数据库是远程的SQL server数据库
8#
发表于 2011-10-9 15:05:58 | 只看该作者
littlekey 发表于 2011-10-9 14:58
换成删除也不行,弹出无法删除
因为数据库是远程的SQL server数据库

噢,我还以为你是后台链接采用SQL数据库的表,这个我还真不清楚
9#
 楼主| 发表于 2011-10-9 15:07:47 | 只看该作者
是SQL数据库的表
是sql server数据库,我用access的vba操作

点击这里给我发消息

10#
发表于 2011-10-11 08:07:42 | 只看该作者
1. 服务器表 增加主键
2. #" & Now() & "#   改为 #" & fromat(Now(),"yyyy/mm/dd hh:nn:ss") & "#
试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-11 08:03 , Processed in 0.088478 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表