主题:请问这个删除记录的代码错在哪
woolley
[专家分:10] 发布于 2010-04-16 15:15:00
a=val(thisform.text3.value)
if used('凭证管理')
select 凭证管理
else
use 凭证管理
endif
locate for 年=thisform.text1.value and 月=thisform.text2.value and 凭证号=a
delete
pack
想删除符合条件的记录,但是删不了,系统也不报错。
回复列表 (共5个回复)
沙发
DannyFox [专家分:420] 发布于 2010-04-16 16:55:00
或许没有定位成功呢。如果加两句看一下再找原因会好一些
a=val(thisform.text3.value)
if used('凭证管理')
select 凭证管理
else
use 凭证管理
endif
locate for 年=thisform.text1.value and 月=thisform.text2.value and 凭证号=a
if found()
delete
pack
else
?"没有找到记录"
endif
板凳
lbscyb [专家分:4780] 发布于 2010-04-16 23:47:00
_tally = 0
dele from 凭证管理 where 年=thisform.text1.value and 月=thisform.text2.value and 凭证号=a
if _tally <= 0
messageb("没有记录被删除!")
else
messageb("共" + alltrim(str(_tally)) + "条记录被删除!")
endif
3 楼
woolley [专家分:10] 发布于 2010-04-19 16:09:00
谢谢!确实是没有找到记录,但是我不明白,为什么会找不到呢?明明直接查看表可以看到。
4 楼
dbfox [专家分:490] 发布于 2010-04-19 16:14:00
关键是定位的条件是否符合,年,月,凭证号是否与你所看到的对应。从你的代码看,你的年,月是字符型,凭证号是数值型,数据表里的是这样吗? 另外,对于字符型字段,有时会出现一种情况,比如你的年是4位,而你的字段长度是5位,当你输入4位年份后,在第5位可能会有一个半双字节的看不见的字符,这样看到的和实际的值就不同了.在表单上的文本框里输入字符串时有时也会出现类似的情况.
5 楼
woolley [专家分:10] 发布于 2010-04-21 12:03:00
谢谢,我把文本框InputMask属性设置为999就可以了。
我来回复