ACCESS, VBA. Cambiar un dato de una BdD externa (¿Execute Update IN?)

Tengo dos bases de datos separadas, ambas con una tabla parecida pero con un mismo índice.

  • La Tabla1 de la base de datos BdD1 es la de trabajo y contiene un índice por registro; en un proceso interno obtengo otra Tabla1b desglosada en la que su índice es un compuesto del índice de la Tabla1 y un número correlativo.
  • La Tabla2 de la base de datos BdD2 es una "foto" de un momento concreto de la Tabla1b, por lo que entre otras cosas me permite hacer control de cambios, etc.

El problema lo tengo cuando en la Tabla1 cambio el índice que las relaciona; con la Tabla1b no hay problema puesto que están relacionados. El problema lo tengo con la Tabla2.

Para poder seguir teniendo los datos relacionados, necesito actualizar también el índice de la Tabla2 automáticamente y por varios motivos no me interesa tener permanentemente vinculada la Tabla2 en BdD1.

¿Habría alguna manera de actualizar el dato a través del AfterUpdate del índice o del registro? ¿Alguna otra recomendación?

Lo he intentado con el siguiente código pero no me deja al no ser actualizable la consulta;

    strSQL = "SELECT * FROM Tabla2 IN 'C:\BdD2.accdb'"
    Set QDF = CurrentDb.CreateQueryDef("cns_Tabla2", strSQL)
    strSQL = "UPDATE cns_Tabla2" & _
             " SET Tabla2_Indice = '" & nuevo & "'" & _
             " WHERE Tabla2_Indice = '" & viejo & "'"
    DoCmd.SetWarnings False
    CDB.Execute strSQL
    DoCmd.SetWarnings True

1 Respuesta

Respuesta
2

En una base llamada Javier tengo una tabla Empleados con un campo Loquesea

En otra base tengo un formulario Clientes, al que le he añadido un botón de comando

Voy a pasar la edad al campo loquesea, en aquel registro en que el nombre del empleado es igual al nombre del contacto. Pulso el botón y

El código del botón es

Private Sub Comando13_Click()
DoCmd.RunSQL " update empleados in 'C:\users\gonza\documents\borrar\javier.accdb'  set loquesea=" & Me.Edad & " where empleado like '" & Me.NombreContacto.Value & "'"
End Sub

Lógicamente tienes que cambiar la ruta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas