求救了,怎么也计算不对。急!!!

zbzk2008 2009-12-08 10:41:41
本来程序好好的,一切计算正常,结果改的,现在计算不正常了。即使改成原样,也计算不正常,关键找不到问题出在哪儿?

1、在表单中,设一数值类型的文本框,在运行时,一旦输入数量,让这个数量和一表中的某数值字段(A)相乘,结果存放在那个表中的另一字段(B)中。
2、现在问题是:输入数值后,另一表的那个字段B,还是0(默认值),即没有相乘。当再输一遍数值后,那儿B,就相乘了,得到应该的数据了。从这以后,就正常了。再重新进入程序,又重复上述过程。

不知问题出在哪儿??急。。。。
表单某输入文本框的valid代码如下:

-------------
ling1=thisform.编号1.Value
ling2=thisform.原料领入1.Value
SELECT shengchan
REPLACE 领入数量 WITH ling2*对应关系 FOR 对应编号=ling1
-------------

其中我曾在第二行的后面,加上
?ling1,ling2
wait""

来显示ling1,ling2的值来查看,结果显示正常。

shengchan表中的领入数量,就是上面所说的字段B,首先声明,对应关系的值不是0,FOR后面的条件是成立的。
我还曾经把
REPLACE 领入数量 WITH ling2*对应关系 FOR 对应编号=ling1
直接改成:
REPLACE 领入数量 WITH 100 FOR 对应编号=ling1

故障依旧。

后来曾经好过,也不知怎么好的,过了半天又这样了。


求救????!!!!!
...全文
99 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zbzk2008 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 apple_8180 的回复:]

REPLACE 领入数量 WITH ling2*对应关系 FOR 对应编号=ling1

之前加
Messagebox(transform(recno()))
看一下记录号

很有可能当前记录号不对
[/Quote]

按照你说的,经反复试验,确实是你说的问题。但不知怎么解决

实验结果如下:
1、第一次输入数值,鼠标离开后,显示记录是27(这就是错误的),然后点关闭的时候,又显示是36(好象总共35条记录)。

2、第二次输入数据,显示是18(这就对了),然后点关闭时,又显示36。以后永远是显示18了。除非关闭程序,重新运行

3、只要显示18,就对;显示27,就不对。

不解的地方如下:
1、为什么显示27??
2、如何解决???
3、REPLACE 领入数量 WITH ling2*对应关系 FOR 对应编号=ling1 后面是FOR的条件,与当前记录是多少有什么关系??
4、Messagebox(transform(recno())) 放在REPL 之前,也就是说显示一下当前记录号,这个意义不理解,管他当前记录号在哪呢?


请指教,谢谢。
十豆三 2009-12-08
  • 打赏
  • 举报
回复

REPLACE 领入数量 WITH ling2*对应关系 FOR 对应编号=ling1

之前加
Messagebox(transform(recno()))
看一下记录号

很有可能当前记录号不对
WWWWA 2009-12-08
  • 打赏
  • 举报
回复
OK,下午测试一下
zbzk2008 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wwwwb 的回复:]
上传你的表单、DBF到www.access911.net/csdn
,用WINRAR压缩
[/Quote]
OK.已上传。不知道能不能打开。
shengchangc.scx 中的[原料领入]的valid内容。
wwwwb 2009-12-08
  • 打赏
  • 举报
回复
上传你的表单、DBF到www.access911.net/csdn
,用WINRAR压缩
WWWWA 2009-12-08
  • 打赏
  • 举报
回复
测试了一下,确实是这样,呵呵,自己解决更好,结贴吧。
zbzk2008 2009-12-08
  • 打赏
  • 举报
回复
OK.多谢大家了。
十豆三 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jinjazzli 的回复:]
难道repl 语言后面的for不是针到全表吗????是针对set filt to 后的表吗??

你说对了
[/Quote]

没错。
jinjazzli 2009-12-08
  • 打赏
  • 举报
回复
难道repl 语言后面的for不是针到全表吗????是针对set filt to 后的表吗??

你说对了
zbzk2008 2009-12-08
  • 打赏
  • 举报
回复
我知道了。原来在执行下面时
SELECT shengchan
REPLACE 领入数量 WITH ling2*对应关系 FOR 对应编号=ling1

shengchan已经先执行了一条
set filt to
语句。

难道repl 语言后面的for不是针到全表吗????是针对set filt to 后的表吗??

那这样的话,我只要加上一条
SELECT shengchan
set filt to
REPLACE 领入数量 WITH ling2*对应关系 FOR 对应编号=ling1

就应该没问题了。

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧