设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 请教如何清空子窗体记录集的某个字段的值?

[复制链接]
跳转到指定楼层
1#
发表于 2007-1-9 17:49:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如图,数据表形式子窗体里面有数条记录,之前已经请教过可以使用以下代码汇总合计里面"书名"字符串字段的值

Dim strSum As String,rs As Object

Set rs = Me.报价成本登记子窗体.Form.RecordsetClone
rs.MoveFirst
Do Until rs.EOF
strSum = strSum & rs.Fields("书名") & ";"
rs.MoveNext
Loop

Me.书名汇总= strSum
Set rs = Nothing










现在想请教一下,如何用代码清空子窗体里面的这些记录的某个数字字段(如书籍编号)和文本字段(如类别)的内容?




















[此贴子已经被作者于2007-1-9 10:39:32编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-1-9 18:57:00 | 只看该作者
方法一:

dim SqlStr as string,Rs as new adodb.recordset

SqlStr="update 存书查询 set 书籍编号=null,类别=null"

set Rs=currentproject.connection.execute(sqlstr)

set RS=nothing

Me.报价成本登记子窗体.requery

方法二:

dim SqlStr as string,Rs as new adodb.recordset

SqlStr="update 存书查询 set 书籍编号=null,类别=null"

docmd.setwarnings false

docmd.runsql sqlstr

docmd.setwarnings true

Me.报价成本登记子窗体.requery
3#
 楼主| 发表于 2007-1-9 19:10:00 | 只看该作者
谢谢!

方法二是清空整个查询的字段,我只想清空当前子窗体查询结果的字段。

ado我不太懂,请问方法一也是清空整个查询的字段吗?
4#
发表于 2007-1-9 19:45:00 | 只看该作者
前面多定义一个字符串变量

dim strwhere as string

在SqlStr="update 存书查询 set 书籍编号=null,类别=null"后面加上条件判断的where 子句

把下面的代码写在SqlStr="update 存书查询 set 书籍编号=null,类别=null"后面

if not isnull(me.书名) then

strwhere="书名='" & me.书名 & "'and "

endif

if not isnull(me.类别) then

strwhere="类别='" & me.类别 & "'and "

endif

if not isnull(me.作者) then

strwhere="作者='" & me.作者 & "'and "

endif

if not isnull(me.出版社) then

strwhere="出版社='" & me.出版社 & "'and "

endif

if len(strwhere)>0 then

strwhere=left(strwhere,len(strwhere)-5)

SqlStr=SqlStr & " from 存书查询 where " & strwhere

endif

[此贴子已经被作者于2007-1-9 11:47:29编辑过]

5#
发表于 2007-1-9 19:46:00 | 只看该作者
两种方法作用都一样的[em01]
6#
 楼主| 发表于 2007-1-9 20:36:00 | 只看该作者
还是多谢你的解答,但是可能你还没有理解我的意思,引用控件的值作为条件这种方法并不是我希望的答案,不然我都不会给出之前操作记录集的代码了,

我希望直接操作子窗体的动态查询记录集,将里面所有记录的"书籍编号"和"类别"字段清空



我试过在原有的代码里面加上红色的部分,但是不成功会提示不能更新数据

Dim strSum As String,rs As Object



Set rs = Me.报价成本登记子窗体.Form.RecordsetClone
rs.MoveFirst
Do Until rs.EOF
strSum = strSum & rs.Fields("书名") & ";"

rs.Fields("书籍编码") =null

rs.Fields("类别")=null


rs.MoveNext
Loop



Me.书名汇总= strSum
Set rs = Nothing

[此贴子已经被作者于2007-1-9 12:40:51编辑过]

7#
发表于 2007-1-9 20:43:00 | 只看该作者
子窗体的数据源是个不可更新的查询.
8#
 楼主| 发表于 2007-1-9 21:00:00 | 只看该作者
晕,我一时疏忽了,那个只是刘小军查询的例子,查询不可更新

在我的实例里面是可以更新的查询,代码应该怎么样改呢?
9#
发表于 2007-1-9 22:56:00 | 只看该作者
先将查询更改为可更新查询.然后用上次给你的代码(类似写法)循环取得null值.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-28 03:25 , Processed in 0.095091 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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