回 帖 发 新 帖 刷新版面

主题:请教GRID的批量修改问题

做了一个查询,查询结果用临时表在一个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和单号中间没有点)
请教老师们是什么原因。  

或者如果要达到我的目的,程序该如何写最简单。谢谢。

回复列表 (共6个回复)

沙发

REPLACE ALL &jsr WITH ddd FOR &lsby.单号=jfd.单号
改为
REPLACE &jsr WITH dddd FOR &lsby..单号=jfd.单号
找不到变量‘lsby单号’的原因是少了一个点,在&lsby的后面是两个点(..),第一个点表示宏替换结束。另外,此处用 FOR 就不要再使用 ALL 。

板凳

[quote]REPLACE ALL &jsr WITH ddd FOR &lsby.单号=jfd.单号
改为
REPLACE &jsr WITH dddd FOR &lsby..单号=jfd.单号
找不到变量‘lsby单号’的原因是少了一个点,在&lsby的后面是两个点(..),第一个点表示宏替换结束。另外,此处用 FOR 就不要再使用 ALL 。[/quote]
谢谢老师,原来是要2个点。
按老师的语句,还是有点小问题,提醒缺少表达式,不知道是哪里出了问题。

3 楼

两个点,第一个点的意思是表示 你的&宏替换的结束,
缺少表达式,你把程序挂起来,就成看到是哪一行出错了,这样找问题就比较容易

4 楼

缺少表达式找到问题了,是我在调试的时候把一条命令暂时屏蔽了。
但是发现好像没有改变值鄂,奇怪。
还有我grid中经常有好几条记录。
不用all,也不用循环能达到目的吗?

5 楼

[quote]两个点,第一个点的意思是表示 你的&宏替换的结束,
缺少表达式,你把程序挂起来,就成看到是哪一行出错了,这样找问题就比较容易[/quote]
谢谢你的关注,挂起程序我还是懂的。我的另一个问题帮我看看哦。

6 楼

谁帮我下,后来想用update命令,但是又只能用于两个表之间的更新。
临时表又不能修改,用不了。
replace在这里要怎么写,怎么我一直都不会用dddd的值覆盖jfd。

我来回复

您尚未登录,请登录后再回复。点此登录或注册