es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Necesito conexión a una base de datos de Access desde un procedimiento almacenado de MySQL para actualizar tablas que ya he creado en la base de datos de MySQL.

La base de datos de acceso está en el servidor en una carpeta. Necesito crear un procedimiento almacenado para conectarme a la base de datos de acceso y actualizar los datos de la tabla. Puede ser truncado y luego insertado. No puedo averiguar cómo conectarme a la base de datos de acceso a través del procedimiento almacenado. Tiene que hacerse a través de un trabajo programado.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para crear un procedimiento almacenado para conectarse a la base de datos MS Access 2010 y actualizar los datos de la tabla, puede seguir los siguientes pasos:

    1. Abra Microsoft Access y cree una nueva base de datos en blanco.
    2. Importe la tabla que desea actualizar desde el servidor a la base de datos de Access.
    3. Cree un nuevo módulo en la base de datos de Access y escriba el código VBA para actualizar los datos de la tabla. Por ejemplo:
    Sub UpdateData()
        Dim db As DAO.Database
        Dim sql As String
        Set db = CurrentDb
        sql = "DELETE FROM TableName"
        db.Execute sql
        sql = "INSERT INTO TableName (column1, column2, column3) VALUES (value1, value2, value3)"
        db.Execute sql
        db.Close
    End Sub
    

    Reemplace “TableName”, “column1”, “column2”, “column3”, “value1”, “value2”, “value3” por el nombre real de la tabla y los valores que desea actualizar.
    4. Guarde el módulo como “UpdateData”.
    5. En MySQL, cree un procedimiento almacenado para conectarse a la base de datos de Access a través de ODBC. Por ejemplo:

    CREATE PROCEDURE UpdateTable()
    BEGIN
        DECLARE job VARCHAR(20) DEFAULT 'AccessUpdateJob';
        DECLARE cmd VARCHAR(800);
        SET cmd = CONCAT('MSACCESS.EXE "C:\Path\To\Access\Database.accdb" /X UpdateData');
        CALL sp_start_job(job_name);
    END
    

    Reemplace “C:\Path\To\Access\Database.accdb” por la ruta real a la base de datos de Access en el servidor.
    6. Cree un trabajo en MySQL para ejecutar el procedimiento almacenado en un horario. Por ejemplo:

    CREATE EVENT AccessUpdateEvent
    ON SCHEDULE EVERY 1 DAY
    DO
    CALL UpdateTable();
    

    Esto ejecutará el procedimiento almacenado UpdateTable todos los días.

    Nota: Asegúrese de tener instalado el controlador ODBC necesario en el servidor y de que la cuenta de MySQL tenga los permisos necesarios para acceder a la base de datos de Access.

Comments are closed.