• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 255
  • Last Modified:

how to extend the funtion Timer?

Hello Experts,
how to extend the Timer function over 60000 milliseconds??
I need to to extend the time of r one of my function
0
aitsu01
Asked:
aitsu01
  • 7
  • 6
1 Solution
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
what I do is this:
have the timer interval set to 1000 (1 second)
and have 1 form-level variable set initially to the number of seconds you want to wait.
the timer interval would then decrease that variable, and when 0, run the procedure/work to do, and resets the interval counter.


Private gTimerInterval as Integer 
Private Sub Timer1_Timer()
  Timer1.Enabled = false
  Timer1.Interval = 1000 
  if gTimerInterval <= 0 then
    gTimerInterval = 100  ' set the interval in seconds again
    DoWork()              ' run the code you want to run in the interval  
  else
    gTimerInterval = gTimerInterval -1 
  end if 

  Timer1.Enabled = true
End Sub

Open in new window

0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
Here is another very similar approach using a Date variable...

Option Explicit
 
Private minutes As Integer
Private targetTime As Date
 
Private Sub Form_Load()
    Timer1.Enabled = False
    minutes = 11
    SetNewTargetTime
    Timer1.Interval = 1000
    Timer1.Enabled = True
End Sub
 
Private Sub SetNewTargetTime()
    targetTime = DateAdd("n", minutes, Now)
End Sub
 
Private Sub Timer1_Timer()
    If Now > targetTime Then
        Timer1.Enabled = False
        
        ' do something here...
        Debug.Print "something"
                
        SetNewTargetTime
        Timer1.Enabled = True
    End If
End Sub

Open in new window

0
 
aitsu01Author Commented:
Hello angellll,
the value of the gTimerInterval = 100 ?youe mean 100 seconds or 100 milliseconds?
0
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

 
aitsu01Author Commented:
Hello idle mind;
refered to targetTime = DateAdd("n", minutes, Now)
 what stands the "n" for?
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
>the value of the gTimerInterval = 100 ?youe mean 100 seconds or 100 milliseconds?

would mean 100 seconds, as the timer1.interval is set to 1000 (means 1 second).


>refered to targetTime = DateAdd("n", minutes, Now)
> what stands the "n" for?
n stands for minutes, see the reference:
http://msdn2.microsoft.com/en-us/library/cb7z8yf9.aspx
0
 
aitsu01Author Commented:
if i have two timer how can i solve it??
for example with timer1 and timer2
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
what are the 2 timers doing?
0
 
aitsu01Author Commented:
timer1 upload my file.txt to my ftp web space
timer2 delete the uploaded text file and load the form1

see below here for the code:
Private Sub Timer1_Timer()
   Dim host_name As String
    Dim time As String 
   Dim user As String
   Dim directory As String
  
   
   
   Unload form1
 
   'On Error Resume Next
     Texttime = Now
    Enabled = False
    MousePointer = vbHourglass
    txtResults.Text = "Working"
    txtResults.SelStart = Len(txtResults.Text)
    DoEvents
 
  
    host_name = txtHost.Text
    If LCase$(Left$(host_name, 6)) <> "ftp://" Then host_name = "ftp://" & host_name
    inetFTP.URL = host_name
 
    inetFTP.UserName = txtUserName.Text
    inetFTP.Password = txtPassword.Text
    time = CStr(Time)
    directory = mydirectoryfile
    inetFTP.Execute , "mkdir " & directory
    Pause 1000 'give time for the process completing operation
    inetFTP.Execute , "cd " & directory
    Pause 1000
    On Error Resume Next
    
    inetFTP.Execute , "Put " & _
          "c:\myfile.txt" & " & "_" & time
End Sub
 
 
 
 
Private Sub Timer2_Timer()
 
 Kill "c:\myfile.txt"
 Load form1
   
End Sub

Open in new window

0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
why don't you kill and load form1 at the end of the timer1 ?
0
 
aitsu01Author Commented:
an eror will appear
i used the second timer just to get a little more time to complete the operation
anyway let me try again with your suggestion i resumed amny time that code so maybe now it will works
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
>an eror will appear
would be interesting to learn that error.

anyhow, how much time between that last line and the additional steps?

it would go like this:

Private gTimer2 as Integer
 
Private Sub Timer1_Timer()
   Dim host_name As String
    Dim time As String 
   Dim user As String
   Dim directory As String
  
   Timer1.enabled = false 'stop this timer.
   
   Unload form1
 
   'On Error Resume Next
     Texttime = Now
    Enabled = False
    MousePointer = vbHourglass
    txtResults.Text = "Working"
    txtResults.SelStart = Len(txtResults.Text)
    DoEvents
 
  
    host_name = txtHost.Text
    If LCase$(Left$(host_name, 6)) <> "ftp://" Then host_name = "ftp://" & host_name
    inetFTP.URL = host_name
 
    inetFTP.UserName = txtUserName.Text
    inetFTP.Password = txtPassword.Text
    time = CStr(Time)
    directory = mydirectoryfile
    inetFTP.Execute , "mkdir " & directory
    Pause 1000 'give time for the process completing operation
    inetFTP.Execute , "cd " & directory
    Pause 1000
    On Error Resume Next
    
    inetFTP.Execute , "Put " & _
          "c:\myfile.txt" & " & "_" & time
 
   gTimer2 = 100 'wait 100 seconds
   Timer2.enabled = true  'and start waiting...
End Sub
  
 
Private Sub Timer2_Timer()
 if gTimer2 <= 0 then 
    Timer2.enabled = false
    Kill "c:\myfile.txt"
    Load form1
 end if
 gTimer2 = gTimer2 -1 
End Sub

Open in new window

0
 
aitsu01Author Commented:
it appears an runtime error 70
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
70 = permission denied... for example, a file is still open/locked by another process...

I assume on the line where you try to "kill" (delete) the file?

then, you could rerun the timer2 on (any) error that happens during "killing" the file
Private Sub Timer2_Timer()
 if gTimer2 <= 0 then 
    Timer2.enabled = false
  on error resume next
 
    Kill "c:\myfile.txt"
    if err.number <> 0 then
      Timer2.enabled = true
      gTimer2 = 100
      exit sub 
    end if    
 
    Load form1
 end if
 
 gTimer2 = gTimer2 -1 
End Sub

Open in new window

0
 
aitsu01Author Commented:
Hello  angellll,
how about the property of the timer 1 and timer 2?
i should set both to o millisecond or 1000 milliseconds?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 7
  • 6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now