M
Mike Knight
I have a MS Access 2003 Database named "AS400 Fields.mdb". This
database contains links to tables on an AS400.
In MS Excel 2003, I have VBA code that creates and executes queries
using the Access database, and returns the results to an Excel sheet.
There are many of these Excel query files and they all work at the
same time on different users' machines.
The first time the query is executed, results are returned to Excel in
usually less than 10 seconds. However, if the query is executed a
second time (without closing the Excel workbook), the code hangs at
the line surrounded by "=",s in the code below (this was tested with
message boxes). If the Excel file containing the VBA code is closed
and re-opened the code executes normally.
Is there a problem in my code? Am I doing something wrong?
Thanks,
Mike
Private Sub Execute_Query()
Dim X As Integer
Dim DB1 As ADODB.Connection
Dim RS1 As ADODB.Recordset
Const ConnectionStr As String =
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source= Myserver Location Goes here\AS400 Fields.mdb"
Set DB1 = New ADODB.Connection
DB1.Open ConnectionStr
Set RS1 = New ADODB.Recordset
'=============================
RS1.Open QryStr, DB1
'=============================
'Copy the data
ActiveCell.Offset(1, 0).Select
ActiveCell.CopyFromRecordset RS1
RS1.Close
DB1.Close
Set RS1 = Nothing
Set DB1 = Nothing
End Sub
database contains links to tables on an AS400.
In MS Excel 2003, I have VBA code that creates and executes queries
using the Access database, and returns the results to an Excel sheet.
There are many of these Excel query files and they all work at the
same time on different users' machines.
The first time the query is executed, results are returned to Excel in
usually less than 10 seconds. However, if the query is executed a
second time (without closing the Excel workbook), the code hangs at
the line surrounded by "=",s in the code below (this was tested with
message boxes). If the Excel file containing the VBA code is closed
and re-opened the code executes normally.
Is there a problem in my code? Am I doing something wrong?
Thanks,
Mike
Private Sub Execute_Query()
Dim X As Integer
Dim DB1 As ADODB.Connection
Dim RS1 As ADODB.Recordset
Const ConnectionStr As String =
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source= Myserver Location Goes here\AS400 Fields.mdb"
Set DB1 = New ADODB.Connection
DB1.Open ConnectionStr
Set RS1 = New ADODB.Recordset
'=============================
RS1.Open QryStr, DB1
'=============================
'Copy the data
ActiveCell.Offset(1, 0).Select
ActiveCell.CopyFromRecordset RS1
RS1.Close
DB1.Close
Set RS1 = Nothing
Set DB1 = Nothing
End Sub