Done! The function name was not matching to its signature.

GetADOExcelRecordSet <> GetADOExcelConnection

It didnt know where to return it to since it didnt match.

Also, no need for the reverse single quotes in this situation.

I added my code I already posted to establish the connection too.

VB Code:
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.    
  5.     Dim sPath As String
  6.     Dim oRs As ADODB.Recordset
  7.  
  8.     sPath = App.Path & "\TestFile.xls"
  9.    
  10.     Set oRs = GetADOExcelRecordSet(sPath)
  11.     oRs.MoveFirst
  12.     oRs.Move 5
  13.     MsgBox oRs.Fields(1).Value '6th row, column B
  14.    
  15. End Sub
  16.  
  17.  
  18. Private Function [b]GetADOExcelRecordSet[/b](ByVal Path As String, _
  19.                 Optional ByVal Headers As Boolean = True) As Recordset
  20.                
  21.     Dim sCnn As String
  22.     Dim sWorksheet As String
  23.     Dim sRequest As String
  24.    
  25.     sWorksheet = "Sheet1"
  26.    
  27.     Dim oCnn As ADODB.Connection
  28.     Set oCnn = New ADODB.Connection
  29.     Dim oRs As Recordset
  30.     Set oRs = New ADODB.Recordset
  31.    
  32.     sCnn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
  33.             "Data Source=" & Path & ";" & _
  34.             "Extended Properties=""Excel 8.0;HDR=No" & _
  35.             IIf(Headers, "Yes", "No") & """"
  36.            
  37.     oCnn.ConnectionString = sCnn
  38.     oCnn.Open
  39.  
  40.     'Read a sheet:
  41.  
  42.     sRequest = "SELECT * FROM [" & sWorksheet & "$]"
  43.     oRs.Open sRequest, oCnn, adOpenDynamic, adLockOptimistic
  44.     Set [b]GetADOExcelRecordSet[/b] = oRs
  45.    
  46. End Function