Access - Refresh automático de una tabla

Filtrado por el usuario: jesus
<<>>
Filtrado por el usuario 'jesus' (Eliminar fitro)
 
Vista:
Imágen de perfil de Jose
Val: 71
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Refresh automático de una tabla

Publicado por Jose (137 intervenciones) el 23/08/2024 18:26:05
Buen día,
Saludos a Todos,

En mi sistema ya establecido tuve la necesidad de conectarme con una app en MySQL, el objetivo es obtener en tiempo real los tiempos muertos que se están generando en el piso de producción, cada vez que entra un reporte nuevo yo tengo que registrarlo en mi base de datos (tabla) y asignarlo al supervisor responsable, todo está funcionando perfectamente, el único detalle que tengo es que tuve que hacer una rutina para estar actualizando la información que se genera externamente, esto me consume recursos en el sistema ya que estoy usando un "OnTimer" en un formulario abierto constantemente para detectar nuevos eventos y poderlos registrar en mi base de datos

Habra alguna manera que esta información se actualice de forma automatica?

Es decir, si yo tengo abierto el formulario que se esté actualizando de forma automatica sin ocupar el recurso del OnTimer
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Refresh automático de una tabla

Publicado por Anonimo (3398 intervenciones) el 24/08/2024 19:48:13
Si de lo que se trata es de cambiar 'el latido' de Access (tiempos de refresco ... etc) lo puedes lograr en las opciones de Access , sección configuración del cliente (tiempos de espera)

Un consejo, se consciente de que refrescar los datos con mas frecuencia dejara menos tiempo para otras cosas internas (también es cierto que los que predetermina son largos), si la opción se ajusta a la necesidad, intenta lograr el equilibrio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Refresh automático de una tabla

Publicado por Eduardo Pérez Fernández (347 intervenciones) el 01/09/2024 17:04:24
Claro que puede automatizarlo, personalmente utilizo PostgreSQL y programo un trigger lo mismo lo puede hacer en MySQL,

"El Trigger en MySQL es un objeto de base de datos asociado a una tabla. Se activa cuando se realiza una acción definida en la tabla. El trigger se puede ejecutar cuando realizas una de las siguientes instrucciones de MySQL en la tabla: INSERT , UPDATE y DELETE , y se puede activar antes o después del evento"

Todo depende como esté conectado con el servidor, si vinculado o desvinculado.

1. Formulario vinculado
Establezca la propiedad Timer Interval en 1000 o más de acuerdo con sus necesidades
Programe el evento On Timer
1
2
3
4
5
6
7
8
Private Sub Form_Timer()
    On Error GoTo ErrorHandler
    Me.Requery
    Exit Sub
 
ErrorHandler:
    MsgBox "Error al actualizar los datos: " & Err.Description
End Sub

Rendimiento: Si el intervalo de actualización es muy corto, puede afectar el rendimiento de Access y MySQL. Ajuste el intervalo según sus necesidades y pruebe diferentes valores para encontrar el equilibrio adecuado.

2. Formulario independiente

Establezca la propiedad Timer Interval en 1000 o más de acuerdo con sus necesidades
Programe el evento On Timer

Código VBA para Actualizar el Contenido

Private Sub Form_Timer()
On Error GoTo ErrorHandler

' Llama a una función para actualizar los datos
Call ActualizarDatos

Exit Sub

ErrorHandler:
MsgBox "Error al actualizar los datos: " & Err.Description
End Sub


Configure la conexión a MySQL


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Private Sub ActualizarDatos()
    Dim conn As Object
    Dim rs As Object
    Dim strConn As String
    Dim strSQL As String
 
    ' Cadena de conexión (ajusta los parámetros)
    strConn = "Provider=MSDASQL;DSN=TuDSN;"
 
    ' Consulta SQL
    strSQL = "SELECT * FROM SuTablaEnMySQL" ' Ajuste el nombre de la tabla
 
    ' Crea la conexión
    Set conn = CreateObject("ADODB.Connection")
    conn.Open strConn
 
    ' Crea el recordset
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open strSQL, conn
 
    ' Actualiza los controles del formulario con los datos
    If Not rs.EOF Then
        Me.TxtCampo.Text = rs.Fields(0).Value
    End If
 
    ' Cierra la conexión
    rs.Close
    conn.Close
    Set rs = Nothing
    Set conn = Nothing
End Sub

Pero lo mejor es usar trigger ya que menciona "... para detectar nuevos eventos y poderlos registrar en mi base de datos" el trigger le hace el trabajo y sobraría su formulario porque estos eventos los guarda en un log.

Esto es una idea
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar