在多表的情况下,能不能用VFP式的过程式的语句(用移动某个表的记录指针的)来实现一个个的寻找(用SKIP等)?(我只有10分了)
请教:
功能: 在表单中实现简单查询(已用SQL解决,但我还是想试一下能不能用VFP解决?)
表单中有两个表(库中的和自由表都行,字段和类型完全相同,),与字段数相同的编辑框(用其中一个接受查询依据的字段),一个按钮执行查询.
已在数据环境设计器中把两个表拖放到表单中了
我遇到的问题是: 在多表的情况下,能不能用VFP式的过程式的语句(用移动某个表的记录指针的)来实现一个个的寻找(用SKIP等),找到后再复制或显示到另一表中? 这样就要事先变换工作区,要怎样变换呢? 我的代码出错,说是只能以独占方式打开,有时不出错了,但是,却无反映
代码如下:(按钮事件)
*set exclusive on
*close all
*open database tableQuery
select queried
select queryto
delete all
pack
append blank
replace aa with "dfdf", bb with 0.00, cc with "dfdf"
select queried
do while !eof()
thisform.refresh
if thisform.text1.value=queried.aa
select queryto
*thisform.grdQuerytable.column1.text1.value=thisform.grdIndep.column1.text1.value
*thisform.grdQuerytable.column2.text1.value=thisform.grdIndep.column2.text1.value
*thisform.grdQuerytable.column3.text1.value=thisform.grdIndep.column3.text1.value
replace aa with queried.aa
replace bb with queried.bb
replace cc with queried.cc
thisform.refresh
endif
select queried
skip
enddo
问题点数:10、回复次数:4Top
1 楼apple_8180(十豆三)回复于 2006-03-04 15:41:13 得分 0
*表单的Load事件:
SET EXCLUSIVE ON
*按钮事件:
SELECT queryto
ZAP
APPEND BLANK
REPLACE aa WITH "dfdf", bb WITH 0.00, cc WITH "dfdf"
SELECT queried
DO WHILE !EOF()
THISFORM.REFRESH
IF THISFORM.text1.VALUE=queried.aa
SELECT queryto
REPLACE aa WITH queried.aa,bb WITH queried.bb,cc WITH queried.cc
THISFORM.REFRESH
ENDIF
SELECT queried
SKIP
ENDDOTop
2 楼apple_8180(十豆三)回复于 2006-03-04 15:43:36 得分 0
不过感觉你的按钮事件有问题,
select queryto
delete all
pack
append blank
replace aa with "dfdf", bb with 0.00, cc with "dfdf"
这几句执行后,表queryto中只有一条记录,
然后下面的循环中反复REPLACE,替来替去,只替换了表queryto中的一条记录。
还像这样不对吧。
Top
3 楼grub2linux(VC6入门者)回复于 2006-03-04 19:20:16 得分 0
我运行你代码,就可!
搞了半天! 原来就是VFP 的毛病!
你我代码的不同只在
---
delete all
pack
--
zap
照理是一样的,但VFP用前者就使表全变白色!用后者就可以!
我晕!
Top
4 楼grub2linux(VC6入门者)回复于 2006-03-04 19:33:44 得分 0
另外,请教一下:
我的这个功能,最好用什么方法实现?
那个查询结果的表,不用表可以吗? 比如用查询或CURSOR或视图?
我看到可把用数据环境拖放入表单中的表的属性里的源类型中有查询(.QPR)
但不知怎么用?
另我用以下SQL代码(用了数组)
但如查不到仍然会输入.F.,0等等
怎么使它不输入呢?
Top




