Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

VBA query times out, ignores connection timeout setting

Posted on 2007-03-17
5
Medium Priority
?
2,297 Views
Last Modified: 2012-06-27
I have a VBA form that is timing out accessing a MS SQL server view. I have two button on this form. On runs a report preview a la the standard wizard setup. The other run code in the form where I open the view and loop through the rows outputting a text transaction file.

The view takes about 1:14 minutes to run. Under File --> Connection --> advanced, I set the timeout to 120 seconds and that took care of the report preview. However, the query coded in my VBA form times out after 30 seconds, regardless of what I set the connection timeout to. Whats up? Here's my query call:

    Dim rs As New ADODB.Recordset

    rs.Open "select * from _vwPaActuaryActive", GetADoConnectString("PA"), adOpenForwardOnly, adLockReadOnly, adCmdText

0
Comment
Question by:jmarkfoley
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 
LVL 11

Expert Comment

by:andrewbleakley
ID: 18742508
The time you have set is the connection timeout (the time after which it assumes the SQL server is not present if it receives no response). You will need to use an ADODB.Command object and set it's CommandTimeout property as below.

Dim cn as New ADODB.Connection
Dim cmd as New ADODB.Command
Dim rs As New ADODB.Recordset
cn.Open( GetADoConnectString("PA") )
cmd.ActiveConnection = cn
cmd.CommandType = adCmdText
cmd.CommandTimeout = 120
cmd.CommandText = "select * from _vwPaActuaryActive"
rs = cmd.Execute
rs.Close()
0
 
LVL 1

Author Comment

by:jmarkfoley
ID: 18742627
Compiling your example gives me: "Invalid use of property" on the line: rs= cmd.Execute

suggestions?
0
 
LVL 11

Accepted Solution

by:
andrewbleakley earned 2000 total points
ID: 18742654
Sorry
Set rs = cmd.Execute
I don't have a VB IDE on this machine

0
 
LVL 1

Author Comment

by:jmarkfoley
ID: 18742769
That did it! Thanks. One of these days I'm going to have to read up on 'set'. Once upon a time, there wasn't a difference between 'a = b' and 'set a = b'.

0
 
LVL 11

Expert Comment

by:andrewbleakley
ID: 18742855
a = b assigns a VALUE to a variable
set a = b assigns an OBJECT to a variable
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes a method of delivering Word templates for use in merging Access data to Word documents, that requires no computer knowledge on the part of the recipient -- the templates are saved in table fields, and are extracted and install…
We live in a world of interfaces like the one in the title picture. VBA also allows to use interfaces which offers a lot of possibilities. This article describes how to use interfaces in VBA and how to work around their bugs.
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…

721 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question