[AccessD] Access97 and ODBC Problem

Gustav Brock gustav at cactus.dk
Mon Aug 30 09:02:52 CDT 2004


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




More information about the AccessD mailing list