¿Pasar registros a una base de una tabla externa?

Yo apenas controlo sobre bases de datos y mi proyecto los estoy haciendo con un amigo pero a partir de cosas complicadas ya no sabemos continuar.

Tengo una base de datos en Access en un pc del trabajo en el que se van haciendo registros de fichaje de mis trabajos, después tengo una base para facturación que utilizo en un pc de casa

Me gustaría poder volcar los registros a un pendrive y con el portarlos al otro pc en casas y poderlos usar para ver el tiempo que he trabajado para realizar mis facturas

Hasta aquí todo sencillo pero lo que me gustaría es no dejar rastro de los registros en el primer pc (es un pc que tengo relativamente accesible para cualquiera) y que empezara a contar desde 1 y el segundo problema seria como gestionar esos registros para que sigan un registro coherente y que no se dupliquen ni cambien de numeración o cosas raras...

Mi idea seria volcar al pendrive y borrar del pc del trabajo, y después, (aquí es donde no consigo imaginar como) en la base de datos de casas conseguir encadenar estos datos con la fecha

Ejemplo:

Hoy me llevo 10 registros en el pendrive con fecha 27/10/17

Mañana me llevo otros 10 con fecha 28/10/17

Si se hace sin más los 1o últimos sobreescriben los primeros pero se podría hacer de tal forma que el primer día se generaran los registros 1-27/10/17, 2-27/10/17,... Y al día siguiente 1-28/10/17,...

No se como solucionarlo

2 Respuestas

Respuesta
1

Casi no he entendido la pregunta, pero más o menos se me ocurren varias soluciones. Si tienes un PC1 y una vez has trabajado con el vas a guardar los datos en un pendrive, puedes crear una consulta de datos anexados con los campos que te interesen. Cuando construyes la consulta y le dices que la quieres de datos anexados te pregunta donde quieres anexar, si a una tabla de la misma base de datos o a una tabla de una base de datos externa. Le pones el nombre de la base externa, en este caso, la del pendrive y ejecutas. Es algo así como

INSERT INTO clientes ( NombreCompañia ) IN 'C:\Users\......\Documents\.....\usar.accdb'
SELECT clientes.Alias
FROM tablaPC1;

La tabla destino es Clientes y el campo NombreCompañia.

Y en tu caso, en vez de C sería la letra del pendrive.

Luego si quieres, o bien por código o bien a mano eliminas los registros de la tabla del Pc1. Cuando llegues a tu casa, en la base del pendrive haces lo mismo.

Podrías hacerlo todo en código. Por ejemplo, en un formulario de la base del PC1 puedes poner un botón y poner, por ejemplo:

docmd.setwarnings false

docmd.runsql"insert into Clientes......

Docmd. Runsql"delete * from tablapc1"

Me. Requery

Me explico. Inserta en la tabla clientes, en el campo nombrecompañia de la base X del pendrive los valores de alias de la tabla Tablapc1.

Luego borra todos los registros de la tabla Tablapc1 y que el formulario reconsulte su origen (verás que se queda en blanco)

Otra forma, pon las bases como ocultas o ponla en un directorio que una persona normal no lo toca tipo Syswow64

Cuando se anexan datos, tipo insert, los adiciona a los que ya estaban, no sobreescribe nada.

Gracias por vuestras respuestas

he intentado explicarme y creo que lo he embrollado más jejej

segundo intento

el dejar los registros en pc1 no es opción y he de decir que aún no está hecha sino que queremos hacerla pero queremos planificar bien desde el principio 

aún no sabemos si es posible lo que queremos hacer...

la base de pc1 recogeria entre otros

Nº de registro

fecha

Nº de orden en la que se trabaja 

descripcion del trabajo 

horas trabajadas 

el cortar y añadir a una base de otro pc lo veo relativamente sencillo para mis conocimientos

Mis dudas de funcionamiento:

Cuando tengo un día registrado, con por ejemplo 10 registros con sus correspondientes datos los copio al pendrive y además los borro.

Al día siguiente como quiero empezar desde cero empezaría a contar desde registro 1

entonces como hago para copiar estos registros del siguiente día y no tengan duplicidad de Nº de registro en la base a la que quiero incluirlos?

En principio, no necesitas que el id o lo que sea inicie todos los días desde 1. Con que el id de la tabla de tu casa sea autonumérico es suficiente. Porque si tuvieras los dos id, el de PC1 y el de PCCasa como autonuméricos y cada día el de PC1 volviera a empezar por 1 no te dejaría insertar en la tabla del PCCasa, ya que no puede haber dos registros con el mismo ID(por eso es clave). Pero, si de todas formas sigues queriendo que cada día el ID de PC1 empiece en 1, basta con que al abrir la base de datos pulses Herramientas-Compactar y reparar.

Por otro lado, con la instrucción que te puse en la otra respuesta ya eliminas todos los registros de la tabla que sea del PC1.

Te explicas mejor que yo jejej

Eso es lo que quiero que todos los días PC1 empiece por 1

Como si empezara ese día

Pero claro eso me causa el problema, habría duplicados y no se como hacerlo para ingresarlo en la tabla de PC2

Lo único que puedo hacer, si quieres, repito si quieres, es que me mandes un mensaje(sólo el mensaje) a [email protected] y te mando un ejemplo, mas o menos de como debes hacerlo. Si lo haces, en el asunto del mensaje pon tu alias Santiago, ya que si no sé quien me escribe ni los abro.

Respuesta
1

Si me indicas las tablas te puedo colaborar, igualmente no entiendo bien tu pregunta.

Lo ideal es que primero inicies tu proyecto y con base en las dudas que se te presenten hagas las consultas. Lo que quieres lo hago exportando a Excel o archivo plano, después importo y válido la información.

Lo que me indicas de Excel lo entiendo pero después como válidas la información para que los registros no tengan el mismo Id?....

solo se me ocurre obviar el id de los nuevos registros y que al portar a la tabla les dé uno nuevo consecutivo....

Si tienes el id autonumerico en la tabla de destino en la consulta de adicion no incluyas este campo Access adiciona los demas campos sin problema

Vale ahora sí he comprendido, claro con eso yo creo que podría quedar solucionado

una consulta diferente de otro problema que me surge 

Hay forma de crear un campo en el que se incluyera automáticamente un número que se genere con la mezcla Id/fecha?

Me sería de utilidad si imprimo los fichajes ya que como al adiccionarse cambia el Id podría usar ese campo, aunque no fuera el Id que usa la tabla como Id porque no cambiaría al adiccionarse 

Vuelvo y te insisto si suministras la estructura de las tablas nos va mejo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas