⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adoprocess.bas

📁 这是一本学习串口编程喝计算机监控的好书里面是用VB开发的源代码
💻 BAS
字号:
Attribute VB_Name = "AdoProcess"
Option Explicit
'no dependence
'Components:
'Microsoft ADO Data Control 6.0 (OLEDB)
'Reference:
'Microsoft ActiveX Data Objects 2.0 Library

Public Sub DeleteData(adoDT As Adodc, nAsk As Integer)
  'nAsk=0: without ASK
  Dim I As Integer
  With adoDT.Recordset
    If .RecordCount < 1 Then Exit Sub
    If nAsk = 1 Then
      I = MsgBox("Are you sure?", vbQuestion + vbYesNo, adoDT.Name)
      If I = 7 Then Exit Sub
    End If
    
    .MoveFirst
    Do While Not .EOF
      .Delete
      .MoveNext
      DoEvents
    Loop
    .Requery
  End With
End Sub

Public Sub AdjustNumber(adoDT As Adodc, nEnd As Integer)
  'Fields(0) is ID.
  Dim lNum As Long
  
  With adoDT.Recordset
    If .RecordCount < 1 Then Exit Sub
    .MoveFirst
    Do While Not .EOF
      lNum = lNum + 1
      If .Fields(0) > lNum Then
        .Fields(0) = lNum
        .Update
      End If
      .MoveNext
      DoEvents
    Loop
    .Requery
      
    If nEnd = 1 Then
      .MoveLast
    Else
      .MoveFirst
    End If
    
  End With
End Sub

Public Sub EnlargeNumber(adoDT As Adodc, nEnd As Integer)
  'Fields(0) is ID.
  With adoDT.Recordset
    If .RecordCount < 1 Then Exit Sub
    .MoveFirst
    Do While Not .EOF
      .Fields(0) = .Fields(0) * 2 + .RecordCount
      .Update
      .MoveNext
      DoEvents
    Loop
    .Requery
    
    If nEnd = 1 Then
      .MoveLast
    Else
      .MoveFirst
    End If
    
  End With
End Sub

Public Sub FindRecord(adoDT As Adodc, nField As Integer, vValue As Variant, nFromStart As Integer)
  Dim vTmp As Variant
  Dim bString As Boolean
  
  With adoDT.Recordset
    If .RecordCount < 1 Then Exit Sub
    
    With .Fields(nField)
      If .Type = 8 Or .Type = 129 Or .Type = 130 Or .Type = 200 Or _
         .Type = 201 Or .Type = 202 Or .Type = 203 Then
         bString = True
      End If
    End With

    If nFromStart = 1 Then
      .MoveFirst
      Do While Not .EOF
        If IsNull(.Fields(nField)) Then Exit Do
        
        vTmp = .Fields(nField)
        If bString Then vTmp = Trim(vTmp)
        If vTmp = vValue Then Exit Do
        
        .MoveNext
        DoEvents
      Loop
    Else
      .MoveLast
      Do While Not .BOF
        If IsNull(.Fields(nField)) Then Exit Do
        
        vTmp = .Fields(nField)
        If bString Then vTmp = Trim(vTmp)
        If vTmp = vValue Then Exit Do
        
        .MovePrevious
        DoEvents
      Loop
    End If
  End With
End Sub

Public Sub UpdateADODC(adoDT As Adodc, nFields As Integer, nID_Num As Integer)
  With adoDT.Recordset
    .Requery
    If .RecordCount < 1 Then Exit Sub
    .MoveFirst
    Do While Not .EOF
      'The first field number is 0.
      If .Fields(nFields) = nID_Num Then Exit Do
      .MoveNext
      DoEvents
    Loop
  End With
End Sub

⌨️ 快捷键说明

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