Hola señores de todo experto, exportar registro único

Hola, mi nombre es alejandro, y necesitaría saber como exportar un registro único de un formulario a un tipo de archivo txt. Más específicamente lo siguiente, tengo una base de datos de 2500 registros y un formulario para controlar los datos, lo ideal sería tener un botón que al presionar exporte SOLAMENTE el registro activo a un archivo de texto y cada vez que exporte se cree un nuevo archivo de texto.
Gracias

1 respuesta

Respuesta
1
Tenemos una tabla que llamamos Productos y a la expecificación de exportación EXProducto, el campo IdProducto identifica, inequívocamente, el registro. En el formulario el campo IdProducto lo tenemos en un cuadro de texto que se llama IdProducto. 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.
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 Producto.* INTO TablaPuente FROM Producto WHERE idProducto=" & Form!idProducto & ""
DoCmd.TransferText acExportDelim, "EXProducto", "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
Hola ángeles, gracias por responder ta rápido y si es lo que necesito hacer. El inconveniente es que aparece el siguiente error:
"SE HA PRODUCIDO EL ERROR 3464 EN TIEMPO DE EJECUCIÓN", no coinciden los tipos de datos en la expresión de criterios.
Gracias por responder.
Hola ángeles, me olvide de preguntar si serías tan amable de explicar línea por línea que hace o significa el código, es que además de hacerlo necesito entenderlo.
Gracias
Me parece perfecto que quieras saber que significa el código:
'Definimos las variables (Las variables pueden ser de tipo texto numérico, fecha... pero tambien de objetos tablas, recordset (vista de una tabla con o sin condiciones), consultas...
Dim db As Database
Dim tb As TableDef
Dim vFic As String
'Activamos la BD en la que estamos
Set db = CurrentDb
'Con InputBox pedimos el valor de la variable vfic
vFic = InputBox("Introducir nombre del fichero txt:")
'DoCmd.RunSql ---> Método para ejecuar desde código una consulta de acción
'En la sql será donde te á el error, ya que yo he puesto " & Form!idProducto & " porque IdProducto es numérico, si fuese de texto tendría que entrecomillarlo: '" & Form!idProducto & "'
DoCmd.RunSQL "SELECT Producto.* INTO TablaPuente FROM Producto WHERE idProducto=" & Form!idProducto & ""
'DoCmd.TransferText ---> Método para transferir (Importar o exportar un texto) acExportDelim ---> Tipo de exportación, en este caso texto delimitado si fuese de ancho fijo acExportFixed
DoCmd.TransferText acExportDelim, "EXProducto", "TablaPuente", "d:\Mis Documentos\" & vFic & ".txt"
'For Each .... Next ---> Bucle para recorrer objetos de una colección, en access todo se compone de objetos y colecciones, el objeto tabla tb pertenece a la colección de tablas tabledefs del objeto base de datos db. En este caso con tb in db.Tabledefs estoy recorriendo todos los objetos tabla que están en la base de datos db.
For Each tb In db.TableDefs
'Pregunto si el nombre del objeto es TablaPuente y si lo es con el método DoCmd.DeleteObject lo borro
If tb.Name = "TablaPuente" Then
DoCmd.DeleteObject acTable, tb.Name
End If
'Con Next tb paso al siguiente objeto
Next tb
Hola ángeles, si el error era que de tipo de datos estaba usando tipo texto por eso no funcionaba ya lo cambie y si funciona, ahora me ACLARA que el archivo de tipo texto EXProducto no existe y que no se pudo exportar.
Gracias
El EXProducto es la expecificación de importacón o exportación, esa la tienes que crear: en la pestaña tablas seleccionas la tabla a exportar y con botón derecho dices exportar, te saldrá el asistente la creas y en el botón Avanzado la guardas con el nombre EXProducto o el que quieras, será ese nombre el que utilices en el método de exportación.
Hola ángeles, a raíz de diferentes situaciones no pude contestar y te pido disculpas por eso, con respectpo a la última aclaración debo decirte que no la entiendo, podrías, por favor, ser un poquito más espacefica.
Al hacer clic con el botón derecho sobre la tabla a exportar, que según entiendo es la tabla PRODUCTO, presiono EXPORTAR y me pide el nombre del archivo a exportar pero no aparece el asistente que mencionas arriba y por esta causa no puedo continuar con la exportación desde el formulario.
Disculpa las molestias, gracias.
Perdona, me salté ese paso. Efectivamente te pide el nombre del fichero, pones el que quieras pues esto solo lo vas a hacer para crear la expecificación. En Guardar como tipo pones Archivo de texto y das a exportar, es entonces cuando te saldrá el asistente.
Lo siento.
Hola ángeles, si bien pude realizar la operación de exportar, el mensaje antes de exportar me dice VA A PEGAR 0(cero) FILAS EN UNA NUEVA TABLA, después realiza la exportación y cuando abro el archivo TXT aparece vacío.
Te recuerdo mi necesidad, al presionar exportar, que se exporte el registro activo a un TXT y cada vez que exporte un registro activo cree un NUEVO ARCHIVO TXT con el nombre que introduzca. Por ejemplo: el registro activo el LECHE, presiono exportar y crea un archivo TXT llamano LECHE, después elijo otro registro activo por ejemplo ARROZ, presiono exportar y crea otro archivo TXT llamado ARROZ y así sucesivamente
Gracias.
Si te dice que va a pegar 0 filas es porque la sql no te devuelve ningún registro (DoCmd.RunSQL "SELECT Producto.* INTO TablaPuente FROM Producto WHERE idProducto=" & Form!idProducto & ""), mira bien la clausula where. Si quieres me mandas la BD (en access 2003) con algunos registros (que no sea muy pesada) y lo echo un vistazo. [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas