Office中国论坛/Access中国论坛
标题: 请教如何清空子窗体记录集的某个字段的值? [打印本页]
作者: rjacky 时间: 2007-1-9 17:49
标题: 请教如何清空子窗体记录集的某个字段的值?
如图,数据表形式子窗体里面有数条记录,之前已经请教过可以使用以下代码汇总合计里面"书名"字符串字段的值
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
现在想请教一下,如何用代码清空子窗体里面的这些记录的某个数字字段(如书籍编号)和文本字段(如类别)的内容?
[attach]22457[/attach]
[此贴子已经被作者于2007-1-9 10:39:32编辑过]
作者: 狼书生 时间: 2007-1-9 18:57
方法一:
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
作者: rjacky 时间: 2007-1-9 19:10
谢谢!
方法二是清空整个查询的字段,我只想清空当前子窗体查询结果的字段。
ado我不太懂,请问方法一也是清空整个查询的字段吗?
作者: 狼书生 时间: 2007-1-9 19:45
前面多定义一个字符串变量
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编辑过]
作者: 狼书生 时间: 2007-1-9 19:46
两种方法作用都一样的[em01]
作者: rjacky 时间: 2007-1-9 20:36
还是多谢你的解答,但是可能你还没有理解我的意思,引用控件的值作为条件这种方法并不是我希望的答案,不然我都不会给出之前操作记录集的代码了,
我希望直接操作子窗体的动态查询记录集,将里面所有记录的"书籍编号"和"类别"字段清空
我试过在原有的代码里面加上红色的部分,但是不成功会提示不能更新数据
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编辑过]
作者: Joe5525601 时间: 2007-1-9 20:43
子窗体的数据源是个不可更新的查询.
作者: rjacky 时间: 2007-1-9 21:00
晕,我一时疏忽了,那个只是刘小军查询的例子,查询不可更新
在我的实例里面是可以更新的查询,代码应该怎么样改呢?
作者: Joe5525601 时间: 2007-1-9 22:56
先将查询更改为可更新查询.然后用上次给你的代码(类似写法)循环取得null值.[attach]22543[/attach]
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |