** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Otros Productos Microsoft
  Mensajes nuevos Mensajes nuevos RSS - Ejecutar programa cada cierto tiempo
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoEjecutar programa cada cierto tiempo

 Responder Responder
Autor
Mensaje
Axl666 Ver desplegable
Colaborador
Colaborador


Unido: 18/Octubre/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 858
Enlace directo a este mensaje Tema: Ejecutar programa cada cierto tiempo
    Enviado: 14/Noviembre/2007 a las 00:50
Hola que tal.
 
Hice un pequeño programa para outlook, lo que quiero es que se ejecute automaticamente cada cierto tiempo.
Como le puedo hacer?
 
Espero me halla podido explicar y gracias por su ayuda.
Arriba
byronlcl Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 10/Agosto/2007
Localización: Guatemala
Estado: Sin conexión
Puntos: 2131
Enlace directo a este mensaje Enviado: 14/Noviembre/2007 a las 02:07
Si tu programa está abierto todo el tiempo, puedes activar el timer de un formulario (oculto por ejemplo) y realizar la operación cada cierto tiempo:
 
Private Sub Form_Load()
    '1000 es el valor de un segundo
    'aqui corre la función del timer cada 30 segundos
    Me.TimerInterval = 1000 * 30
End Sub
 
Private Sub Form_Timer()
    'aqui haces lo que quieras
End Sub
 
Si tu programa no esta abierto, puedes hacerlo con una tarea de windows
 
espero te ayude, saludos,
Arriba
SuperAgente86 Ver desplegable
Colaborador
Colaborador


Unido: 11/Noviembre/2006
Localización: España
Estado: Sin conexión
Puntos: 1978
Enlace directo a este mensaje Enviado: 14/Noviembre/2007 a las 02:08
Programale en al adminisitrador de tareas de windows (Tareas programadas). Para eso está esa utilidad del sistema operativo.
Saludos
Centro de Inteligencia y Seguridad:

Centro Nacional de Inteligencia
Arriba
Axl666 Ver desplegable
Colaborador
Colaborador


Unido: 18/Octubre/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 858
Enlace directo a este mensaje Enviado: 14/Noviembre/2007 a las 02:14
Graccias por contestar.
 
Como lo puedo programar en Tareas de Windows?
 
Saludos.
Arriba
SuperAgente86 Ver desplegable
Colaborador
Colaborador


Unido: 11/Noviembre/2006
Localización: España
Estado: Sin conexión
Puntos: 1978
Enlace directo a este mensaje Enviado: 14/Noviembre/2007 a las 02:19
Este ya es un tema de Windows, no de Access.
En Win XP
Inicio->Programas->Accesorios->Herramientas del Sistema->Tareas programadas y.....agrega tarea y sigue el aistente.
Centro de Inteligencia y Seguridad:

Centro Nacional de Inteligencia
Arriba
Axl666 Ver desplegable
Colaborador
Colaborador


Unido: 18/Octubre/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 858
Enlace directo a este mensaje Enviado: 14/Noviembre/2007 a las 02:24

Disculpa.

Pero yo tengo este codigo:
 
 
  Dim myOlApp As New Outlook.Application
  Dim myNameSpace As Outlook.NameSpace
  Dim myInbox As Outlook.MAPIFolder
  Dim myDestFolder As Outlook.MAPIFolder
  Dim myItems As Outlook.Items
  Dim myItem As Object
  Dim Lcon01 As Long
 
  Set myNameSpace = myOlApp.GetNamespace("MAPI")
  Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
  Set myItems = myInbox.Items
  Set myDestFolder = myInbox.Folders("Buzón: Cesar Rivera Palma")
  Set myItem = myItems.Find("[CreationTime] < '" & Format(DateAdd("n", -20, Now), "dd/mm/yyyy hh:nn AMPM") & "'")
  'Set myItem = myItems.Find("[LastModificationTime] < '" & "Lunes" & " " & Format(DateAdd("n", -20, Now), "ddddd h:nn AMPM") & "'")
  Debug.Print myItems.Count
  Debug.Print Format(DateAdd("n", -20, Now), "dd/mm/yyyy hh:nn AMPM")
  Lcon01 = 0
  While TypeName(myItem) <> "Nothing"
   
    Lcon01 = Lcon01 + 1
    Debug.Print TypeName(myItem)
    'myItem.Move myDestFolder
    Set myItem = myItems.FindNext
    'Debug.Print myItem
  Wend
 
Como lo programo en las Tareas programadas, y gracias por tu ayuda.
Arriba
SuperAgente86 Ver desplegable
Colaborador
Colaborador


Unido: 11/Noviembre/2006
Localización: España
Estado: Sin conexión
Puntos: 1978
Enlace directo a este mensaje Enviado: 14/Noviembre/2007 a las 09:18

Entonces, eso no es un programa...es un trozo de codigo que como te decía byronlcl, quizá lo mas aconsejable es que lo programaras en el evento Timer de algun formulario.

Pero si lo que deseas es que corra en el adminisitrador de tareas...lo  que puedes hacer es meter ese codigo en un modulo BAS y ponerle como Funcion...es decir...
Function ProcesoOutlook()
 Dim myOlApp As New Outlook.Application
  Dim myNameSpace As Outlook.NameSpace
  Dim myInbox As Outlook.MAPIFolder
  Dim myDestFolder As Outlook.MAPIFolder
  Dim myItems As Outlook.Items
  Dim myItem As Object
  Dim Lcon01 As Long
 
  Set myNameSpace = myOlApp.GetNamespace("MAPI")
  Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
  Set myItems = myInbox.Items
  Set myDestFolder = myInbox.Folders("Buzón: Cesar Rivera Palma")
  Set myItem = myItems.Find("[CreationTime] < '" & Format(DateAdd("n", _
      -20, Now), "dd/mm/yyyy hh:nn AMPM") & "'")
  'Set myItem = myItems.Find("[LastModificationTime] < '" & "Lunes" & " " & Format(DateAdd("n", -20, Now), "ddddd h:nn AMPM") & "'")
  Debug.Print myItems.Count
  Debug.Print Format(DateAdd("n", -20, Now), "dd/mm/yyyy hh:nn AMPM")
  Lcon01 = 0
  While TypeName(myItem) <> "Nothing"
   
    Lcon01 = Lcon01 + 1
    Debug.Print TypeName(myItem)
    'myItem.Move myDestFolder
    Set myItem = myItems.FindNext
    'Debug.Print myItem
  Wend
 'aquí te faltan cerrar los objetos de automatización
 'aquí, despues de correr este codigo, cierra el access
 docmd.Quit
End Function

Una vez hecho eso, create una macro que se llame Autoexec y en la accion de esa macro (Ejecutar codigo) pon simplemente =ProcesoOutlook()
Esto hará que cada X tiempo (Lo que tu programes en la Tarea de Windows) se abrirá esa MDB, se ejecutará la macro autoexec-Se ejecutará ese codigo tuyo....-> Hará lo que tenga que hacer-> se cerrará Access
Saludos
Centro de Inteligencia y Seguridad:

Centro Nacional de Inteligencia
Arriba
Axl666 Ver desplegable
Colaborador
Colaborador


Unido: 18/Octubre/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 858
Enlace directo a este mensaje Enviado: 14/Noviembre/2007 a las 17:01
Gracias por contestar.
 
Ese codigo, lo hice desde outlook, como le hago para que ese codigo se ejecute internamente de ahi y no de Access
Arriba
Guacharaca Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 20/Septiembre/2005
Estado: Sin conexión
Puntos: 1190
Enlace directo a este mensaje Enviado: 14/Noviembre/2007 a las 17:25
Primero... debes hacer la pregunta en el foro correcto, estas en el de access, por lo tanto todos presumimos que quieres hacerlo desde acces, pidele a un Administrador que lo mueva al foro adecuado, y alli la gente que conozca del tema seguramente lo mirara con mas atencion.
Saludos
"Nadie es tan importante para hacerlo solo y nadie es tan insignificante para que su ayuda no sirva"
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4315
Enlace directo a este mensaje Enviado: 14/Noviembre/2007 a las 17:56
axl666
¿por que abres un hilo nuevo explicado todo el proceso de nuevo?
 
En principio es cierto que no debería haberte contestado a esta pregunta por se diferente a la del hilo inicial (tema outlook), pero lo he hecho....
 
no cierras el hilo anterior, no contestas si has probado mi solución y abres un hilo nuevo.
 
personalmente me he quedado un poco decepcionado... lo siento per tenia que decirlo.
 
Arriba
Axl666 Ver desplegable
Colaborador
Colaborador


Unido: 18/Octubre/2005
Localización: Mexico
Estado: Sin conexión
Puntos: 858
Enlace directo a este mensaje Enviado: 05/Diciembre/2007 a las 04:05
Por cierto tambien deberian de cerrar este hilo, gracias.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable