設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

12
返回列表 發(fā)新帖
樓主: 付謙
打印 上一主題 下一主題

[報(bào)表] 用數(shù)組碰到問題

[復(fù)制鏈接]
11#
 樓主| 發(fā)表于 2022-6-8 20:46:34 | 只看該作者
本帖最后由 付謙 于 2022-6-8 21:11 編輯

“組別”字段無關(guān)緊要,測試二 f = Int((ww - 1) / 6)語句就是分組用的,0為第一組,1為第二組,2為第三組,類推分組最大頁累加可用循環(huán)解決 For i = 1 To f        'f是組別
                                        sum = sum + Intsz(i)
                                         Next
下面這段 也可用循環(huán)解決
       If f = 0 Then
              kk1 = 0
           ElseIf f = 1 Then
               kk1 = Intsz(1)
           ElseIf f = 2 Then
               kk1 = Intsz(1) + Intsz(2)
           ElseIf f = 3 Then
               kk1 = Intsz(1) + Intsz(2) + Intsz(3)
           ElseIf f = 4 Then
               kk1 = Intsz(1) + Intsz(2) + Intsz(3) + Intsz(4)
         End If

現(xiàn)困擾我的是如何組合和加頁的問題,


12#
 樓主| 發(fā)表于 2022-6-8 21:18:23 | 只看該作者
本帖最后由 付謙 于 2022-6-8 21:41 編輯

現(xiàn)困擾我的是如何組合和加頁的問題,
13#
 樓主| 發(fā)表于 2022-6-8 21:20:59 | 只看該作者
本帖最后由 付謙 于 2022-6-8 21:40 編輯

“組別”字段無關(guān)緊要
14#
發(fā)表于 2022-6-10 02:33:32 | 只看該作者
付謙 發(fā)表于 2022-6-8 20:46
“組別”字段無關(guān)緊要,測試二 f = Int((ww - 1) / 6)語句就是分組用的,0為第一組,1為第二組,2為第三組,類 ...

試試使用遞歸唄。
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
16#
 樓主| 發(fā)表于 2022-6-11 19:05:42 | 只看該作者
付謙 發(fā)表于 2022-6-11 17:48
問題完全解決

Private Sub Command29_Click()

加頁=0    加組 多余
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機(jī)版|Office中國/Access中國 ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2024-10-23 08:25 , Processed in 0.093822 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表