Office中国论坛/Access中国论坛
标题:
[求助]如何将列表框某列动态记录集读取出来(转了很多编程社区,希望在这里能得到答
[打印本页]
作者:
coolbug
时间:
2006-11-13 22:09
标题:
[求助]如何将列表框某列动态记录集读取出来(转了很多编程社区,希望在这里能得到答
列表框内容是由不同条件查询得来,结果是动态的,能否直接提取出当前列表框某列所有行的数据作为一个记录集和另一个表做查询,并将查询结果显示在一个子窗体中。如利用一定条件查出某段日期间某人的订单号记录显示在列表框中,然后按另外按钮将这些所有查出的订单号对应的订货条目显示在一个子窗体中。虽然按原来查询订单号的条件也可以另做查询给子窗体,但如果外部条件变化很多就非常之麻烦,能否直接将当前列表框显示的内容象利用一个虚拟的表一样和另一个表做查询呢?望高人赐教。
[attach]21507[/attach]
上传了一个示例文件,说明见下面帖子中所述。
我想是否可以在内存中建立一个虚拟的表,将列表框中数据逐行读入这个表,读完后将这个表和另一个表做查询,是否可以,如何写代码。
[此贴子已经被作者于2006-11-14 13:07:44编辑过]
作者:
fan0217
时间:
2006-11-13 23:17
不太明白。
既然列表框的内容是动态改变的,就可以捕捉到该SQL查询语句,既然获取了查询语句,那其他的又是什么难事呢。
如果我理解有无误,请附上例子。
作者:
coolbug
时间:
2006-11-14 02:00
你好,谢谢答复。如果捕捉原来的SQL语句应该可以,但原来的SQL是带条件的,如果我在查询刷新列表框后,不改变任何控件里的值,应该是得出相同的结果,但如果我查询后更改了控件里的值,(比如仅仅更改文本框里的数据,不再做其他任何查询刷新列表框的动作),这时捕捉的SQL语句就会按照新的条件运行,和列表框内容就不一致了。我的目的是怎样能直接将当前列表框整列数据读出做为新查询的依据。不通过捕捉列表框rowsource的SQL的方法。比如listbox.column(0),一次只能读出一个值,怎样能直接读出所有的值呢?
作者:
coolbug
时间:
2006-11-14 02:38
老大们,例子传上来了,在这个查询窗体中,左边的listbox根据查询条件不同得出不同结果,点击左边的listbox,在右边显示该行相关记录。现在我想通过点击中间那个“查看左列所有订单详情”的按钮让左边当前列表框所有订单对应的信息都在右边listbox出现,不要通过捕捉左边listbox的SQL的方法,因为上面控件的值会影响结果。请问这个按钮语句该怎样写?[attach]21488[/attach]
作者:
qlm
时间:
2006-11-14 05:10
Private Sub Command13_Click()
[Text10].RowSource = "SELECT POTAB.订单号, POCONT.品名, POCONT.描述, POCONT.数量, POCONT.交货日期 FROM POTAB INNER JOIN POCONT ON POTAB.订单号 = POCONT.订单号 WHERE (((POTAB.订单号) Like [Forms]![FORM]![Text0] & '*') AND ((POTAB.下单人) Like [Forms]![FORM]![Text2] & '*') AND ((POTAB.下单日期) Between IIf(IsNull([Forms]![FORM]![Text4]),#1/1/1900#,[Forms]![Form]![Text4]) And IIf(IsNull([Forms]![FORM]![Text6]),#1/1/2100#,[Forms]![Form]![Text6])));"
End Sub
作者:
coolbug
时间:
2006-11-14 05:40
谢谢qlm朋友的解答,但是和我上面说的那样,这个方法仍然相当于采用了引用左边列表框的SQL,在一定条件下可以完成查询,但是如果我们点击上面查询按钮后,再将几个文本框中随便输入一些数据,这时再运行中间按钮就会按新的条件查询了,没有按照左边列表框的内容输出,就是说上面文本框会影响右边输出的结果,我希望这个查询只按左边的列表框即时生成的记录进行,有什么方法读出左边列表框的即时记录呢?
作者:
wuaza
时间:
2006-11-14 16:45
你把属性中的行来源去掉看看。让text8的行来源仅随查询按钮的点击而变化,这样当不点击查询按钮时就不会自动获取上面文本框的值了。
作者:
Joe5525601
时间:
2006-11-14 17:21
[attach]21497[/attach]
作者:
coolbug
时间:
2006-11-14 20:06
以下是引用
wuaza
在2006-11-14 8:45:00的发言:
你把属性中的行来源去掉看看。让text8的行来源仅随查询按钮的点击而变化,这样当不点击查询按钮时就不会自动获取上面文本框的值了。
本来程序中就是按点击按钮来确定行来源的,这个和查询列表框记录集没关系。
上面朋友的附件把我单独查询的按钮去掉了,把两个查询集中在一个查询按钮里了,这样只能同时显示,可是我并不是要每个查询都同时对两个列表框做计算啊,一是没必要,二是浪费系统资源。难道真的没办法直接读列表框记录集吗?本来觉得不难,只是我不会而已,看来这个的确算是难题了。
作者:
coolbug
时间:
2006-11-17 07:07
极端郁闷,虽然自己摸索出一个方法,但竟然这里没人能给出个解答
作者:
qlm
时间:
2006-11-22 05:53
头很晕,理解不了你的问题
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3