主题:请教GRID的批量修改问题
xm7050432
[专家分:180] 发布于 2009-08-17 11:08:00
做了一个查询,查询结果用临时表在一个grid显示。
现比如,查询如下结果,表 jfd的字段a的值为空的显示,难后要把同一个值填入这些为空的。
我编的程序如下:
jsr=thisform.combo3.Value(就是字段a)
dddd=CTOD(thisform.combo4.Value) (要填入的值,是日期)
lsby=thisform.grid1.RecordSource
SELECT jfd
REPLACE ALL &jsr WITH dddd FOR &lsby.单号=jfd.单号
现在一直提示 找不到变量‘lsby单号’(laby和单号中间没有点)
请教老师们是什么原因。
或者如果要达到我的目的,程序该如何写最简单。谢谢。
最后更新于:2009-08-17 11:11:00
回复列表 (共6个回复)
沙发
sywzs [专家分:5650] 发布于 2009-08-17 11:20:00
REPLACE ALL &jsr WITH ddd FOR &lsby.单号=jfd.单号
改为
REPLACE &jsr WITH dddd FOR &lsby..单号=jfd.单号
找不到变量‘lsby单号’的原因是少了一个点,在&lsby的后面是两个点(..),第一个点表示宏替换结束。另外,此处用 FOR 就不要再使用 ALL 。
板凳
xm7050432 [专家分:180] 发布于 2009-08-17 15:19:00
[quote]REPLACE ALL &jsr WITH ddd FOR &lsby.单号=jfd.单号
改为
REPLACE &jsr WITH dddd FOR &lsby..单号=jfd.单号
找不到变量‘lsby单号’的原因是少了一个点,在&lsby的后面是两个点(..),第一个点表示宏替换结束。另外,此处用 FOR 就不要再使用 ALL 。[/quote]
谢谢老师,原来是要2个点。
按老师的语句,还是有点小问题,提醒缺少表达式,不知道是哪里出了问题。
3 楼
homayzh [专家分:7040] 发布于 2009-08-17 17:06:00
两个点,第一个点的意思是表示 你的&宏替换的结束,
缺少表达式,你把程序挂起来,就成看到是哪一行出错了,这样找问题就比较容易
4 楼
xm7050432 [专家分:180] 发布于 2009-08-17 17:13:00
缺少表达式找到问题了,是我在调试的时候把一条命令暂时屏蔽了。
但是发现好像没有改变值鄂,奇怪。
还有我grid中经常有好几条记录。
不用all,也不用循环能达到目的吗?
5 楼
xm7050432 [专家分:180] 发布于 2009-08-17 17:15:00
[quote]两个点,第一个点的意思是表示 你的&宏替换的结束,
缺少表达式,你把程序挂起来,就成看到是哪一行出错了,这样找问题就比较容易[/quote]
谢谢你的关注,挂起程序我还是懂的。我的另一个问题帮我看看哦。
6 楼
xm7050432 [专家分:180] 发布于 2009-08-18 08:55:00
谁帮我下,后来想用update命令,但是又只能用于两个表之间的更新。
临时表又不能修改,用不了。
replace在这里要怎么写,怎么我一直都不会用dddd的值覆盖jfd。
我来回复