'

今天的客户也是小客户,需要对文件的一些操作记录在数据库里面,这里采用的数据库ACCCESS,用的是VB自带的可视化数据管理器创建的mdb数据库文件。实现了数据的增删改查。简单方便。基本可以用这套代码模板实现大部分的数据库功能了。想研发或学习的朋友可以加我q1016058890

Dim DataRst     As New ADODB.Recordset

    
Private Sub Command10_Click()
  Set VSFlexGrid1.DataSource = DataRst  '刷新表格
End Sub

Private Sub Command11_Click()
  Text2 = Format(Now, "yyyy/mm/dd")
End Sub

Private Sub Command12_Click()

    Dim DataRst2     As New ADODB.Recordset
      sSQL = "Select * from 文件信息表 where  文件 like '%" & Text3 & "%'" & "ORDER BY 日期 ASC"
      DataRst2.Open sSQL, cnn, adOpenKeyset, adLockReadOnly  ' 重新打开表
      If Not DataRst2.EOF Or Not DataRst2.BOF Then  '没有到顶 或者 没有到底
        Set VSFlexGrid1.DataSource = DataRst2  '刷新表格
      End If
        Label3.Caption = DataRst2.RecordCount '显示查询结果的总数
      DataRst2.Close '最好是写上,不过不谢也没事
      

End Sub

Private Sub Command13_Click()
  Dim DataRst2     As New ADODB.Recordset
      sSQL = "Select * from 文件信息表 where  文件 like '%" & Text3 & "%'" & "ORDER BY 日期 DESC"
      DataRst2.Open sSQL, cnn, adOpenKeyset, adLockReadOnly  ' 重新打开表
      If Not DataRst2.EOF Or Not DataRst2.BOF Then  '没有到顶 或者 没有到底
        Set VSFlexGrid1.DataSource = DataRst2  '刷新表格
      End If
        Label3.Caption = DataRst2.RecordCount '显示查询结果的总数
      DataRst2.Close '最好是写上,不过不谢也没事
End Sub

Private Sub Command14_Click()
    Dim DataRst2     As New ADODB.Recordset
      sSQL = "Select * from 文件信息表 where  文件 like '%" & Text3 & "%'" & "ORDER BY 文件 ASC"
      DataRst2.Open sSQL, cnn, adOpenKeyset, adLockReadOnly  ' 重新打开表
      If Not DataRst2.EOF Or Not DataRst2.BOF Then  '没有到顶 或者 没有到底
        Set VSFlexGrid1.DataSource = DataRst2  '刷新表格
      End If
        Label3.Caption = DataRst2.RecordCount '显示查询结果的总数
      DataRst2.Close '最好是写上,不过不谢也没事
      

End Sub

Private Sub Command15_Click()
  Dim DataRst2     As New ADODB.Recordset
      sSQL = "Select * from 文件信息表 where  文件 like '%" & Text3 & "%'" & "ORDER BY 文件 DESC"
      DataRst2.Open sSQL, cnn, adOpenKeyset, adLockReadOnly  ' 重新打开表
      If Not DataRst2.EOF Or Not DataRst2.BOF Then  '没有到顶 或者 没有到底
        Set VSFlexGrid1.DataSource = DataRst2  '刷新表格
      End If
        Label3.Caption = DataRst2.RecordCount '显示查询结果的总数
      DataRst2.Close '最好是写上,不过不谢也没事
End Sub


Private Sub Command9_Click()
    Dim DataRst2     As New ADODB.Recordset
      sSQL = "Select * from 文件信息表 where  文件 like '%" & Text3 & "%'"
      DataRst2.Open sSQL, cnn, adOpenKeyset, adLockReadOnly  ' 重新打开表
      If Not DataRst2.EOF Or Not DataRst2.BOF Then  '没有到顶 或者 没有到底
        Set VSFlexGrid1.DataSource = DataRst2  '刷新表格
      End If
        Label3.Caption = DataRst2.RecordCount '显示查询结果的总数
      DataRst2.Close '最好是写上,不过不谢也没事
      
      
  
End Sub

Private Sub Form_Load()


    
    Call 数据库连接
   Dim sSQL As String
   sSQL = "Select * from 文件信息表"
   DataRst.Open sSQL, cnn, adOpenKeyset, adLockPessimistic   '读取表  adLockReadOnly只读

    Label3.Caption = DataRst.RecordCount '显示查询结果的总数
    Set VSFlexGrid1.DataSource = DataRst  '刷新表格
    
    
    
    Text2 = Format(Now, "yyyy/mm/dd")
    
    
    
    设置VSFlexGrid1数据表格
 End Sub
 
 Private Sub Form_Unload(Cancel As Integer)
   DataRst.Close
End Sub
 
 
 
 
 
 
Private Sub 设置VSFlexGrid1数据表格()

  VSFlexGrid1.BackColorAlternate = RGB(255, 250, 230)  '间隔行背景色
     VSFlexGrid1.RowHeightMin = 400                      '最小行高
     
            Dim i  As Long
            For i = 1 To 7
                  If i = 1 Then
                    VSFlexGrid1.ColWidth(i) = 10000              '指定列宽
                  ElseIf i = 2 Then
                     VSFlexGrid1.ColWidth(i) = 1000              '指定列宽
                 ElseIf i = 3 Then
                     VSFlexGrid1.ColWidth(i) = 1000         '指定列宽
                     
                 ElseIf i = 4 Then
                     VSFlexGrid1.ColWidth(i) = 3000         '指定列宽
                Else
                     
                  End If
                
            Next i
'           VSFlexGrid1.ColAlignment(-1) = flexAlignCenterCenter
End Sub

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Private Sub Command1_Click()


If DataRst.RecordCount > 0 Then
  DataRst.MoveFirst
  
  '  如果你当前是指向数据集的第一项,那么moveprevious就会出错。方法是,用rs.Eof来判断是否到尾端,用Rs.Bof判断是否在首端。
   If DataRst.EOF = False And DataRst.BOF = False Then  '没有到顶 或者 没有到底
        Text1.Text = DataRst.Fields("姓名")
        Text2.Text = DataRst.Fields("年龄")
    End If
    
     Label3.Caption = DataRst.AbsolutePosition & "/" & DataRst.RecordCount

End If

  
   
  End Sub
Private Sub Command2_Click()

If DataRst.RecordCount > 0 Then
  '  如果你当前是指向数据集的第一项,那么moveprevious就会出错。方法是,用rs.Eof来判断是否到尾端,用Rs.Bof判断是否在首端。
  DataRst.MoveNext
  If DataRst.EOF = False And DataRst.BOF = Flase Then
'        Text1.Text = DataRst.Fields("姓名")
'        Text2.Text = DataRst.Fields("年龄")
 Else
         DataRst.MoveLast
  End If
  
'      Label3.Caption = DataRst.AbsolutePosition & "/" & DataRst.RecordCount

  End If
    'Err.Description
End Sub

Private Sub Command3_Click()

If DataRst.RecordCount > 0 Then
           DataRst.MovePrevious
           
          '  如果你当前是指向数据集的第一项,那么moveprevious就会出错。方法是,用rs.Eof来判断是否到尾端,用Rs.Bof判断是否在首端。
           If DataRst.EOF = False And DataRst.BOF = False Then      '没有到顶 或者 没有到底
        
'                Text1.Text = DataRst.Fields("姓名")
'                Text2.Text = DataRst.Fields("年龄")
                Else
                
                 DataRst.MoveFirst
            End If
            
'                  Label3.Caption = DataRst.AbsolutePosition & "/" & DataRst.RecordCount
'
    End If

   
   'Err.Description
End Sub

Private Sub Command4_Click()

If DataRst.RecordCount > 0 Then
DataRst.MoveLast
  '  如果你当前是指向数据集的第一项,那么moveprevious就会出错。方法是,用rs.Eof来判断是否到尾端,用Rs.Bof判断是否在首端。
   If DataRst.EOF = False And DataRst.BOF = False Then  '没有到顶 或者 没有到底
'        Text1.Text = DataRst.Fields("姓名")
'        Text2.Text = DataRst.Fields("年龄")
    End If
'        Label3.Caption = DataRst.AbsolutePosition & "/" & DataRst.RecordCount

  End If
   'Err.Description
End Sub

Private Sub Command5_Click() '精确查询
'      Dim DataRst2     As New ADODB.Recordset
'      sSQL = "Select * from 人员信息表 where  姓名 = '" & Text3 & "'"
'      DataRst2.Open sSQL, cnn, adOpenKeyset, adLockReadOnly  ' 重新打开表
'      If Not DataRst2.EOF Or Not DataRst2.BOF Then  '没有到顶 或者 没有到底
'        Text1.Text = DataRst2.Fields("姓名")
'        Text2.Text = DataRst2.Fields("年龄")
'      End If
'      DataRst2.Close '最好是写上,不过不谢也没事
End Sub


Private Sub Command6_Click()

If Text1 = "" Or Text2 = "" Or Combo1.Text = "" Then
 MsgBox "请填写文件信息,否则无法新增!"
 Exit Sub
End If

If Text4 = "" Then
    Text4 = "无"
End If
 
Dim AdoObj  As New ADODB.Recordset
 
    sSQL = "Select * from 文件信息表 "   '客户电话
    AdoObj.Open sSQL, cnn, adOpenKeyset, adLockPessimistic
    
            AdoObj.AddNew
            AdoObj!文件 = Text1.Text
            AdoObj!日期 = Text2.Text
            AdoObj!动作 = Combo1.Text
            AdoObj!备注 = Text4.Text
       
       
       
       
       
            AdoObj.Update
            AdoObj.Close
            
         
            

            sSQL = "Select * from 文件信息表 "   '客户电话
                              AdoObj.Open sSQL, cnn, adOpenKeyset, adLockPessimistic
                             
                             
                              
                                
                                Set VSFlexGrid1.DataSource = AdoObj  '刷新表格
                                
                                Label3.Caption = AdoObj.RecordCount '显示查询结果的总数
                                
                                AdoObj.Close

                             MsgBox "保存成功"
        
        
        
        
        
        
    
        
        
        
        
        
        
End Sub

Private Sub Command7_Click()

If Text1 = "" Or Text2 = "" Or Combo1.Text = "" Then
 MsgBox "请在表格中选择你要删除的数据"
 Exit Sub
End If

       Dim AdoObj  As New ADODB.Recordset
       Dim sSQL    As String

        If MsgBox("确定要删除吗?", vbYesNo, "提示") = vbNo Then Exit Sub
    
        sSQL = "Select * from 文件信息表 where 文件='" & Text1.Text & "'" & "  and  日期=#" & Text2 & "#" & "  and  动作='" & Combo1.Text & "'"
        AdoObj.Open sSQL, cnn, adOpenKeyset, adLockPessimistic

         If AdoObj.RecordCount > 0 Then
                        AdoObj.Delete
                        AdoObj.Update
                        AdoObj.Close
            
                        sSQL = "Select * from 文件信息表"
                        AdoObj.Open sSQL, cnn, adOpenKeyset, adLockPessimistic
                         Set VSFlexGrid1.DataSource = AdoObj  '刷新表格
                         Label3.Caption = AdoObj.RecordCount
                          AdoObj.Close
                          
                          
                          
                          Text1 = ""
                          
                           Text2 = ""
                           
                           Combo1.Text = ""
                           
         Else
                           
                             MsgBox "删除失败"
        End If
        
        
        
        
        
        
        

End Sub

Private Sub Command8_Click()

    Dim AdoObj  As New ADODB.Recordset
    Dim sSQL    As String
    '注意这里不能用 本界面的 txtUser 控件来获取姓名 进行修改查询的,因为这个时候你的名称已经修改了,你无法查询到这个名称,会修改失败的!
    sSQL = "Select * from 文件信息表 where 文件='" & VSFlexGrid1.TextMatrix(VSFlexGrid1.RowSel, 1) & "'" & "  and  日期=#" & VSFlexGrid1.TextMatrix(VSFlexGrid1.RowSel, 2) & "#" & "  and  动作='" & VSFlexGrid1.TextMatrix(VSFlexGrid1.RowSel, 3) & "'"
    AdoObj.Open sSQL, cnn, adOpenKeyset, adLockPessimistic

                If AdoObj.RecordCount > 0 Then
                              AdoObj!文件 = Text1.Text
                              AdoObj!日期 = Text2.Text
                              AdoObj!动作 = Combo1.Text
                               AdoObj!备注 = Text4.Text
                              AdoObj.Update
                              AdoObj.Close
                  
                              sSQL = "Select * from 文件信息表 "   '客户电话
                              AdoObj.Open sSQL, cnn, adOpenKeyset, adLockPessimistic
                              Set VSFlexGrid1.DataSource = AdoObj  '刷新表格
                               Label3.Caption = AdoObj.RecordCount
                              AdoObj.Close
                              
                              
                              
                           Text1 = ""
                          
                           Text2 = ""
                           
                           Combo1.Text = ""
                              
                              MsgBox "修改成功"
                              
                              
                              
                              
                             
                Else
                              MsgBox "修改失败"
                End If
  
  
  
  
End Sub

Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
    For i = 1 To Data.Files.Count ' 逐个读取文件路径
     Text1 = Data.Files(i)
    Next
End Sub


Private Sub VSFlexGrid1_Click()

       Text1.Text = VSFlexGrid1.TextMatrix(VSFlexGrid1.RowSel, 1)  '文件名
        Text2.Text = VSFlexGrid1.TextMatrix(VSFlexGrid1.RowSel, 2) ' 日期
        Combo1.Text = VSFlexGrid1.TextMatrix(VSFlexGrid1.RowSel, 3)  '动作
         Text4.Text = VSFlexGrid1.TextMatrix(VSFlexGrid1.RowSel, 4) ' 日期
End Sub
 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐