当前位置:编程学习 > VB >>

求助,设计思路与代码,

我有一个这样的表及数据:

ID   keyword
1        a
2        b
3        c
4        d
5        e
6        f
7        g

我用VB6进行编程,我现在想对这keyword字段里的数据进行排列组合,现在只要求两个对象进行组合,我初步用for中嵌套for,主要代码如下:
    Dim TxtString As String
    Dim FirstStr As String
    Dim SecendStr As String
    Dim mrc As ADODB.Recordset
    Dim i, n As Integer
    Dim SQLtxt As String
    Dim SQLmsg As String
    SQLtxt = "select keyword from tb_Keyword" 
    Set mrc = ExecuteSQL(SQLtxt, SQLmsg)    'ExecuteSQL()函数执行SQL语句

    For i = 1 To mrc.RecordCount
        FirstStr = mrc.Fields(0).Value
        i = i + 1
        'mrc.MoveNext
        For n = 1 To mrc.RecordCount
            TxtString = FirstStr & mrc.Fields(0).Value
            mrc.MoveNext
        Next n
     mrc.movefirst
     Next i


结果是:aa,ab,ac,ad,ae,af,ag,n的循环时记录指针到了eof为true了,思维有些乱了,是不是要把mrc.fields()换成数组,又不知怎么思考了,请高手指定一下. 先把a到g取出赋值给数组,再慢慢组合吧
引用 1 楼 yiguangqiang88 的回复:
先把a到g取出赋值给数组,再慢慢组合吧

我只有这个方法。。 表1
ID   keyword
1 a
2 b
3 c
4 d
5 e
6 f
7 g
再建立同样的表2
ID   keyword
1 a
2 b
3 c
4 d
5 e
6 f
7 g

select 表1.keyword,表2.keyword from 表1,表2
' 这个语句产生一个组合, 7*7 的组合  n*n的组合
然后把
rs!表1.keyword & rs!表2.keyword  就是组合的结果. 楼上的又一个方法 这个用递归算法比较容易,网上有C的代码,你可以参考一下 一个SQL语句就可以搞定啊。

表的自连接啊。不需要再建一张一模一样的表。
补充:VB ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,