Scott Marcus
marcus at tsstech.com
Mon Aug 30 10:52:09 CDT 2004
Gustav,
What you suggested didn't work either. Your suggestion did lead me down another path. Here is what works...
Public Function GetEmployee(strEmployeeNo As String, ByRef strName As String) As Boolean
On Error GoTo HandleError
Dim wrk As Workspace
Dim con As Connection
Dim rst As Recordset
Set wrk = CreateWorkspace("NewWorkspace", "admin", "", dbUseODBC)
Set con = wrk.OpenConnection("Con", , True, "ODBC;DSN=dataconnection;UID=user;PWD=password;DBQ=uxs02;DBA=R;APA=T;PFC=1;TLO=0;")
GetEmployee = False
Set rst = con.OpenRecordset("SELECT surname, given_name FROM employees WHERE employeeno = '" & strEmployeeNo & "';")
If rst.EOF <> True Then
GetEmployee = True
strname = Trim(rst!given_name) & " " & Trim(rst!surname)
End If
rst.Close
Set rst = Nothing
con.Close
Set con = Nothing
wrkODBC.Close
Set wrkODBC = Nothing
Exit Function
HandleError:
Call Log(Err.Number & ": " & Err.Description, "modEmployeeManagement:GetEmployee")
End Function
Thanks for your help.
Scott Marcus
-----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