求助,设计思路与代码,
我有一个这样的表及数据: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
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 , 基础类