RE:exportar a .txt los registros de un form
Copia esta Función y pégala en un Módulo nuevo, sin cambiar nada:
Function Crea_Fichero(ruta As String, rst As ADODB.Recordset) As Boolean
On Error GoTo Err_function
Dim Columna
Dim fila As Integer
Open ruta For Output As #1
rst.MoveFirst
For fila = 0 To rst.RecordCount - 1
Print #1, Trim(rst.Fields(0));
For Columna = 1 To rst.Fields.Count - 1
Print #1, "," & Trim(rst.Fields(Columna));
Next
Print #1, Chr(13) 'Crea una nueva línea por cada registro
rst.MoveNext 'Se mueve al siguiente registro
Next
Close #1
Exit Function
Err_function:
MsgBox Err.Description, vbCritical
Close
End Function
---------------------------------------------------------------------------------------------------------
Ahora en el Formulario las declaraciones de la conexión, del recordset y de la variable Filtro + dos Procedimientos de evento:
Option Compare Database
Private cnn As ADODB.Connection
Private rst As ADODB.Recordset
Dim FILTRO As String
Option Explicit
ESTO ES UNA SUPOSICION DE LA FORMA DE CAMBIAR EL ORIGEN DEL REGISTRO DEL FORMULARIO, SEGUN EL VALOR DEL CUADRO COMBINADO:
Private Sub Combo1_AfterUpdate()
FILTRO = "Select * From Tabla1 Where CampoClave ='" & Me.Combo1 & "'"
Me.RecordSource = FILTRO
End Sub
Y POR ULTIMO EL EVENTO CLICK DE UN BOTON DE COMANDO PARA CREAR EL ARCHIVO TXT CON LOS REGISTROS QUE MUESTRA EL FORMULARIO:
Private Sub CrearArchivo_Click()
Set cnn = Application.CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open FILTRO, cnn, adOpenStatic, adLockOptimistic
Call Crea_Fichero("C:Mi Fichero.txt", rst)
MsgBox "El Fichero se ha creado correctamente en C:", vbInformation, "Crear Fichero de texto"
rst.Close: Set rst = Nothing
cnn.Close: Set cnn = Nothing
End Sub
Te debe de crear un archivo de texto de nombre "Mi Fichero.txt" en el Disco C: con una línea por cada registro. Como verás, se usa la Referencia de ADO para hacer el trabajillo.
Saludos
Enrique