On Error GoTo Err1
    Dim i As Long, j As Long
    Dim k, s As Integer
    Dim yn As Boolean
    Dim n, num As Integer
    For n = 1 To Me.ListView1.ListItems.count
        If Me.ListView1.ListItems(n).Selected = True And Me.ListView1.ListItems(n).Checked = True Then
            num = n
        End If
    Next n
  
    Select Case index
        Case 0   'select
            Dim Adb As New ADODB.Connection
            Dim Rec As New ADODB.Recordset
            Dim TempDate As Date             If num <= 0 Then
                MsgBox "请选择帐套各称!", vbOKOnly + vbInformation, "提示"
                Exit Sub
             End If
             Dim Ztzgr As String             TempDate = GetKjDate(Trim(Me.ListView1.ListItems(num).Text), Trim(Text1.Text))
             SysDate = Trim(Text1.Text) & "-" & Month(TempDate) & "-" & Month(TempDate)             ZTMdb = Trim(Me.ListView1.ListItems(num).Text) & "\" & Trim(Str(Year(SysDate)))
             PcZtname = Trim(Me.ListView1.ListItems(num).Text) & "(" & Trim(Str(Year(SysDate))) & ")"
             SetConnect ZTMdb
             SetDefaultZT Me.ListView1.ListItems(num).Text, Year(SysDate)
             Ztzgr = GetZtzgr(Trim(Me.ListView1.ListItems(num).Text), Year(SysDate))
             Adb.Open Publicstr
             Rec.Open "select * from system", Adb, adOpenStatic
             Rec.MoveFirst
             Frmstart.Caption = Trim(Rec!Dwname) & "-------------村组财务会计核算管理                             帐套名:" & PcZtname & "----->主管:" & Ztzgr
             Frmstart.StatusBar1.Panels(1).Text = "当前操作帐套: " & PcZtname & "----->主管:" & Ztzgr             Frmstart.StatusBar1.Panels(3).Text = "会计日期: " & SysDate
             If Zhsycs > 0 Then
                Frmstart.Caption = Left(Trim(Frmstart.Caption), Len(Trim(Frmstart.Caption)) - 2) & Trim(Zhsycs)
             End If
             Rec.Close
             Set Rec = Nothing
             Adb.Close
             Set Adb = Nothing
             WriteOpLog "选择帐套[" & PcZtname & "]"
             Unload Me
             Exit Sub
        Case 1   'new
             cNameStr = ""
             frmNewDB.Show 1
             If Trim(cNameStr) <> "" Then
                'List1.AddItem Trim(cNameStr)
                Dim im As ListItem
                Set im = Me.ListView1.ListItems.Add(, , cNameStr)
                im.SubItems(1) = cZgrStr
               ' cbocz.Clear
            End If
            'cbocz.Refresh
        Case 2   'delete
             Dim Msg As Integer
             If num <= 0 Then
              MsgBox "请选择帐套名称!", vbOKOnly + vbInformation, "提示"
             Exit Sub
             If Trim(Me.ListView1.ListItems(num).Text) & "(" & Trim(Text1.Text) & ")" = PcZtname Then
                MsgBox "此帐套正被使用,暂时不能删除!", vbOKOnly + 16, "提示"
                Exit Sub
             End If
             Msg = MsgBox("确信要删除[" & Trim(Me.ListView1.ListItems(num).Text) & "(" & Trim(Text1.Text) & ")" & "]帐套数据吗?", vbYesNo + 32, "询问")
             If Msg = vbYes Then
                Dim FilesFold As New FileSystemObject
                On Error GoTo Err2
                Kill App.Path & "\mdb\" & Trim(Me.ListView1.ListItems(num).Text) & "\" & Trim(Text1.Text) & ".mdb"                If FilesFold.GetFolder(App.Path & "\mdb\" & Trim(Me.ListView1.ListItems(num).Text)).files.count < 1 Then
                   FilesFold.DeleteFolder (App.Path & "\mdb\" & Trim(Me.ListView1.ListItems(num).Text))
                End If                Dim ztAdb1 As New ADODB.Connection
                Dim ztrec1 As New ADODB.Recordset
                SetPcnn "Public"
                ztAdb1.Open Publicstr
                ztrec1.Open "select * from ztlimit where trim(ztname)='" & Trim(Me.ListView1.ListItems(num).Text) & "' and trim(nh)='" & Trim(Text1.Text) & "'", ztAdb1, adOpenStatic
                If ztrec1.RecordCount <> 0 Then
                   ztAdb1.Execute "delete from ztlimit where trim(ztname)='" & Trim(Me.ListView1.ListItems(num).Text) & "' and trim(nh)='" & Trim(Text1.Text) & "'"
                End If                WriteOpLog "删除帐套[" & Trim(Me.ListView1.ListItems(num).Text) & "(" & Trim(Text1.Text) & ")" & "]"                'List1.RemoveItem (List1.ListIndex)
                Me.ListView1.ListItems.Remove num
                ztrec1.Close
                ztAdb1.Close
            End If
         Exit Sub
Err2:
    MsgBox "对不起![" & Trim(Text1.Text) & "]年不存在帐套[" & Trim(Me.ListView1.ListItems(num).Text) & "],请重新以该帐套存在的年号登录系统", vbOKOnly + 16, "提示"
       Case 4
           If num <= 0 Then Exit Sub
           Dim frm As New FrmModiZT
           frm.Text1.Text = Trim(Me.ListView1.ListItems(num).Text)
           frm.Show 1
           Unload frm
           Set frm = Nothing
           RefreshList1 Trim(Text1.Text)
       Case 3
             '********************************
             '     转结上年余额
             '********************************
           If MsgBox("是否结转所有新建的账套?", vbYesNo + 32, "提示") = vbYes Then
              For i = 1 To Me.ListView1.ListItems.count
                num = i
                Snjz num
              Next i
           Else
               Snjz num
           End If
    End Select
  ' Exit Sub
Err1:
   MsgBox Err.Description, vbOKOnly + 16, "提示"

解决方案 »

  1.   

    依次屏蔽一段代码
    单步调试看一看,应该是on Error跳转或者是if块语句有问题
    您的语句写成这样,自己都晕掉了,以后怎么维护呀?
    更不要说别人来看了
      

  2.   

    肉眼编译
    If num <= 0 Then  ‘lz这一句没有end if 配合
    设置断点在这里,然后再作判断。我觉得lz的代码没有楼上说的那么惨。
      

  3.   

    问题“缺少一个配对的End If”
        Case 2   'delete
             Dim Msg As Integer
            If num <= 0 Then
                MsgBox "请选择帐套名称!", vbOKOnly + vbInformation, "提示"
                Exit Sub
            End If'--------------------------------------------------------缺少这个End If
      

  4.   

    楼上眼睛视力8。0^_^楼主的代码风格太不好了,每个CASE下的代码应该用SUB或FUNCTION来代替,看上去会简洁许多
      

  5.   

    这样的代码有人愿意给你找BUG真是需要很大的决心!
      

  6.   

    index 你检测
    他的什么属性