ADO模块调用出错的有关问题

ADO模块调用出错的问题;我做了一个模块,专门做为数据库连接或者断开时使用,但老是提示错误如下“编译错误!

ADO模块调用出错的问题;
我做了一个模块,专门做为数据库连接或者断开时使用,但老是提示错误如下“编译错误!参数不可用”
我的代码如下,请各位帮忙看看,刚开通帐户没什么可用分还请见凉,


以下为ADO连接模块的语句:
Private cnn As New ADODB.Connection

Public Sub DBconnect()
  cnn.ConnectionString = "Provider = microsoft.jet.oledb.4.0;persist security info = false;data source = " & PJPath & "\Inbound Data System.mdb;jet oledb:DataBase password = "  
  cnn.Open  
End Sub

Public Sub DBDisconnect()
  cnn.Close
  Set cnn = Nothing
End Sub

Public Function rs(ByVal sqlstmt As String) As ADODB.Recordset
Dim rst As New ADODB.Recordset 
  DBconnect
  Set rst.ActiveConnection = cnn
  rst.Open sqlstmt
  Set rs = rst  
End Function

以下为主程序调用的过程,到了"If Not rs.EOF Then"就提示错误了:
Public Sub CN_QF() 'select [DMQY NO]
On Error Resume Next
  
  sql_f = "Select distinct[DMQY NO] from [fabric details]"
  sql_t = "Select distinct[DMQY NO] from [Packing List]"

  rs (sql_f)
  If Not rs.EOF Then
  Label_DMQYNO.Caption = CStr(rs(0).Value)
  Lab_Remarks.Caption = CStr(rs(0).Value)
  Else: rs (sql_t) 'Set rs = conn.Execute(sql_t)
  Label_DMQYNO.Caption = CStr(rs(0).Value)
  Lab_Remarks.Caption = CStr(rs(0).Value)
  End If

rs.Close
Set rs = Nothing
DBDisconnect
   
End Sub

[解决办法]
Private cnn As New ADODB.Connection

Public Sub DBconnect()
cnn.ConnectionString = "Provider = microsoft.jet.oledb.4.0;persist security info = false;data source = " & PJPath & "\Inbound Data System.mdb;jet oledb:DataBase password = "
cnn.Open
End Sub

Public Sub DBDisconnect()
cnn.Close
Set cnn = Nothing
End Sub

Public Function OpenRS(ByVal sqlstmt As String) As ADODB.Recordset
Dim rst As New ADODB.Recordset
DBconnect
Set rst.ActiveConnection = cnn
rst.Open sqlstmt
Set rs = rst
End Function

以下为主程序调用的过程,到了"If Not rs.EOF Then"就提示错误了:
Public Sub CN_QF() 'select [DMQY NO]
On Error Resume Next
dim rs as adodab.recordset
sql_f = "Select distinct[DMQY NO] from [fabric details]"
sql_t = "Select distinct[DMQY NO] from [Packing List]"

set rs=openrs (sql_f)
If Not rs.EOF Then
Label_DMQYNO.Caption = CStr(rs(0).Value)
Lab_Remarks.Caption = CStr(rs(0).Value)
Else: rs (sql_t) 'Set rs = conn.Execute(sql_t)
Label_DMQYNO.Caption = CStr(rs(0).Value)
Lab_Remarks.Caption = CStr(rs(0).Value)
End If

rs.Close
Set rs = Nothing
DBDisconnect

End Sub
[解决办法]
你原先声明的rs是一个函数,不是一个对象,我给你改了个函数名,下面代码没漏改个地方:

Public Function OpenRS(ByVal sqlstmt As String) As ADODB.Recordset
Dim rst As New ADODB.Recordset
DBconnect
Set rst.ActiveConnection = cnn
rst.Open sqlstmt
Set openrs = rst
End Function