简单说就是将记录分三列排。
一般是一条记录一行,现在要三条记录一行。
我的问题是在 [字般] mod 3 =0 时出了问题,先是将所有 mod3=0的记录排了一遍,这是多余的,如何消除?
在mod 3= 负数时,没有按顺序排列,不知道问题出在哪?作者: Henry D. Sy 时间: 2009-1-11 23:28
一般是一条记录一行,现在要三条记录一行。
还是看不明白,你能不能将要得到的结果贴张图出来作者: Henry D. Sy 时间: 2009-1-12 08:58
明白了
试试用记录集,也许会简单点。作者: kelind 时间: 2009-1-12 23:18
原帖由 Henry D. Sy 于 2009-1-12 08:58 发表
明白了
试试用记录集,也许会简单点。
没明白,怎么用?实在没头绪。请赐教。作者: Henry D. Sy 时间: 2009-1-13 07:32
建一个您想要的结果表(空表)
然后,用ado打开原表,循环取出记录
在打开结果表,循环增加记录。作者: Henry D. Sy 时间: 2009-1-13 22:18
假设结果表名称为 A
Dim rs As New ADODB.Recordset
Dim rst As New ADODB.Recordset
Dim strSQL As String
Dim lngArray() As Long
Dim i As Long, j As Integer
Dim k As Integer
strSQL = "select t_id from tb_out where t_id mod 3=0 order by t_id"
With rs
.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockReadOnly
ReDim lngArray(.RecordCount - 1) As Long
For i = 0 To .RecordCount - 1
lngArray(i) = .Fields(0)
.MoveNext
Next
.Close
rst.Open "A", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
For i = 0 To UBound(lngArray)
strSQL = "select * from tb_out where t_id between " & lngArray(i) & _
" and " & lngArray(i) & "+2"
.Open strSQL, CurrentProject.Connection, adOpenKeyset, _
adLockReadOnly
rst.AddNew
Do While Not .EOF
For j = 0 To .Fields.Count - 1
rst.Fields(j + k) = .Fields(j)
Next
.MoveNext
k = k + .Fields.Count
Loop
.Close
rst.UpdateBatch
k = 0
Next
End With
rst.Close
Set rst = Nothing
Set rs = Nothing作者: kelind 时间: 2009-1-14 16:28
版主真牛X,几个地方没有完全理解,请指教:
1, strSQL = "select t_id from tb_out where t_id mod 3=0 order by t_id"
为什么只 mod 3 =0 mod 3 =1, =2 怎么处理的?
2, For i = 0 To UBound(lngArray) UBound什么函数?
3, rst.Fields(j + k) = .Fields(j)
Next
.MoveNext
k = k + .Fields.Count
Loop
.Close
rst.UpdateBatch
k = 0
K 想了半天没明白.
能否把代码解释一下.
要求太苛刻了点.
谢谢.作者: Henry D. Sy 时间: 2009-1-14 20:25
1, strSQL = "select t_id from tb_out where t_id mod 3=0 order by t_id"
为什么只 mod 3 =0 mod 3 =1, =2 怎么处理的?
只要把关键的记录提取出来就可以了,另两个记录可以用条件来提取。
2, For i = 0 To UBound(lngArray) UBound什么函数?
返回一个 Long 型数据,其值为指定的数组维可用的最大下标。
3, rst.Fields(j + k) = .Fields(j)
这里的k主要起到当记录集移到下一个记录时,(按你的要求应该是将第二个记录的第一个字段添加到新表第一条记录的第五个字段)
也就是,第二条记录索引加上第一条记录的字段数,作者: kelind 时间: 2009-1-14 21:02
谢谢!好象是懂了,但我还是写不出来。作者: Henry D. Sy 时间: 2009-1-14 21:17