vfp中如何在数据表中精确查找到所要的记录

cooldady 2014-02-26 10:58:57
原料.dbf中有 记录1(货物名称:棕色B 数量:12)记录2(货物名称:棕色 数量:25),
use 原料
go top
locate for 货物名称="棕色"
if found()
repl 数量 with 数量+10
endif
其结果是把记录1的数量改成:22
而不是把记录2的数量改成:35
请教高手,如何精确查找到所需要的记录?
...全文
1441 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
十月鹰飞 2014-03-01
  • 打赏
  • 举报
回复
update a set 数量=数量+10 where alltrim(货物名称)=="粽色"
十豆三 2014-02-27
  • 打赏
  • 举报
回复
货物名称="棕色" 改为 Alltrim(货物名称)=="棕色"
lzw_0736 2014-02-27
  • 打赏
  • 举报
回复
use 原料 go top locate for 货物名称="棕色 "&&棕色後面加一個空格 if found() repl 数量 with 数量+10 endif
lygcw9602 2014-02-27
  • 打赏
  • 举报
回复
这行代码有误: UPDATE 原材料 SET 数量 with 数量+val(thisform.txt数量.value) WHERE alltrim(货物名称)==alltrim(thisform.txt货物名称.value) 改为 UPDATE 原材料 SET 数量=数量+val(thisform.txt数量.value) WHERE alltrim(货物名称)==alltrim(thisform.txt货物名称.value)
lygcw9602 2014-02-27
  • 打赏
  • 举报
回复
你的代码可以这么写:
SELECT * FROM 原材料 WHERE alltrim(货物名称)==alltrim(thisform.txt货物名称.value) INTO CURSOR T && 该条代码的意思是:是否有输入的颜色的商品
IF _TALLY=0 &&如果没找到输入的颜色的商品,则添加记录
   INSERT INTO 原材料 (货物名称,规格,单位,数量) VALUES (alltrim(thisform.txt货物名称.value),alltrim(thisform.txt规格.value),alltrim(thisform.txt单位.value),val(thisform.txt数量.value))
ELSE
   UPDATE 原材料 SET 数量 with 数量+val(thisform.txt数量.value) WHERE alltrim(货物名称)==alltrim(thisform.txt货物名称.value)
   messagebox(货物名称+"已成功添加到原料库!")
ENDIF
cooldady 2014-02-26
  • 打赏
  • 举报
回复
use 原材料.dbf go top locate for alltrim(货物名称)==alltrim(thisform.txt货物名称.value) /*只改此句就OK*/ if .not. found() append blank repl 原材料.货物名称 with alltrim(thisform.txt货物名称.value) repl 原材料.规格 with alltrim(thisform.txt规格.value) repl 原材料.单位 with alltrim(thisform.txt单位.value) repl 原材料.数量 with val(alltrim(thisform.txt数量.value)) messagebox(货物名称+"已成功新增到原料库!") else repl 原材料.数量 with 原材料.数量+val(alltrim(thisform.txt数量.value)) messagebox(货物名称+"已成功添加到原料库!") endif 谢谢提醒 ,真正的高手,一句话就解决了。
cooldady 2014-02-26
  • 打赏
  • 举报
回复
use 原材料.dbf go top locate for 货物名称=alltrim(thisform.txt货物名称.value) if .not. found() append blank repl 原材料.货物名称 with alltrim(thisform.txt货物名称.value) repl 原材料.规格 with alltrim(thisform.txt规格.value) repl 原材料.单位 with alltrim(thisform.txt单位.value) repl 原材料.数量 with val(alltrim(thisform.txt数量.value)) messagebox(货物名称+"已成功新增到原料库!") else repl 原材料.数量 with 原材料.数量+val(alltrim(thisform.txt数量.value)) messagebox(货物名称+"已成功添加到原料库!") endif 这是我的原程序,因为货物名称是由操作员输入的,有可能是新增的,假设棕色,在原材料中没有,需要添加,怎么办?
lygcw9602 2014-02-26
  • 打赏
  • 举报
回复
use 原料 repl 数量 with 数量+10 for ALLTRIM(货物名称)=="棕色" 试试

2,727

社区成员

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

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