frmreturnbooks.frm

来自「通用书店管理系统」· FRM 代码 · 共 1,163 行 · 第 1/4 页

FRM
1,163
字号
                Me.Caption = "图书续借管理"
              Case "还书"
                Me.Caption = "还书管理"
            End Select
            
            setTxtWritable ("1000000")
           
            
            tdbBookBorrow(0).AllowAddNew = False
            tdbBookBorrow(0).AllowUpdate = True
            tdbBookBorrow(0).AllowDelete = False
            SetToolBar ("1000X10X101X111X1")
    
    
        Case modBrowsing
            Select Case strWindowCaption
              Case "续借"
                Me.Caption = "图书续借管理——浏览"
              Case "还书"
                Me.Caption = "还书管理——浏览"
            End Select
            setTxtWritable ("1000000")
            
            tdbBookBorrow(0).AllowAddNew = False
            tdbBookBorrow(0).AllowUpdate = True
            tdbBookBorrow(0).AllowDelete = False
            SetToolBar ("1000X10X101X111X1")
        Case modadd
            Select Case strWindowCaption
              Case "续借"
                Me.Caption = "图书续借管理——新增"
              Case "还书"
                Me.Caption = "还书管理——新增"
            End Select
            setTxtWritable ("1000000")
            
            tdbBookBorrow(0).AllowAddNew = False
            tdbBookBorrow(0).AllowUpdate = True
            tdbBookBorrow(0).AllowDelete = False
            SetToolBar ("0011X00X001X111X1")
        Case modEdit
            Select Case strWindowCaption
              Case "续借"
                Me.Caption = "图书续借管理——修改"
              Case "还书"
                Me.Caption = "还书管理——修改"
            End Select
            setTxtWritable ("1000000")
            tdbBookBorrow(0).AllowAddNew = False
            tdbBookBorrow(0).AllowUpdate = True
            tdbBookBorrow(0).AllowDelete = False
            SetToolBar ("0011X00X001X111X1")
    End Select

End Sub

Private Sub clearAll()          '清除所有可填数据的位置
    Dim i As Integer
    
    For i = 0 To txtFields.UBound
        txtFields(i).Text = ""
    Next i
    
   
    X.ReDim 0, -1, 0, 3
    tdbBookBorrow(0).ReBind
    
End Sub


Private Sub txtFields_Validate(Index As Integer, Cancel As Boolean)
  Dim sqlstring As String
  Dim rsNewTmp As New ADODB.Recordset
  
  If Trim(txtFields(0)) = "" Then Exit Sub
  
  Cancel = True
  
  If intFormState = modadd Then
     sqlstring = "select t1.*,t2.ChrPhoneCode from MemberData t1 left join ClientData t2 on t1.chrClientNo=t2.chrClientNo " & _
                 "  where intMemberNo=" & CInt(txtFields(0).Text)
     rsNewTmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
     If Not rsNewTmp.EOF Then
        If rsNewTmp.Fields("chrState").Value = "正常" Then
           Call ShowRecorder(1)
        Else
           MsgBox "该会员卡已挂失或已作废!", , "警告"
           Cancel = True
           Exit Sub
        End If
     End If
  End If
  Cancel = False
End Sub

Private Sub setTxtWritable(strIn As String)     '设置各文本框的可写属性
    Dim i As Integer
    
    For i = 0 To txtFields.UBound
        If Mid(strIn, i + 1, 1) = 1 Then
            txtFields(i).Locked = False
            txtFields(i).BackColor = RGB(255, 255, 255)
        Else
            txtFields(i).Locked = True
            txtFields(i).BackColor = gColor_LockedText
        End If
    Next i
End Sub


'保存新增的记录
Private Function SaveAddingNew() As Boolean     'True for success
    
    Dim i As Integer
    Dim sqlstring As String
    Dim lngAffectedRow As Long
    
    SaveAddingNew = False
    
    cN.BeginTrans
    For i = 0 To X.UpperBound(1)
        If X(i, 0) Then
           Select Case strWindowCaption
             Case "续借"
               sqlstring = "update  BooksBorrow set DatTSGHDate=#" & Format(Date, "yyyy-mm-dd") & _
                    "#,chrReturnType='续借' where intMemberNo=" & CInt(txtFields(0).Text) & _
                    " and chrBookNo='" & X(i, 1) & "' and " & _
                    " chrBookName='" & X(i, 2) & "' and " & _
                    " DatJSDate=#" & X(i, 3) & "#"
               cN.Execute sqlstring, lngAffectedRow
               If lngAffectedRow <> 1 Then GoTo ToError
               
               sqlstring = "insert into BooksBorrow(IntMemberNo,ChrBookNo,ChrBookName,DatJSDate," & _
                             "DatHSDate,ChrOperator,ChrType ) values("
               sqlstring = sqlstring & _
                         CInt(txtFields(0)) & ",'" & _
                         X(i, 1) & "','" & _
                         X(i, 2) & "',#" & _
                         Format(Date, "yyyy-mm-dd") & "#,#" & _
                         DateAdd("d", CInt(txtFields(6)), Format(Date, "yyyy-mm-dd")) & "#,'" & _
                         strUserName & "','续借')"
               cN.Execute sqlstring, lngAffectedRow

             Case "还书"
               sqlstring = "update  BooksBorrow set DatTSGHDate=#" & Format(Date, "yyyy-mm-dd") & _
                    "#,chrReturnType='还书' where intMemberNo=" & CInt(txtFields(0).Text) & _
                    " and chrBookNo='" & X(i, 1) & "' and " & _
                    " chrBookName='" & X(i, 2) & "' and " & _
                    " DatJSDate=#" & X(i, 3) & "#"
               cN.Execute sqlstring, lngAffectedRow
           End Select
           
           If lngAffectedRow <> 1 Then GoTo ToError
        End If
    Next i
    
    cN.CommitTrans
    SaveAddingNew = True
    Exit Function

ToError:
        cN.RollbackTrans
        MsgBox "保存记录出错:" & err.Description, vbInformation
        SaveAddingNew = False
End Function


'显示还书记录

Private Function ShowRecorder(intFlag As Integer) As Boolean
  On Error GoTo err
  Dim i As Integer
  Dim sqlstring As String
  Dim rsNewTmp As New ADODB.Recordset
  
  '查询会员卡的资料
  sqlstring = "select t1.*,t2.ChrPhoneCode from MemberData t1 left join ClientData t2 on t1.chrClientNo=t2.chrClientNo " & _
                 "  where intMemberNo=" & CInt(txtFields(0).Text)
  
  rsNewTmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
  If Not rsNewTmp.EOF Then
       txtFields(1).Text = rsNewTmp.Fields("chrName").Value
       txtFields(2).Text = rsNewTmp.Fields("chrType").Value
       txtFields(3).Text = rsNewTmp.Fields("DatDQDate").Value
       txtFields(4).Text = rsNewTmp.Fields("IntMaxBorrow").Value
       txtFields(6).Text = rsNewTmp.Fields("IntMaxDay").Value
       txtFields(7).Text = IIf(IsNull(rsNewTmp.Fields("ChrPhoneCode").Value), "", rsNewTmp.Fields("ChrPhoneCode").Value)
       
       sqlstring = "select count(*) as intNo from BooksBorrow where IntMemberNo=" & CInt(txtFields(0).Text) & " and DatTSGHDate is null"
       Set rsNewTmp = New ADODB.Recordset
       rsNewTmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
       If Not rsNewTmp.EOF Then
          txtFields(5).Text = rsNewTmp.Fields("intNO").Value
       Else
          txtFields(5).Text = 0
       End If
       
  Else
       For i = 0 To txtFields.UBound
         If i <> 0 Then
           txtFields(i).Text = ""
         End If
       Next i
       X.ReDim 0, -1, 0, 3
       tdbBookBorrow(0).ReBind
       sqlstring = "select * from BooksBorrow where chrBookNo='0'"
       rsNewTmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
       Set tdbBookBorrow(1).DataSource = rsNewTmp
       
       ShowRecorder = False
       
       MsgBox "没有该会员卡的相关信息,请确认录入是否有错!", , "警告"
       Exit Function
  End If
  
  Select Case intFlag
    Case 1
       '查询已还图书信息
       sqlstring = "select * from BooksBorrow where IntMemberNo=" & CInt(txtFields(0).Text) & " and DatTSGHDate is  null "
       Set rsNewTmp = New ADODB.Recordset
       rsNewTmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
       Set tdbBookBorrow(1).DataSource = rsNewTmp
       
       Frame1(1).Caption = "会员借书信息"
       tdbBookBorrow(0).Columns(3).Caption = "借书日期"
    Case 2
       '查询在借图书信息
       sqlstring = "select * from BooksBorrow where IntMemberNo=" & CInt(txtFields(0).Text) & " and DatTSGHDate is   null"
       Set rsNewTmp = New ADODB.Recordset
       rsNewTmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
       Set tdbBookBorrow(1).DataSource = rsNewTmp
       
       '查询已还图书信息
       sqlstring = "select * from BooksBorrow where IntMemberNo=" & CInt(txtFields(0).Text) & " and DatTSGHDate is  not null and chrReturnType='还书'"
       Frame1(1).Caption = "会员还书信息"
       tdbBookBorrow(0).Columns(3).Caption = "还书日期"
    Case 3
       '查询在借图书信息
       sqlstring = "select * from BooksBorrow where IntMemberNo=" & CInt(txtFields(0).Text) & " and DatTSGHDate is   null"
       Set rsNewTmp = New ADODB.Recordset
       rsNewTmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
       Set tdbBookBorrow(1).DataSource = rsNewTmp
       
       '查询已还图书信息
       sqlstring = "select * from BooksBorrow where IntMemberNo=" & CInt(txtFields(0).Text) & " and DatTSGHDate is  not null and chrReturnType='续借'"
       Frame1(1).Caption = "会员还书信息"
       tdbBookBorrow(0).Columns(3).Caption = "还书日期"
  End Select
  
  Set rsNewTmp = New ADODB.Recordset
  rsNewTmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
  
     
  If rsNewTmp.EOF Then
    ShowRecorder = False
    X.ReDim 0, -1, 0, 3
    tdbBookBorrow(0).ReBind
    Exit Function
  End If
  
  
  X.ReDim 0, rsNewTmp.Recordcount - 1, 0, 3
  Set tdbBookBorrow(0).Array = X
  Do While Not rsNewTmp.EOF
     X(i, 1) = rsNewTmp.Fields("chrBookNo").Value
     X(i, 2) = rsNewTmp.Fields("chrBookName").Value
     Select Case intFlag
       Case 1
         X(i, 3) = rsNewTmp.Fields("DatJSDate").Value
       Case 2, 3
         X(i, 3) = rsNewTmp.Fields("DatTSGHDate").Value
     End Select
     
     rsNewTmp.MoveNext
     i = i + 1
  Loop
  
  tdbBookBorrow(0).ReBind

  ShowRecorder = True
  Exit Function
err:
  ShowRecorder = False
  MsgBox "查询记录失败:" & err.Description, vbInformation
  

End Function


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?