我用VB做了个小程序--------VB+ACCESS
第一步:先从ACCESS数据库Test.mdb中的Table1中查询出一个数据项,然后把这个数据项放进Text1控件里,
第二步:是进行第二次查询--调用Text1中的值作为这次查询的条件,从Table中查询另一条记录你们看发生了什么???------第二次查询没有返回值!!!
我可以肯定确定以及一定!!代码和逻辑还有表中记录没有错误!!!!!我进行了N次实验,最后确诊为:::VB中调用控件中的值作为查询条件是不被执行的,尽管可以把那个值传过来.
但也有人说是我的ADO需要升级,正在争议中.
高手们也来给点看法吧,真诚期待中............
第一步:先从ACCESS数据库Test.mdb中的Table1中查询出一个数据项,然后把这个数据项放进Text1控件里,
第二步:是进行第二次查询--调用Text1中的值作为这次查询的条件,从Table中查询另一条记录你们看发生了什么???------第二次查询没有返回值!!!
我可以肯定确定以及一定!!代码和逻辑还有表中记录没有错误!!!!!我进行了N次实验,最后确诊为:::VB中调用控件中的值作为查询条件是不被执行的,尽管可以把那个值传过来.
但也有人说是我的ADO需要升级,正在争议中.
高手们也来给点看法吧,真诚期待中............
第一步:
conn1.open constr'打开数据库连接
Rs1.Open "select CPS_ID from checks where CK_ID='1001'", Conn1, adOpenKeyset, adLockOptimistic '查询出数据项
text1.text=rs1.getstring'把查询到的结果附给text1
第二步:
conn2.open constr'打开另一个连接
rs2.open "select * from chanpin where CP_ID='" & text1.text & "'",Conn1, adOpenKeyset, adLockOptimistic '查询出数据集 通过调用text1中的值到此为止一切正常,而且也有传过来TEXT1中的值但到了最后这步,却发现其实第二步查询并没有返回记录集.
就是这样了
代码在发上来时省略了一些与此无关的,
请大家看看啊
你确定 表名字没有错???
你改成checks表看看
我确定啊
不管我用哪个表都是不行
但我把参数直接改成CHANPIN表中存在的ID进行查询,就可以查出结果集啊
换下面这句试试:
rs2.open "select * from chanpin where CP_ID='" & trim(replace$(text1.text,vbnullchar,vbnullstring)) & "'",Conn1, adOpenKeyset若text1.text确定是数值的话,用Val(text1.text)也行,当然ID也不能有前导"0"
Text2.Text = rs1!cps_id '.GetString -----这里修改了
conn2.Open str '打开新的连接,进行第二次查询,调用了Text2.text
rs2.Open "select CP_STORE from chanpin1 where CP_ID='" & Text2.Text & "'", conn2, adOpenKeyset, adLockOptimistic
Text3.Text = rs2!cp_store '.GetString -----这里修改了'把查询出的CP_STORE存在Text3中
将 Recordset 作为字符串返回。
说明保存到字符串的数据为行数据而非纲要数据,因此不能使用该字符串重新打开记录集。
很厉害那!!!!
谢谢你啊!
呵呵!
高手啊!
不过为什么不能按照的的方法解决呢???
我怎么都想不明白呢.........
将 Recordset 作为字符串返回。 ---注意这里的Recordset,意思是把整个记录集作为字符串返回,因为你的返回字段都是一个,所以看不出什么问题,如果选择多个字段,那么返回的内容就包含多个字段了
说明保存到字符串的数据为行数据而非纲要数据,因此不能使用该字符串重新打开记录集。----注意这里的不能使用该字符串重新打开记录集!!!
我为什么看不懂.
我想学VB.
可以先下一个VB6.0自学么?