Sincronizar tablas importadas

Hola:
Mi pregunta es la siguiente:
Tengo dos bases de datos (las dos de Access)Base1 y Base2
Una de las tablas de la base1 (tabla 1A)la importo a la base2 y en esa base2 hago una relación entre la tabla importada (tabla 1A) y una tabla propia de la base 2 (tabla 1B). Me gustaría saber varias cosas:
1º) Por qué ahora, si yo quiero crear nuevos registros en la tabla 1A de la base1(no de la importada)desde una aplicación de visual Basic, ¿no me deja?
2ª) ¿Cómo puedo modificar la tabla 1A desde la BAse1 y que se actualice automáticamente esa tabla en la base2(porque esta importada)?
3ª) Si llegara a poder sincronizar la tabla 1A en las dos bases de datos, puedo borrar un registro de la tabla 1A desde la base1, al estar en la base 2 relacionada con la tabla 1B, ¿se borraría el regisstro corresoppondiente de esa tabla 1B?
GRACIAS por todo

1 respuesta

Respuesta
1
CHACHO !.
Vaya galimatías... Lo mejor que puedes hacer es tener un archivo mdb con todas las tablas y otro mdb con los objetos. En la última simplemente VINCULA (sin IMPORTAR) todas las tablas de la primera. De ese modo, siempre podrás atacar directamente a cualquier tabla. En el caso de que el dato a actualizar exista en dos tablas simultáneamente, atacalo desde un Formulario con un Unboud sin Control Source. Lo que el Usuario escriba en el Unboud lo guardas en una variable temporal y luego haces un Update por código creando algo así:
Dim dbs As Database, rst As Recordset
Dim dbs1 As Database, rst1 As Recordset
Dim encontrado As Boolean, DATOMODIFICADO As String
Dim parametro As String
'Comprobamos si el registro actual está en la tabla de registros.
Set dbs = CurrentDb ' Devuelve una referencia a la base de datos activa.
Set rst = dbs.OpenRecordset("NombreCampoClave", dbOpenDynaset) ' Crea un objeto Recordset tipo dynaset basado en la tabla TABLA1.
rst.MoveFirst ' Vamos al primer registro de la tabla
encontrado = False
Do
If rst![ NombreCampoClave] = Me. NombreCampoClave Then
encontrado = True
rst![NOMBRECAMPODATOAMODIFICAR]= DATOMODIFICADO
Else
rst.MoveNext
End If
Loop While ((Not encontrado) And (Not rst.EOF))
'rst.Close
Set dbs = Nothing
If Not encontrado Then ' Si el registro actual actual no está en la tabla damos un mensaje
MsgBox ("REGISTRO NO LOCALIZADO. POR FAVOR, CONTACTE CON EL ADMINISTRADOR")
Forms!NOMBREFORMULARIO![ NombreCampoClave].SetFocus ' Ponemos el cursor en el campo CLAVE
End If
End Sub
ETC, ETC, ETC.....
Este ejemplo deberás ampliarlo/modificarlo en función a tu necesidad y es una mera orientación pero por ahí van los tiros.
No dudes en contactar conmigo si quieres más detalle.
Perdón... el código anterior solo te sirve para localizar el registro en una o más tablas, luego tendrás que hacer el Update mencionado diciéndole:
rst[NOMBRECAMPOTABLA1]=DATOMODIFICADO
rst1[NOMBRECAMPOTABLA1]=DATOMODIFICADO
rst.Update
rst1.Update
rst.Close
rst.Close
Todo ello en su lugar correspondiente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas