改动了一下,供参考。
详见附件:
点击下载此附件
修改了序号的函数,增加了一个参数,用于确定那个字段进行了排序,frmOpen窗体没有排序,frmOpen1有排序
Function SerializeAdo(qryname As String, KeyName As String, KeyValue, Optional Orderneme) As Long
' On Error GoTo Err_Serialize
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim px
If IsEmpty(Orderneme) Then
px = "select * from " & qryname & " ORDER BY " & Orderneme
Else
px = "select * from " & qryname
End If
rs.ActiveConnection = CurrentProject.Connection
rs.Open px, , adOpenStatic, adLockReadOnly, adCmdTableDirect
'Find the current record with key value
Select Case rs.Fields(KeyName).Type
' Find data type key value
Case DB_INTEGER, DB_LONG, DB_CURRENCY, DB_SINGLE, DB_DOUBLE, DB_BYTE
rs.Find "[" & KeyName & "] = " & KeyValue
' Find date type key value
Case DB_DATE
rs.Find "[" & KeyName & "] = #" & KeyValue & "#"
' Find text type key value
Case DB_TEXT
rs.Find "[" & KeyName & "] = '" & KeyValue & "'"
Case Else
MsgBox "Errer ; Invalid KeyName or KeyValue "
End Select
SerializeAdo = Nz(rs.AbsolutePosition, 0)
rs.Close
Set rs = Nothing
Exit Function
Err_Serialize:
MsgBox "QueryName ", 64, " is wrong "
Exit Function
End Function