Option Explicit 'Declare database objects Private objConnPublisher As ADODB.Connection Private objRSPublisher As ADODB.Recordset Dim strPublisher As String Private Sub cmdSearch_Click() 'Set a reference to the ADO connection object Set objConnSearch = New ADODB.Connection Set objRSSearch = New ADODB.Recordset ' Add code to allow user selection... strPublisher = Trim(cboPublisher) If Len(cboPublisher.Text) = 0 Then ' No user input... strSearch = "" Else ' Publisher... strSearch = " Where Pub_Name = '" & strPublisher & "' Order By City " End If ' Minimize connection time... objConnSearch.Open "Driver=SQL Server;Server=T22DEV18;" & _ "Database=Pubs" objRSSearch.Source = _ "SELECT pub_name, City, Country FROM Publishers " & _ " " & strSearch & " " objRSSearch.Open , objConnSearch, 1, 1 If objRSSearch.RecordCount > 0 Then ‘ Assign values to flex grid… MSHFlexGrid1.Refresh MSHFlexGrid1.CollapseAll ' Set up grid... MSHFlexGrid1.ColWidth(0) = 2000 MSHFlexGrid1.ColWidth(1) = 2000 MSHFlexGrid1.ColWidth(2) = 2000 MSHFlexGrid1.ColHeaderCaption(0, 0) = "Publication" MSHFlexGrid1.ColHeaderCaption(0, 1) = "City" MSHFlexGrid1.ColHeaderCaption(0, 2) = "Country" Set MSHFlexGrid1.DataSource = objRSSearch ' Clean up... objRSSearch.Close Set objRSSearch = Nothing objConnSearch.Close Set objConnSearch = Nothing Else MsgBox "No records found" End If End Sub>I have a funcion in class module that returns an ADODB.Recordset. I understand the theory behind this. My problem is that I do not know how to return the recordset to the calling sub. Here is the inf: