no entendi lo que colocaste, te explico yo ya tengo este codigo que me corre perfecto lo unico es que uno de los campo me
queda pegado.
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
con este codigo me genera el txt de esta manera
V0003863512 000000000203061 C 000 01082428120200123801Alirio José ,Romero Colmenárez
lo que necesito es que no me quede pegado el numero de cuenta con el nombre, necesito que tenga un espacio.