Buenos días tengo un problema estoy haciendo un txt pero tengo un error el codigo me corre perfectamente este es el codigo:
Private Sub Command1_Click()
'este data actualiza el dbgrid
Data1.Refresh
With Data
.RecordSource = "SELECT * FROM APORTE_MENSUAL"
.Refresh
If .Recordset.RecordCount > 0 Then
.Recordset.MoveLast
.Recordset.MoveFirst
While Not (.Recordset.EOF)
.Recordset.Edit
For i = 0 To 6
If .Recordset.Fields(i) <> "" Then
.Recordset.Fields(0) = Trim(.Recordset.Fields(0)) & " "
.Recordset.Fields(1) = Trim(.Recordset.Fields(1)) & " "
.Recordset.Fields(2) = Trim(.Recordset.Fields(2)) & " "
.Recordset.Fields(3) = Trim(.Recordset.Fields(3)) & " "
.Recordset.Fields(4) = Trim(.Recordset.Fields(4)) & " "
.Recordset.Fields(5) = Trim(.Recordset.Fields(5)) & " "
.Recordset.Fields(6) = Trim(.Recordset.Fields(6)) & " "
Else
.Recordset.Fields(i) = " "
End If
Next i
.Recordset.Update
.Recordset.MoveNext
Wend
End If
End With
Call Generartxtnomina(Data)
End Sub
Public Sub Generartxtnomina(Data As Data)
Dim linea, c As String
Dim strRow As String
Dim strField As String
Dim tamaño As Integer
Open "C:\FIDEICOMISO\APORTE.txt" For Output As #1
Data.RecordSource = "SELECT * FROM APORTE_MENSUAL"
'**********************************************************
'ORDENA LOS DATOS POR FECHA DE INGRESO EN TXT
Data.RecordSource = "SELECT * FROM aporte_mensual order by FECHA_INGRESO asc"
'**********************************************************
Data.Refresh
With Data.Recordset
.MoveFirst
Do While Not .EOF
For i = 0 To 4
' Si un campo tiene un valor, agrega comillas.
If Len(.Fields(i)) > 0 Then
strRow = strRow & .Fields(i)
Debug.Print Len(strRow)
Else
strField = " "
End If
' Agrega el valor del campo y un delimitador de tabulación
' a la cadena de salida.
Next
'-------ESTE CODIGO PERMITE COLOCAR NOMBRE 20 PARA QUE SE UBIQUE EL APELLIDO---------------------------
c = concatenar(Data.Recordset.Fields(5), " ", 20)
strRow = Trim(strRow) & c
c = concatenar(Data.Recordset.Fields(6), " ", 20)
strRow = strRow & c
'************************************************************
Print #1, strRow
salta:
strRow = " "
.MoveNext
Loop
End With
Close
Data.Refresh
MsgBox "Archivo Generado con Exito", vbInformation + vbOKOnly, "Validación"
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Data1.RecordSource = "SELECT * FROM aporte_mensual order by FECHA_INGRESO asc"
Data1.Refresh
DBGrid1.Refresh
End Sub
Private Function concatenar(cadena As String, caracter As String, longitud As Integer) As String
Dim l As Integer
'cadena = Trim(cadena)
'l = Len(Trim(cadena))
'For i = l To longitud - 1
' cadena = cadena & caracter
'Next i
'concatenar = cadena
'es otra manera de concatenar
concatenar = Left$(Trim$(cadena) & String(longitud, caracter), longitud)
End Function
me da este txt
V0004736880 000000000134142 C 000 01082428160200020603José Lucidio Alvarado Herrera
V0007358451 000000000511645 C 000 01082428190100015572Luís Alberto González Herrera
necesito que el numero de cuenta y el nombre quede separado por un espacio, si alguien me puede ayudar se lo agradesco