Office中国论坛/Access中国论坛

标题: 询 批量修改窗体数据的方法 [打印本页]

作者: parbe    时间: 2012-4-21 13:56
标题: 询 批量修改窗体数据的方法

如下图, 如果要把窗体所显示的资料(筛选过后的), 将"物控回复"一栏的所有日期更新成"需求日期"的前一天, 不知这样批量修改的代码要怎么写. 有谁可以帮帮忙吗? 不胜感激!
(目前我是用Me.Recordset.Move的方法移动到每一笔记录上进行修改的, 可这样的话会导致资料库迅速的膨胀)
[attach]49046[/attach]
作者: todaynew    时间: 2012-4-21 17:00
dim ssql as string
ssql="update 阁下的数据表名称 set 物控回复=#dateadd('d',-1,需求日期) where 阁下的筛选条件"
docmd.runsql ssql
作者: parbe    时间: 2012-4-21 22:18
谢谢Todaynew, 这个我也想过,也没想通, 因为用户是直接在窗体上进行筛选的, 要怎么样将这个筛选条件写入到代码中呢? 这个窗体的条件可能是任意列,同时也可能是多选项. 我对这个窗体的筛选怎样体现在代码中有点困惑.
作者: todaynew    时间: 2012-4-22 08:23
本帖最后由 todaynew 于 2012-4-22 08:30 编辑
parbe 发表于 2012-4-21 22:18
谢谢Todaynew, 这个我也想过,也没想通, 因为用户是直接在窗体上进行筛选的, 要怎么样将这个筛选条件写入到代 ...


dim ssql as string
dim strwh as string

strwh=nz(me.阁下的子窗体控件名称.form.filter,"True")

ssql="update 阁下的数据表名称 set 物控回复=#dateadd('d',-1,需求日期) where " & strwh
docmd.runsql ssql

请参见:http://www.office-cn.net/forum.p ... hlight=%C3%C5%B5%C0
作者: parbe    时间: 2012-4-22 21:32
谢谢指点, 但我还是无法直接调用, 改了半天, 变成如下的代码, 虽然最后结果可行,但感觉自己好像走了很多弯路, 没办法谁让自己是菜鸟呢, 不知可否再指点一下?  附上档案.
d = Len(Me.RecordSource)
'抓取数据源的筛选字符 用于UPDATE筛选
e = InStr(1, Me.RecordSource, "where", 1)
strsl = Right(Me.RecordSource, d - e - 5)
'抓取窗体的筛选值 用于UPDATE筛选
strwh = Replace(Nz(Form.Filter, "True"), "[物料回复].", "")
ssql = "update 物料回复All set 物控回复=需求日期,[OK?]=false,交期再确认=true,[Record]=Record & 物控回复 &'" & b & "' where (" & strsl & ") and " & strwh
docmd.runsql ssql






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3