Generar txt en alta de registro

Estimado experto. Tengo un software para sms, que consta de un programa específico y un access que sirve de pasarela. Para enviar no tengo problema, puedo atacar la mdb externamente y dar de alta un registro.
La mdb, super sencilla, consta de dos tablas, envíos y recepciones. Para enviar, el software, que tiene "abierta la mdb", ya que hay un ldb, lee el registro, asume su contenido y luego borra el registro, pero la recepción es otra historia. Al recibir un
SMS se queda en la tabla de recepción y no se que puedo hacer para gestionarlo desde otro programa.
Desde mi programa de gestión podría leer los registros de recepción, pero siempre estaría importando toda la tabla, a no poder borrar los registros y eso sería inviable
Había pensado, entre otras cosas en la posibilidad de que access, al tiempo que genera un registro, también genere un txt o añada una linea en un txt (tipo log o algo así), de ese modo, ya podría gestionar las recepciones. ¿Podría hacerse?, o que se te ocurre.
Muchísimas gracias

1 respuesta

Respuesta
1
Podríamos hacerlo a través de un formulario:
En este formulario creamos un cuadro combinado que nos muestre el campo que, inequívocamente, identifique al registro, a este campo lo llamaremos, por ejemplo, IdRegistro y al cuadro combinado selIdRegistro. En origen de la fila del cuadro combinado pondremos:
Select IdRegistro From Recepciones order by IdRegistro
Y en la acción Al hacer clic ---> Procedimiento de Evento ---> Picas en el cuadrado de la derecha, el de los ... y pones el código Me. Refresh
En este formulario creamos un botón y en el código de ese botón lo que hacemos es crear una tabla puente que llamamos TablaPuente con el registro activo, pedimos el nombre del fichero txt, exportamos esta tabla y luego la borramos. A la expecificación de exportación la llamaremos EXRegistro.
El código sería:
Dim db As Database
Dim tb As TableDef
Dim vFic As String
Set db = CurrentDb
vFic = InputBox("Introducir nombre del fichero txt:")
DoCmd.RunSQL "SELECT Recepciones.* INTO TablaPuente FROM Recepciones WHERE idRegistro=" & Form!selIdRegistro.Value & ""
DoCmd.TransferText acExportDelim, "EXRegistro", "TablaPuente", "d:\Mis Documentos\" & vFic & ".txt"
For Each tb In db.TableDefs
If tb.Name = "TablaPuente" Then
DoCmd.DeleteObject acTable, tb.Name
End If
Next tb
Muchísimas gracias Angeles, por tu dedicación y rapidez.
La aplicación no es fácil, pero me ha dado un camino a seguir de incanculable valor, ya que yo no programo en access, solo en velázquez visual, y desgraciadamente estoy acostumbrado a cosas "más facilitas".
Juanjo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas