Scott Marcus
marcus at tsstech.com
Mon Aug 30 09:43:46 CDT 2004
Gustav,
This is strange. When I run the code you gave me, I get the following error "3001:Invalid argument". Yet when I open the query from the IDE, it runs just fine. I guess I should try some other types instead of dbOpenForwardOnly.
Scott
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Gustav Brock
Sent: Monday, August 30, 2004 10:03 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Access97 and ODBC Problem
Hi Scott
Did you try separating the database and querydef objects and/or using
a permanent query?
Dim dbs As Database
Dim qdf As QueryDef
Dim rst As Recordset
GetEmployee = False
Set dbs = CurrentDb
Set qdf = dbs.QueryDef("qdyTemp")
qdf.Connect = "ODBC;DSN=dataconnection;UID=user;PWD=password;DBQ=uxs02;DBA=R;APA=T;PFC=1;TLO=0;"
qdf.SQL = "SELECT surname, given_name FROM employees WHERE employeeno = '" & strEmployeeNo & "';"
Set rst = qdf.OpenRecordset(dbOpenForwardOnly, dbSQLPassThrough)
If rst.EOF <> True Then
GetEmployee = True
strName = Trim(rst!given_name) & " " & Trim(rst!surname)
End If
rst.Close
Set rst = Nothing
qdf.Close
Set qdf = Nothing
Set dbs = Nothing
/gustav
> Why would the following function work the first time it is called
> but hang on subsequent calls? It locks up on the OpenRecordset
> statement. I've tried variations on the OpenRecordset statement
> [such as Set rst = qdf.OpenRecordset()]. This is connecting to an
> Oracle database. Watch for line wrap.
> Public Function GetEmployee(strEmployeeNo As String, ByRef strName As String) As Boolean
> On Error GoTo HandleError
> Dim qdf As QueryDef
> Dim rst As Recordset
> GetEmployee = False
> Set qdf = CurrentDb.CreateQueryDef("")
> qdf.Connect = "ODBC;DSN=dataconnection;UID=user;PWD=password;DBQ=uxs02;DBA=R;APA=T;PFC=1;TLO=0;"
> qdf.SQL = "SELECT surname, given_name FROM employees WHERE employeeno = '" & strEmployeeNo & "';"
> Set rst = qdf.OpenRecordset(dbOpenForwardOnly, dbSQLPassThrough)
> If rst.EOF <> True Then
> GetEmployee = True
> strName = Trim(rst!given_name) & " " & Trim(rst!surname)
> End If
> rst.Close
> Set rst = Nothing
> qdf.Close
> Set qdf = Nothing
> Exit Function
> HandleError:
> Call Log(Err.Number & ": " & Err.Description, "modEmployeeManagement:GetEmployee")
> End Function
> Thanks in advance,
> Scott Marcus
> TSS Technologies
--
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com