(SOLVED) VB6 - Query/StoredProc works in Access but not in VB6 - please help!
I've got a bit of a problem with an application I am writing at the moment. I know it has to be something small which I'm missing, but I can't figure out what it is.
Basically, I have a Query (or Stored Procedure if you prefer) in an Access2000 database called qryApptList which has one parameter (DateOfAppt). This parameter is Text (as is the Date field in the database table).
If I run the query in Access, it prompts for the Date. I enter it in and it returns my results as it should. If I then do the same thing in VB6 using ADODB, it brings back nothing.
My VB6 code...
PHP Code:
Private m_oConnection As ADODB.Connection
Private m_oCmdGetAppointments As ADODB.Command
Public Sub OpenDatabaseConnection()
On Error GoTo ErrorHandler
If Len(m_sDatabasePath) = 0 Then
m_sDatabasePath = m_oParentForm.FileSelection
End If
m_oConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & m_sDatabasePath
If m_oConnection.State <> adStateOpen Then
Set m_oConnection = Nothing
MsgBox "Could not open connection to database", vbCritical + vbOKOnly, App.Title
Exit Sub
End If
Exit Sub
ErrorHandler:
HandleError "clsDatabaseHandler:OpenDatabaseConnection Sub"
End Sub
Public Function GetAppointments(ByVal sDate As String, ByRef oRsAppts As ADODB.Recordset)
On Error GoTo ErrorHandler
If m_oCmdGetAppointments Is Nothing Then
Set m_oCmdGetAppointments = New ADODB.Command
With m_oCmdGetAppointments
Set .ActiveConnection = m_oConnection
.CommandText = "qryApptList"
.CommandType = adCmdStoredProc
.Parameters.Append .CreateParameter("DateOfAppt", adVarChar, adParamInput, 20)
End With
End If
m_oCmdGetAppointments.Parameters("DateOfAppt") = sDate
Set oRsAppts = New ADODB.Recordset
oRsAppts.Open m_oCmdGetAppointments, , adOpenStatic, adLockReadOnly
Exit Function
ErrorHandler:
HandleError "clsDatabaseHandler:GetAppointments Function"
End Function And if it helps... my SQL query.
PHP Code:
PARAMETERS DateOfAppt Text ( 20 ); SELECT tblAppointments.ApptId, tblAppointments.User, tblAppointments.ApptDate, tblAppointments.ApptTime, tblAppointments.ClientId, tblAppointments.Comments, tblClients.Title, tblClients.FirstName, tblClients.Surname, tblClients.ContactNumber1 FROM tblClients INNER JOIN tblAppointments ON tblClients.ClientId=tblAppointments.ClientId WHERE tblAppointments.ApptDate=[DateOfAppt];
Any help would be massively appreciated as I'm tearing out what little hair I have left!