Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ejecutar procedimientos automaticos

Estas en el tema de Ejecutar procedimientos automaticos en el foro de Visual Basic clásico en Foros del Web. Por favor necesito saber como hacer, para lograr que una sentencia corra de manera automatica, cada cierto tiempo con unos datos que yo tengo en ...
  #1 (permalink)  
Antiguo 03/05/2007, 12:01
 
Fecha de Ingreso: marzo-2007
Mensajes: 13
Antigüedad: 17 años, 1 mes
Puntos: 0
Ejecutar procedimientos automaticos

Por favor necesito saber como hacer, para lograr que una sentencia corra de manera automatica, cada cierto tiempo con unos datos que yo tengo en una base de datos Acces, por favor AYUDA
  #2 (permalink)  
Antiguo 03/05/2007, 15:14
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Re: Ejecutar procedimientos automaticos

Tienes que insertar un Timer. El Timer es muy fácil de usar. Tienes que asignarle un intervalo (1000 equivale a un segundo) y también tienes que activarlo (Timer1.enabled=true).

Lo que hace el Timer es que cada X tiempo ejecuta un evento, al que puedes acceder en tiempo de diseño haciendo click sobre el timer. Por supuesto, es un objeto invisible.

No sé si esto te vale, o si me estoy pasando de listo y lo que preguntas es otra cosa.

Un saludo
  #3 (permalink)  
Antiguo 07/05/2007, 12:54
 
Fecha de Ingreso: marzo-2007
Mensajes: 13
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Ejecutar procedimientos automaticos

chamo esta bien tu respuesta, pero yo lo que quiero es que todos los fines de mes se jecute de manera automatica una rutina, tu crees que se pueda hacer con eso???
  #4 (permalink)  
Antiguo 24/05/2007, 13:33
 
Fecha de Ingreso: julio-2004
Mensajes: 104
Antigüedad: 19 años, 9 meses
Puntos: 0
Re: Ejecutar procedimientos automaticos

Claro que se puede Sr. Al timer lo programas para que se ejecute cada (1000) 1 segundo, y este es un reloj que va a estar corriendo en tu aplicacion...
Ademas tendras 1 variable que guardará la fecha en que quieres el evento
'-----
Dim FechaEvento as date
Dim FechaActual as date

en el timer
if date()=fechaevento then
ejecutas lo que necesitas
endif

y TAN TAN
__________________
Podria no estar de acuerdo con lo que dices....., pero daria mi vida por el derecho que tienes de decirlo.
  #5 (permalink)  
Antiguo 24/05/2007, 18:47
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Y por qué no un .exe o .bat que se ejecute como tarea programada de Windows?

Hola

Yo lo que hago con este tema es lo siguiente:
- Hago un ejecutable que corra las instrucciones que me interesan.
- Creo una tarea programada en Windows que ejecute el ejecutable (uf!!) cada vez que me interese, por ejemplo, determinados días de la semana.

No se si te sirva. Sobre el trabajo desde VB6 con MS-DOS, aquí te va un ejemplo por si te sirve de algo.

Saludos.

................................................

Public Comando As String
Private Const PROCESS_QUERY_INFORMATION = &H400
Private Const STILL_ACTIVE = &H103
Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess&, ByVal bInheritHandle&, ByVal dwProcessId&) _
As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) _
As Long
Private VCadena As String
Private VCadena1 As String
Private VCadena2 As String
Private VMonth1 As String
Private VDay1 As String
Private VYear1 As String
Private VHour1 As String
Private VMinute1 As String
Sub EsperarShell(sCmd As String)
Dim hShell As Long
Dim hProc As Long
Dim codExit As Long
' ejecutar comando
hShell = Shell(Environ$("Comspec") & " /c " & sCmd, 2)
' esperar a que se complete el proceso
hProc = OpenProcess(PROCESS_QUERY_INFORMATION, False, hShell)
Do
GetExitCodeProcess hProc, codExit
DoEvents
Loop While codExit = STILL_ACTIVE
'MsgBox "El Proceso ha Terminado", vbInformation + vbOKOnly, "Mensaje"
End Sub
Private Sub MSDOS()
'Supongamos que la fecha 14 de octubre
VYear1 = Trim(Str(Year(Date)))
VYear1 = Right(VYear1, 2)
VMonth1 = Trim(Str(Month(Date)))
If Val(VMonth1) < 10 Then
VMonth1 = "0" & VMonth1
End If
VDay1 = Trim(Str(Day(Date)))
If Val(VDay1) < 10 Then
VDay1 = "0" & VDay1
End If
VHour1 = Trim(Str(Hour(Time)))
If Val(VHour1) < 10 Then
VHour1 = "0" & VHour1
End If
VMinute1 = Trim(Str(Minute(Time)))
If Val(VMinute1) < 10 Then
VMinute1 = "0" & VMinute1
End If
VCadena1 = VYear1 & VMonth1 & VDay1 & "_" & VHour1 & VMinute1 & "_" & "AST"
'VCadena1="071014_2215_AST"
VCadena = "MD Z:\AUTI\BCK\A" & VYear1
'VCadena = MD Z:\AUTI\BCK\A07
Comando = VCadena
EsperarShell (Comando)
VCadena = "XCOPY /S Z:\AUTI\AST\*.* Z:\AUTI\BCK\A" & VYear1
'VCadena = XCOPY /S Z:\AUTI\AST\*.* Z:\AUTI\BCK\A07 (Salva las bases)
Comando = VCadena
EsperarShell (Comando)
VCadena = "PKZIP -ASalt A" & VYear1 & " Z:\AUTI\BCK\A" & VYear1 & "\*.*"
'VCadena = PKZIP -ASalt A07 Z:\AUTI\BCK\A07\*.*
'Crea fichero A07.zip, con clave "alt", en el que compacta el contenido de Z:\AUTI\BCK\A07\*.*
Comando = VCadena
EsperarShell (Comando)

VCadena = "RENAME A07.zip " & VCadena1 & ".zip"
'VCadena = RENAME A07.zip 071014_2215_AST
Comando = VCadena
EsperarShell (Comando)
VCadena = "RD /S/Q Z:\AUTI\BCK\A" & VYear1
'VCadena = RD /S/Q Z:\AUTI\BCK\A07 'Borra el directorio y queda sólo el compactado
Comando = VCadena
EsperarShell (Comando)
End Sub
Private Sub Form_Load()
MSDOS
End
End Sub
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:55.