For i = 0 To 34 
                    If i <= 8 Then
                        If i <> 4 Then
                            Text1(i) = CH_STR(rstPB.Fields(i).Value)
                        Else
                            Combo1(i).ListIndex = FindComboListIndex(CH_STR(rstPB.Fields(i).Value), Combo1(i))
                        End If
                    ElseIf i >= 12 Then
                        If (i > 14 And i < 19) Then
                            If i Mod 2 <> 0 Then
                                MB(i) = Format(CH_STR(rstPB.Fields(i - 3).Value), "yyyy/mm/dd")
                               
                            ElseIf i = 16 Then
                                Me.Text1(19).Text = CH_STR(rstPB.Fields(i).Value)
                                MB(i) = Format(CH_STR(rstPB.Fields(i - 3).Value), "hh:mm")
                            Else
                            MB(i) = Format(CH_STR(rstPB.Fields(i - 3).Value), "hh:mm")
                            End If
                         ElseIf i = 21 Or i = 26 Or i = 27 Or i = 28 Or i = 29 Or i = 23 Or i = 36 Then 'X+X
                            Check1(i).Value = IIf(rstPB.Fields(i).Value = True, 1, 0)
                         ElseIf i = 25 Then
                            MB(i) = CH_STR(rstPB.Fields(i).Value)
                         ElseIf i = 22 Then
                            Text1(i + 3) = CH_STR(rstPB.Fields(i).Value)
                         ElseIf i >= 30 And i <= 33 Then
                            Text1(i) = CH_STR(rstPB.Fields(i).Value)
                        ElseIf i = 19 Then
                            Text1(22) = CH_STR(rstPB.Fields(i).Value)
                        ElseIf i = 37 Then
                            Text1(i) = CH_STR(rstPB.Fields(i).Value)

                        ElseIf i = 24 Then                           
                           If CH_STR(rstPB.Fields(i).Value) = "外觀件" Then
                               Me.Option1(1).Value = True
                            Else
                                Me.Option1(0).Value = True
                            End If
                        ElseIf i = 34 Then
                            strCode = Trim(rstPB.Fields(i).Value)
                        Else
                            Text1(i) = CH_STR(rstPB.Fields(i - 3).Value)
                        End If
                    
                    End If
                    
 
            Next 以上是報表原有代碼,現需要增加2個i=36,i=37
如果我在前面 For i = 0 To 34 改為 for i=0 to 37  
但是因為沒有35,所以會報錯。
請問下怎樣修改? 
紅色為我增加后的。

解决方案 »

  1.   

        For i = 0 To 34
            If i <= 8 Then
                If i <> 4 Then
                    Text1(i) = CH_STR(rstPB.Fields(i).Value)
                Else
                    Combo1(i).ListIndex = FindComboListIndex(CH_STR(rstPB.Fields(i).Value), Combo1(i))
                End If
            ElseIf i >= 12 Then
                If (i > 14 And i < 19) Then
                    If i Mod 2 <> 0 Then
                        MB(i) = Format(CH_STR(rstPB.Fields(i - 3).Value), "yyyy/mm/dd")
                    ElseIf i = 16 Then
                        Me.Text1(19).Text = CH_STR(rstPB.Fields(i).Value)
                        MB(i) = Format(CH_STR(rstPB.Fields(i - 3).Value), "hh:mm")
                    Else
                        MB(i) = Format(CH_STR(rstPB.Fields(i - 3).Value), "hh:mm")
                    End If
                ElseIf i = 21 Or i = 26 Or i = 27 Or i = 28 Or i = 29 Or i = 23 Or i = 36 Then 'X+X
                    Check1(i).Value = IIf(rstPB.Fields(i).Value = True, 1, 0)
                ElseIf i = 25 Then
                    MB(i) = CH_STR(rstPB.Fields(i).Value)
                ElseIf i = 22 Then
                    Text1(i + 3) = CH_STR(rstPB.Fields(i).Value)
                ElseIf i >= 30 And i <= 33 Then
                    Text1(i) = CH_STR(rstPB.Fields(i).Value)
                ElseIf i = 19 Then
                    Text1(22) = CH_STR(rstPB.Fields(i).Value)
                ElseIf i = 37 Then
                    Text1(i) = CH_STR(rstPB.Fields(i).Value)
                ElseIf i = 24 Then
                    If CH_STR(rstPB.Fields(i).Value) = "外觀件" Then
                        Me.Option1(1).Value = True
                    Else
                        Me.Option1(0).Value = True
                    End If
                ElseIf i = 34 Then
                    strCode = Trim(rstPB.Fields(i).Value)
                ElseIf i = 35 Then
                
                Else
                    Text1(i) = CH_STR(rstPB.Fields(i - 3).Value)
                End If
            End If
        Next i
      

  2.   

        For i = 0 To 34
            If i <= 8 Then
                If i <> 4 Then
                    Text1(i) = CH_STR(rstPB.Fields(i).Value)
                Else
                    Combo1(i).ListIndex = FindComboListIndex(CH_STR(rstPB.Fields(i).Value), Combo1(i))
                End If
            ElseIf i >= 12 Then
                If (i > 14 And i < 19) Then
                    If i Mod 2 <> 0 Then
                        MB(i) = Format(CH_STR(rstPB.Fields(i - 3).Value), "yyyy/mm/dd")
                    ElseIf i = 16 Then
                        Me.Text1(19).Text = CH_STR(rstPB.Fields(i).Value)
                        MB(i) = Format(CH_STR(rstPB.Fields(i - 3).Value), "hh:mm")
                    Else
                        MB(i) = Format(CH_STR(rstPB.Fields(i - 3).Value), "hh:mm")
                    End If
                ElseIf i = 21 Or i = 26 Or i = 27 Or i = 28 Or i = 29 Or i = 23 Or i = 36 Then 'X+X
                    Check1(i).Value = IIf(rstPB.Fields(i).Value = True, 1, 0)
                ElseIf i = 25 Then
                    MB(i) = CH_STR(rstPB.Fields(i).Value)
                ElseIf i = 22 Then
                    Text1(i + 3) = CH_STR(rstPB.Fields(i).Value)
                ElseIf i >= 30 And i <= 33 Then
                    Text1(i) = CH_STR(rstPB.Fields(i).Value)
                ElseIf i = 19 Then
                    Text1(22) = CH_STR(rstPB.Fields(i).Value)
                ElseIf i = 37 Then
                    Text1(i) = CH_STR(rstPB.Fields(i).Value)
                ElseIf i = 24 Then
                    If CH_STR(rstPB.Fields(i).Value) = "外觀件" Then
                        Me.Option1(1).Value = True
                    Else
                        Me.Option1(0).Value = True
                    End If
                ElseIf i = 34 Then
                    strCode = Trim(rstPB.Fields(i).Value)
                ElseIf i = 35 Then'这样else里就不会包括i=35了
                
                Else
                    Text1(i) = CH_STR(rstPB.Fields(i - 3).Value)
                End If
            End If
        Next i
      

  3.   

    ElseIf i = 35 Then
    '不加代码
    ElseIf i = 36 Then
    '加代码
    ElseIf i = 37 Then
    '加代码
      

  4.   

    For i = 0 To 37
       if i=35 then
          exit for
       endif在循环最前加上一个判断...
      

  5.   


    这样会退出for循环,这不是lz要的
      

  6.   

    建议将多层if else结构改成
    select case 
       case ...
          ....
       case ...
          ....
       case ...
          ....
    end select  
      

  7.   

    剛才在測試 jhone99的,可以。不過我的賦值好像出問題了,本來如果Check1(36).Value=1的時候,Text1(37)=輸入進去的值。但是現在卻把修改者的ID給帶出來了。修改者的ID是保存到數據庫中做的一個記錄。