技術(shù) 點(diǎn)
- 技術(shù)
- 點(diǎn)
- V幣
- 點(diǎn)
- 積分
- 3662
|
15#
樓主 |
發(fā)表于 2022-6-11 17:48:32
|
只看該作者
問題完全解決
Private Sub Command29_Click()
CurrentDb.Execute "UPDATE 報(bào)表數(shù)據(jù)源表 SET 報(bào)表數(shù)據(jù)源表.印頁 = 0;"
Dim i, i3 As Integer
Dim n As Integer
Dim Intsz() As Integer
Dim strsql As String
Dim rst As Object
Dim ww, qq, 組別 As Long
nh = 6 '世代數(shù),
qq = nh '世代數(shù)變量,提高通用性
strsql = "SELECT Max(報(bào)表數(shù)據(jù)源表.頁) AS 頁之最大值 FROM 報(bào)表數(shù)據(jù)源表 GROUP BY Partition([世代],1,100," & qq & " ) HAVING (((Partition([世代], 1, 100," & qq & " )) <> False)) ORDER BY Partition([世代],1,100," & qq & ");"
Set rst = CurrentDb.OpenRecordset(strsql)
rst.MoveLast
rst.MoveFirst
n = rst.RecordCount
ReDim Intsz(1 To n)
For i = 1 To n
Intsz(i) = rst("頁之最大值") '給數(shù)組賦值
rst.MoveNext
Next i
Dim rs6 As New ADODB.Recordset
Dim I2 As Long
Dim ssql6 As String
Dim s, v, f As Integer
Dim x, 加組 As Integer
ssql6 = "select 世代,頁,印頁,轉(zhuǎn)下頁行 from 報(bào)表數(shù)據(jù)源表 ORDER BY 世代,頁,頁序 "
rs6.Open ssql6, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs6.MoveFirst
加頁 = 0
For I2 = 1 To CLng(rs6.RecordCount)
ww = rs6!世代
s = rs6!頁
v = rs6!轉(zhuǎn)下頁行
f = Int((ww - 1) / qq) '分組
If f = 組別 Then '同組
rs6!印頁 = s + sum
If f > 0 And s = Intsz(f + 1) And v > 0 Then
Intsz(f) = Intsz(f) + 1 '加頁賦值給數(shù)組 '
Else
' Intsz(f) = Intsz(f) '不加頁不變
End If
Else '下一組的第一條
sum = 0
組別 = Int((ww - 1) / qq)
For x = 1 To f
sum = sum + Intsz(x) '前面組累加數(shù)
Next
End If
rs6!印頁 = s + sum
rs6.Update
rs6.MoveNext
Next I2
rst.Close
Set rst = Nothing
rs6.Close
Set rs6 = Nothing
End Sub |
|