Access - Exportar varios archivos txt -ACCESS

   
Vista:

Exportar varios archivos txt -ACCESS

Publicado por Cristian campos (1 intervención) el 04/07/2012 14:53:33
Buen dia programadores

Tengo una tabla llamada actas con los siguientes campos N_RAD( No se repiten), acta(se repite varios veces)y fecha(tabn se puede repetir)

lo q busco y espero me puedan ayudar es q , desde un boton en un formulario se generen archivos .txt por cada acta q contiene la tabla y los guarde con el nombre del numero del acta

EJEMPLO: ACTA 001

20035 001 3/7/2012
20036 001 3/7/2012
20037 001 3/7/2012
20038 001 3/7/2012
20039 001 3/7/2012
20040 001 3/7/2012
20041 001 3/7/2012

y q genere todas las actas q pueda tener en archivos .txt y las envie sea escritorio o mis documentos

Espero ser claro y me puedan ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Exportar varios archivos txt -ACCESS

Publicado por cmgcharli (12 intervenciones) el 06/07/2012 08:51:54
Sintaxis

Open rutaacceso [For modo] [Access acceso] [bloquear] As [#]númeroarchivo [Len=longitudregistro]

La sintaxis de la instrucción Open consta las siguientes partes:

Parte Descripción

rutaacceso Requerido. Expresión de cadena que especifica un nombre de archivo; puede incluir el directorio o carpeta y la unidad de disco.

modo Requerido. Palabra clave que especifica el modo de archivo: Append, Binary, Input, Output o Random. Si no se especifica, el archivo se abre con acceso Random.

acceso Opcional. Palabra clave que especifica las operaciones permitidas en el archivo abierto: Read, Write o Read Write.

bloquear Opcional. Palabra clave que especifica las operaciones permitidas en el archivo abierto por otros procesos: Shared, Lock Read, Lock Write y Lock Read Write.

númeroarchivo Requerido. Un número de archivo válido entre 1 y 511 inclusive. Para obtener el número del siguiente archivo disponible se utiliza la función FreeFile.

longitudregistro Opcional. Número igual o inferior a 32.767 bytes. En archivos abiertos para acceso aleatorio, este valor es la longitud del registro. Para archivos secuenciales, este valor es el número de caracteres almacenados en búfer.



Sub CrearTxt()

"Definimos la Variables que se van ha usar y se Asignan "

Dim PVarTextoFile As String

Dim PVarNumFile as Long

Dim PVarRecorset as ADODB.Recordset

Dim PVarNewRecor as ADODB.Recordset

Set PVarRecorset=New ADODB.Recordset

Set PVarNewRecor = New ADOBD.Recordset

"Creamos una consulta que contenga exclusivamente y sin duplicidad
Todos los numeros de acta de la TablaActas"

PVarRecorset.Open "SELECT CAMPOACTAS FROM TABLAACTAS GROUP BY CAMPOACTAS", CurrentProject.Connection, adOpenKeyset, adLockPessimistic, adCmdText

"Comprobamos que exiten registros si no los hay se cierra la Consulta y se termina el procedimiento"

If PVarRecorset.RecordCount=0 Then

PVarRecorset.Close

Exit Sub

end If

"Si Hay Actas procedemos a crear un bucle que nos lea todas identificadores de las acta y cree un archivo txt con su nombre y listo para poder escribir en el"


Do Until PVarRecorset.EOF

PVarTextoFile=""

PVarNumFile = FreeFile

"Aqui se crea y se queda abierto el Archivo txt"

Open RutaNombreArchivo & PVarRecorset!CAMPOACTA & ".txt" For Output As #PVarNumFile

"Acontinuación Tenemos que extrae de la TablaActas mediante otra consulta todos los registro que correspondan a cada identificador de numero de Acta"

PVarNewRecor.Open "SELECT * FROM TABLAACTAS CAMPOACTA='" & PVarRecorset!CAMPOACTA & "'", CurrentProject.Connection, adOpenKeyset, adLockPessimistic, adCmdText

"Se crea un Bucle que lea todos los registro del acta y los escriba en el txt"

Do Until PVarNewRecor.EOF

PVarTextoFile=PVarTextoFile & PVarNewRecor!CAMPON_RAD & " "

PVarTextoFile=PVarTextoFile & PVarNewRecor!CAMPOACTA & " "

PVarTextoFile=PVarTextoFile & PVarNewRecor!CAMPOFECHA & " "

Print #PVarNumFile, PVarTextoFile

PVarNewRecor.MoveNext

Loop

Close #PVarNumFile

"Se cierra el archivo txt"

"Llegados aqui el procedimiento habra creado y escrito un archivo txt con el nombre de acta correspondiente, y seguimos con el siguiente acta

PVarRecorset.MoveNext

Loop

"Llegados aqui se debe de haber creado para cada uno de los identificadores de CAMPOACTA un archivo en la ruta y cuyo nombre que le demos con contenga el CAMPOACTA"

PVarRecorset.Close

PVarNewRecor.Close

End Sub()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Exportar varios archivos txt -ACCESS

Publicado por Carlos Cardozo (1 intervención) el 23/06/2016 16:24:16
Buenos días amigo. Estuve intentando ejecutar tu creación y me da inicialmente 2 errores:

1 Dim PVarTextoFile As String
2 Dim PVarNumFile as Long
3 Dim PVarRecorset as ADODB.Recordset
4 Dim PVarNewRecor as ADODB.Recordset
5 Set PVarRecorset=New ADODB.Recordset
6 Set PVarNewRecor = New ADOBD.Recordset

en la linea 3 me indica que "no se ha definido el tipo indicado por el usuario". Allí lo que hice fue quitarle el prefijo "ADODB." a las líneas 3, 4, 5 y 6 y listo.

Luego me dió otro error indicándome que "el uso de la palabra clabe (new) no es válido". Borré (new) de las líneas 5 y 6 y continuó.

7 PVarRecorset.Open "SELECT CAMPOACTAS FROM TABLAACTAS GROUP BY CAMPOACTAS", CurrentProject.Connection, adOpenKeyset, adLockPessimistic, adCmdText

Por último en la línea 7, se detiene en la palabra PVarRecorset y me indica "el uso de la propiedad no es válido". De allí no he pasado.

El código completo utilizado es el mismo:

[i]Sub CrearTxt()


'Definimos la Variables que se van ha usar y se Asignan "

Dim PVarTextoFile As String
Dim PVarNumFile As Long
Dim PVarRecorset As Recordset
Dim PVarNewRecor As Recordset
Set PVarRecorset = Recordset
Set PVarNewRecor = Recordset

'Creamos una consulta que contenga exclusivamente y sin duplicidad
'Todos los numeros de acta de la TablaActas"

PVarRecorset.Open "SELECT EORD-WERKS FROM LIBRO_PEDIDO_EXT_CENTROS_1001 GROUP BY EORD-WERKS", CurrentProject.Connection, adOpenKeyset, adLockPessimistic, adCmdText

'Comprobamos que exiten registros si no los hay se cierra la Consulta y se termina el procedimiento"

If PVarRecorset.RecordCount = 0 Then
PVarRecorset.Close
Exit Sub
End If

'Si Hay Actas procedemos a crear un bucle que nos lea todas identificadores de las acta y cree un archivo txt con su nombre y listo para poder escribir en el"


Do Until PVarRecorset.EOF
PVarTextoFile = ""
PVarNumFile = FreeFile

'Aqui se crea y se queda abierto el Archivo txt"

Open "C:\Users\ccardozo\Desktop\Extractores SAP\Extractores Artículos Data Entry\Extractos\Carga Final SAP\Registros INFO" & PVarRecorset!EORD - WERKS & ".txt" For Output As #PVarNumFile

'Acontinuación Tenemos que extrae de la TablaActas mediante otra consulta todos los registro que correspondan a cada identificador de numero de Acta"

PVarNewRecor.Open "SELECT * FROM LIBRO_PEDIDO_EXT_CENTROS_1001 EORD-WERKS='" & PVarRecorset!EORD - WERKS & "'", CurrentProject.Connection, adOpenKeyset, adLockPessimistic, adCmdText

'Se crea un Bucle que lea todos los registro del acta y los escriba en el txt"

Do Until PVarNewRecor.EOF
PVarTextoFile = PVarTextoFile & PVarNewRecor!EORD - MATNR & " "
PVarTextoFile = PVarTextoFile & PVarNewRecor!EORD - MAKTX & " "
PVarTextoFile = PVarTextoFile & PVarNewRecor!EORD - WERKS & " "
PVarTextoFile = PVarTextoFile & PVarNewRecor!EORD - VDATU & " "
Print #PVarNumFile, PVarTextoFile

PVarNewRecor.MoveNext

Loop

Close #PVarNumFile

'Se cierra el archivo txt"

'Llegados aqui el procedimiento habra creado y escrito un archivo txt con el nombre de acta correspondiente, y seguimos con el siguiente acta

PVarRecorset.MoveNext

Loop

'Llegados aqui se debe de haber creado para cada uno de los identificadores de CAMPOACTA un archivo en la ruta y cuyo nombre que le demos con contenga el CAMPOACTA"

PVarRecorset.Close
PVarNewRecor.Close

End Sub
[i]

Mi access es office 2013. Gracias por la ayuda!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Exportar varios archivos txt -ACCESS

Publicado por Carlos carlosbelmonte73@yahoo.es (7 intervenciones) el 20/07/2012 20:34:24
Si no te aclaras mucho con la respuesta que tienes puedes contactar conmigo y te ayudo.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar