Workaround for com exe timer?? help

N

Nicole Seibert

Hi fellow helpers,
I created this little ditty so that I wouldn't have to write the far more
complex
ActiveX exe (and because I have never written an ActiveX exe). The problem
is I get an error with the following code on the starttime = now line.

Dim c As Integer, starttimer As Integer

c = 0
starttimer = Now() (I have also tried this: starttimer = Format(Now,
"h:mm:ss"))

Do While c = 0
If Range("A2") <> "" Then c = 1
If c = 1 Then Exit Do
If Now > starttimer + TimeValue("0, 30, 0") Then GoTo KICKIT
Loop

I think what is happening is that starttimer may be continually updating to
reflect "NOW", but I don't want it to do this. Is there a way to capture
current time without it updating?

Thanks,
Nicole
 
J

Jim Cone

Nicole,
Maybe this is what you want...
'---------------
Dim c As Integer, startTimer As Single
c = 0
startTimer = Timer

Do While c = 0
If Range("A2") <> "" Then c = 1
If c = 1 Then Exit Do
If Timer > startTimer + 30 Then GoTo KickIt
Loop
KickIt:
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware


"Nicole Seibert"
<[email protected]>
wrote in message
Hi fellow helpers,
I created this little ditty so that I wouldn't have to write the far more
complex
ActiveX exe (and because I have never written an ActiveX exe). The problem
is I get an error with the following code on the starttime = now line.

Dim c As Integer, starttimer As Integer

c = 0
starttimer = Now() (I have also tried this: starttimer = Format(Now,
"h:mm:ss"))

Do While c = 0
If Range("A2") <> "" Then c = 1
If c = 1 Then Exit Do
If Now > starttimer + TimeValue("0, 30, 0") Then GoTo KICKIT
Loop

I think what is happening is that starttimer may be continually updating to
reflect "NOW", but I don't want it to do this. Is there a way to capture
current time without it updating?

Thanks,
Nicole
 
N

Norman Jones

Hi Nicole,

Try declaring startTimer as double:

Dim c As Long
Dim startTimer As Double


An Integer data type can only hold values in the range -32,768 to 32,767.

From the intermediate window:

?CDbl(Now)

38913.7293171296
 
L

Leith Ross

Hello Nicole,

Your timer is set to run for a maximum of 30 minutes from when it i
started. While your timer is running Excel can't be updated
Range("A2") won't change until the timer has expired. This is why yo
need to use an ActiveX timer or an API timer.

Sincerely,
Leith Ros
 
N

Nicole Seibert

I am going for 30 minutes. My understanding is that the default for time is
seconds; Is this true? Then i would need 1800 seconds asking that no other
processes run.

Also, for the record, KICKIT goes back to the beginning of the SQL Query
request. I am asking that all further processes are suspended and if the
query is not sucessful to restart it after 30 minutes.

Intuitively this has me a little worried since i have already declared the
variables. Do I have to set them to nothing before I declare them again?

Thank you,
Nicole
 
N

Nicole Seibert

Okay. So, I won't user timer. And yes, i know I should be learning the
ActiveX stuff and I will... i about two minutes. But why wouldn't my
original code work -- I didn't use timer?

Thanks,
Nicole
 
B

Bob Phillips

I wouldn't use this, but the errors are gone

Dim co As Long
Dim starttimer As Double

c = 0
starttimer = Now()

Do While c = 0
If Range("A2") <> "" Then c = 1
If c = 1 Then Exit Do
If Now > starttimer + TimeValue("0:30:00") Then GoTo KICKIT
Loop


--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top