📄 adoprocess.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 + -