frmcardmanage.frm

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

FRM
1,276
字号
      End If
        
      Set rstmp = New ADODB.Recordset
      rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
      Set tdbMemberData.DataSource = rstmp
      
      
      SetToolBar ("1000X00X001X111")
      Call clearAll
    Case "解挂"
      sqlstring = "select max(intNo) as intMaxNo from MemberCard where IntMemCardNo=" & CInt(txtFields(2).Text)
      rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
      
      If rstmp.EOF Then
         intMaxNo = 1
      Else
         intMaxNo = IIf(IsNull(rstmp.Fields(0)), 0, rstmp.Fields(0)) + 1
      End If
      
      sqlstring = "insert into MemberCard (IntNo,IntMemCardNo,ChrName,chrLevel,DatInitiate,DatDQDate,ChrMemberType," & _
                  "DatDate,ChrType) values (" & intMaxNo & "," & CInt(txtFields(2).Text) & _
                  ",'" & txtFields(3).Text & "','" & txtFields(4).Text & "',#" & Format((txtFields(5).Text), "yyyy-mm-dd") & _
                  "#,#" & Format((txtFields(6).Text), "yyyy-mm-dd") & "#,'" & txtFields(7).Text & "',#" & Format(Date, "yyyy-mm-dd") & "#,'解挂')"
      intMonth = GetAvailability(cmbFields.Text)
      cN.BeginTrans
      cN.Execute (sqlstring)
      '原会员卡恢复使用
      sqlstring = "Update MemberData set ChrState='正常'" & _
                "  where intMemberNo=" & CInt(txtFields(2).Text)
      cN.Execute sqlstring
      cN.CommitTrans
      
      
      If optFields(0).Value Then
           sqlstring = "select * from MemberData where intMemberNo=" & Trim(txtFields(0).Text)
                       
      Else
           sqlstring = "select * from MemberData where chrClientNo='" & Trim(txtFields(1).Text) & _
                       "'  order by intMemberNo"
      End If
        
      Set rstmp = New ADODB.Recordset
      rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
      Set tdbMemberData.DataSource = rstmp
      
      
      SetToolBar ("1000X00X001X111")
      Call clearAll
    Case "作废"
      sqlstring = "select max(intNo) as intMaxNo from MemberCard where IntMemCardNo=" & CInt(txtFields(2).Text)
      rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
      
      If rstmp.EOF Then
         intMaxNo = 1
      Else
         intMaxNo = IIf(IsNull(rstmp.Fields(0)), 0, rstmp.Fields(0)) + 1
      End If
      
      sqlstring = "insert into MemberCard (IntNo,IntMemCardNo,ChrName,chrLevel,DatInitiate,DatDQDate,ChrMemberType," & _
                  "DatDate,ChrType) values (" & intMaxNo & "," & CInt(txtFields(2).Text) & _
                  ",'" & txtFields(3).Text & "','" & txtFields(4).Text & "',#" & Format((txtFields(5).Text), "yyyy-mm-dd") & _
                  "#,#" & Format((txtFields(6).Text), "yyyy-mm-dd") & "#,'" & txtFields(7).Text & "',#" & Format(Date, "yyyy-mm-dd") & "#,'作废')"
      intMonth = GetAvailability(cmbFields.Text)
      cN.BeginTrans
      cN.Execute (sqlstring)
      '作废会员卡
      sqlstring = "Update MemberData set ChrState='作废'" & _
                "  where intMemberNo=" & CInt(txtFields(2).Text)
      cN.Execute sqlstring
      cN.CommitTrans
      
      
      If optFields(0).Value Then
           sqlstring = "select * from MemberData where intMemberNo=" & Trim(txtFields(0).Text)
                       
      Else
           sqlstring = "select * from MemberData where chrClientNo='" & Trim(txtFields(1).Text) & _
                       "'  order by intMemberNo"
      End If
        
      Set rstmp = New ADODB.Recordset
      rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
      Set tdbMemberData.DataSource = rstmp
      
      
      Call cmdOK_Click
      SetToolBar ("1000X00X001X111")
      Call clearAll
  End Select

  Exit Sub
SaveErr:
  cN.RollbackTrans
  MsgBox "保存记录失败:" & err.Description, vbInformation
End Sub

Public Sub cmdUndo_Click()
   If MsgBox("当前修改的内容会丢失。确认要取消吗?", vbOKCancel, "询问") <> vbOK Then Exit Sub
   clearAll
   SetToolBar ("1000X00X001X111")
End Sub

Private Sub cmdOK_Click()
  Dim sqlstring As String
  Dim rstmp As New ADODB.Recordset
  On Error GoTo err
  
  If txtFields(0).Text <> "" Or txtFields(1).Text <> "" Then
     
  Select Case strWindowCaption
    Case "续卡"
        If optFields(0).Value Then
           sqlstring = "select * from MemberData where intMemberNo=" & Trim(txtFields(0).Text) & _
                       " and ChrState in ('正常','挂失')"
        Else
           sqlstring = "select * from MemberData where chrClientNo='" & Trim(txtFields(1).Text) & _
                       "' and ChrState in ('正常','挂失') order by intMemberNo"
        End If
        
        rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
        If rstmp.EOF Then
          MsgBox "没有要续卡的会员卡信息或该卡已作废!", vbInformation
        End If
    Case "换卡"
        If optFields(0).Value Then
           sqlstring = "select * from MemberData where intMemberNo=" & Trim(txtFields(0).Text) & _
                       " and ChrState in ('正常','挂失')"
        Else
           sqlstring = "select * from MemberData where chrClientNo='" & Trim(txtFields(1).Text) & _
                       "' and ChrState in ('正常','挂失') order by intMemberNo"
        End If
        
        rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
        If rstmp.EOF Then
          MsgBox "没有要换卡的会员卡信息或该卡已作废!", vbInformation
        End If
    Case "挂失"
        If optFields(0).Value Then
           sqlstring = "select * from MemberData where intMemberNo=" & Trim(txtFields(0).Text) & _
                       " and ChrState in ('正常')"
        Else
           sqlstring = "select * from MemberData where chrClientNo='" & Trim(txtFields(1).Text) & _
                       "' and ChrState in ('正常') order by intMemberNo"
        End If
        
        rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
        If rstmp.EOF Then
          MsgBox "没有要挂失的会员卡信息或该卡已作废、挂失!", vbInformation
        End If
    Case "解挂"
        If optFields(0).Value Then
           sqlstring = "select * from MemberData where intMemberNo=" & Trim(txtFields(0).Text) & _
                       " and ChrState in ('挂失')"
        Else
           sqlstring = "select * from MemberData where chrClientNo='" & Trim(txtFields(1).Text) & _
                       "' and ChrState in ('挂失') order by intMemberNo"
        End If
        
        rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
        If rstmp.EOF Then
          MsgBox "没有要解挂的会员卡信息或该卡已作废或还没挂失!", vbInformation
        End If
    Case "作废"
        If optFields(0).Value Then
           sqlstring = "select * from MemberData where intMemberNo=" & Trim(txtFields(0).Text) & _
                       " and chrState not in ('作废')"
        Else
           sqlstring = "select * from MemberData where chrClientNo='" & Trim(txtFields(1).Text) & _
           "' and chrState not in ('作废') order by intMemberNo"
        End If
        rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
        If rstmp.EOF Then
          MsgBox "没有要作废的会员卡信息或该卡已作废!", vbInformation
        End If
        
  End Select
  End If
  Set tdbMemberData.DataSource = rstmp
  
  Exit Sub
err:
  MsgBox "查询记录出错:" & err.Description, vbInformation
End Sub

Private Sub cmdSearch_Click(Index As Integer)
  Dim strQuery As String
  
  Select Case Index
    Case 0
      strQuery = g_CommonSelect("   会员卡号   |    客户号   |   姓名  |  级别  |  类型  |  状态  ", "select IntMemberNo,ChrClientNo,ChrName,ChrLevel," & _
                            "ChrType,ChrState From MemberData order by IntMemberNo")
      txtFields(0).Text = strQuery
    Case 1
      strQuery = g_CommonSelect("   客户号   |    客户名称   |   联系人  |  电话  |  地址  ", "select ChrClientNo,ChrClientName,ChrLinkman,ChrPhoneCode,ChrAddress " & _
                            " From ClientData where intFlag=1 order by ChrClientNo")
      txtFields(1).Text = strQuery
  End Select
End Sub

Private Sub Form_Activate()
   SetToolBar ("1000X00X001X111")

End Sub

Private Sub clearAll()          '清除所有可填数据的位置
    Dim i As Integer

    
    For i = 0 To txtFields.UBound
        Select Case i
          Case 0, 1
              txtFields(i).Text = ""
          Case Else
              txtFields(i).Text = ""
              txtFields(i).Enabled = False
        End Select
    Next i
    
    X.ReDim 0, -1, 0, 16
    tdbMemberData.ReBind
    
End Sub



Private Sub ShowRecord()
  Dim rstmp As New ADODB.Recordset
    
  On Error GoTo err
    
  Set rstmp = tdbMemberData.DataSource
    
  txtFields(2).Text = rstmp.Fields("intMemberNo").Value
  txtFields(3).Text = rstmp.Fields("chrName").Value
  txtFields(4).Text = rstmp.Fields("chrLevel").Value
  txtFields(5).Text = Format((rstmp.Fields("datLoginDate").Value), "yyyy-mm-dd")
  txtFields(6).Text = Format((rstmp.Fields("datDQDate").Value), "yyyy-mm-dd")
  txtFields(7).Text = IIf(IsNull(rstmp.Fields("chrType").Value), "", rstmp.Fields("chrType").Value)
  Exit Sub
err:
  MsgBox "错误:" & err.Description, , "警告"
End Sub

Private Sub Form_Load()
  Dim sqlstring As String
  Dim rstmp As New ADODB.Recordset
  
  On Error GoTo err
  cmbFields.Clear
  sqlstring = "select * from MemberAvailability order by intMonth"
  rstmp.Open sqlstring, cN, adOpenKeyset, adLockReadOnly
  Do While Not rstmp.EOF
     cmbFields.AddItem Trim(rstmp.Fields("chrYXQ").Value)
     rstmp.MoveNext
  Loop
  
  Select Case strWindowCaption
    Case "续卡"
      Label1(6).Caption = "续卡费"
      Label1(7).Caption = "续卡周期"
      txtFields(8).Enabled = True
      Label1(8).Visible = False
      txtFields(9).Visible = False
      Me.Caption = "会员卡管理——续卡"
    Case "换卡"
      Label1(6).Caption = "换卡费"
      Label1(7).Caption = "有效期"
      txtFields(8).Enabled = True
      txtFields(9).Enabled = True
      Label1(6).Caption = "换卡费"
      Label1(7).Caption = "周期"
      Label1(8).Visible = True
      txtFields(9).Visible = True
      Me.Caption = "会员卡管理——换卡"
    Case "挂失"
      Label1(6).Visible = False
      txtFields(8).Visible = False
      Label1(7).Visible = False
      cmbFields.Visible = False
      Label1(8).Visible = False
      txtFields(9).Visible = False
      Me.Caption = "会员卡管理——挂失"
    Case "解挂"
      Label1(6).Visible = False
      txtFields(8).Visible = False
      Label1(7).Visible = False
      cmbFields.Visible = False
      Label1(8).Visible = False
      txtFields(9).Visible = False
      Me.Caption = "会员卡管理——解挂"
    Case "作废"
      Label1(6).Visible = False
      txtFields(8).Visible = False
      Label1(7).Visible = False
      cmbFields.Visible = False
      Label1(8).Visible = False
      txtFields(9).Visible = False
      Me.Caption = "会员卡管理——作废"
  End Select
  
  Exit Sub
err:
  MsgBox "初始化出错:" & err.Description, vbInformation
End Sub


Private Sub Form_Unload(Cancel As Integer)
  SetToolBar ("0000X00X001X111")
End Sub

Private Sub txtFields_KeyPress(Index As Integer, KeyAscii As Integer)
  Select Case Index
    Case 8
      KeyAscii = ValiText(KeyAscii, vbExpDecimal, "", txtFields(9).Text)
    Case 9
      KeyAscii = ValiText(KeyAscii, vbExpInteger, "", txtFields(9).Text, 6)
  End Select
End Sub

⌨️ 快捷键说明

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