设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1018|回复: 8
打印 上一主题 下一主题

[Access本身] 几个基本概念

[复制链接]
跳转到指定楼层
1#
发表于 2006-6-11 21:13:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在窗体中,调用动态查询,调用更新(删除,插入)查询,该怎样写调用的代码?谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2006-6-11 21:44:00 | 只看该作者
没人回复。大概是我没说清楚。譬如库里有一表Table,我要更改其中某一特定记录(ID=4)的特定字段Name的值,窗体一个文本框Text给出要更新的值。应该是:

UPDATE Table SET Name = Me.Text.text WHERE ID = 4

这样的SQL语句在当前窗体中:

1. 用动态查询该如何调用(调用的语句怎么写)?

2. 用调用更新查询,调用语句怎么写?

谢谢!
3#
发表于 2006-6-11 22:01:00 | 只看该作者
docmd.runsql"UPDATE Table SET Name = Me.Text.text WHERE ID = 4"
4#
 楼主| 发表于 2006-6-11 22:23:00 | 只看该作者
是否写成这样:

docmd.runsql "UPDATE Table SET Name = "&Me.Text.text&"WHERE ID = 4" ?还是写成:

docmd.runsql ""UPDATE Table SET Name = "&Me.Text.text&"WHERE ID = 4""? 哪个是对的?谢谢!
5#
发表于 2006-6-11 23:43:00 | 只看该作者
docmd.runsql "UPDATE Table SET Name = " & Me.Text.text & "WHERE ID = 4"
6#
 楼主| 发表于 2006-6-12 04:35:00 | 只看该作者
既然如此,为什么总是报错:操作必须使用一个可更新的查询。

我的更新查询语句如下:

UPDATE Iterm SET Iterm.Charges = (SELECT Sum (Nz(BooksExpenses.Buyout)*(1+Nz(BooksExpenses.TaxtoBuy)/100)-Nz(BooksExpenses.SellRate)) FROM BooksExpenses Where BooksExpenses.ItermOrder = [Forms]![BooksExpenses]![ItermOrder])
WHERE Iterm.Order=Forms!BooksExpenses!ItermOrder;
7#
发表于 2006-6-12 23:09:00 | 只看该作者
以下是引用secondonsite在2006-6-11 20:35:00的发言:


既然如此,为什么总是报错:操作必须使用一个可更新的查询。

我的更新查询语句如下:

UPDATE Iterm SET Iterm.Charges = (SELECT Sum (Nz(BooksExpenses.Buyout)*(1+Nz(BooksExpenses.TaxtoBuy)/100)-Nz(BooksExpenses.SellRate)) FROM BooksExpenses Where BooksExpenses.ItermOrder = [Forms]![BooksExpenses]![ItermOrder])
WHERE Iterm.Order=Forms!BooksExpenses!ItermOrder;





因为并不是所有的查询都是可更新的,有很多查询都是只读的。比方说联合查询。

其实理由自己想想就知道了,你联合两个表得到一个查询,那么新增加一条记录到底是应该加到哪个表呢?从逻辑上而言,这是一个无法解决的问题。

而UPDATA就不能对于这种类型的查询进行更新(事实上任何方法都不能)
8#
 楼主| 发表于 2006-6-13 02:59:00 | 只看该作者
但我这里并不是一个联合查询,仅仅是在UPDATE里嵌套了Select子句。就是将Select查询出的数据作为替换数据去更新,应该可以的。
9#
发表于 2006-6-13 05:31:00 | 只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-4-5 19:29 , Processed in 0.096233 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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