• Viernes 8 de Noviembre de 2024, 18:59

Autor Tema:  Re: Convertir a archivo de texto  (Leído 1061 veces)

Erasmo

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Convertir a archivo de texto
« en: Lunes 21 de Abril de 2003, 19:11 »
0
Hola a todos :jumpie:

Quisiera que me ayudaran, paso una tabla de una base de datos a un archivo de texto, con el siguiente codigo:

Option Explicit

Private Sub cmdExportar_Click()
Dim fnum As Integer
Dim archivo As String
Dim rs As Recordset
Dim campos As Integer
Dim campo_ancho() As Integer
Dim campo_valor As String
Dim i As Integer
Dim contador As Integer

    On Error GoTo miscerror
   
    If deRenta.cnRenta.State = adStateClosed Then
        deRenta.cnRenta.Open
    End If
   
    fnum = FreeFile
    archivo = Me.txtArchivo.Text
    Open archivo For Output As fnum
       
    Set rs = New ADODB.Recordset
   
    rs.Open "Select Nombre, Nit, Valor, Renta from Movimientos", deRenta.cnRenta, adOpenDynamic, adLockReadOnly
       
    campos = rs.Fields.Count
    Do While Not rs.EOF
        contador = contador + 1
        For i = 0 To campos - 1
            campo_valor = rs.Fields(i).Value
            Print #fnum, campo_valor;
        Next i
        Print #fnum, ""
        rs.MoveNext
    Loop
   
    Close fnum
    MsgBox Format$(contador) & " Registros Procesados"
   
    Exit Sub
miscerror:
    MsgBox "Error " & Err.Number & vbCrLf & Err.Description
End Sub

Private Sub cmdSalir_Click()
    Unload Me
End Sub

Private Sub Form_Load()
    Me.txtBase.Text = App.Path & "Renta.mdb"
    Me.txtArchivo.Text = App.Path & "Renta.txt"
End Sub

y obtengo el archivo de texto pero los campos unidos, yo quisiera por decirles algo que el nombre tuviera un ancho de 50 caracteres, luego un numero de identificacion de 10 caracteres y asi sucesivamente, es de decir que atraves de codigo yo le diga en que posicion van a caer los campos, pero no se como se hace, mucho les agradecere me ayuden, Gracias a todos:gracias:

Erasmo:adios:

Majuhemo

  • Miembro activo
  • **
  • Mensajes: 85
    • Ver Perfil
Re: Convertir a archivo de texto
« Respuesta #1 en: Lunes 21 de Abril de 2003, 21:22 »
0
Hola:
empezare por decirte que hice una prueba y si se puede.
tienes "Dim campo_ancho() As Integer" que veo que no la usas, trabajemos con esa variable. tendrias que agregar un  
Dim Dato as String  
Dim Linea as String
y agregas lo sgte.:

campos = rs.Fields.Count
Do While Not rs.EOF
contador = contador + 1
For i = 0 To campos - 1
    ' *****Agregarias esto ****
    if i=0 then campo_ancho=25
    if i=1 then campo_ancho=2
    if i=2 then campo_ancho=10
    if i=3 then campo_ancho=8

    Dato = rs(i).Value+ Space(campo_ancho - Len(rs(i))

    Linea = Linea + Chr(9) + Dato
    '******************
Next i

Print #fnum, Linea  '==== esto tambien ==

rs.MoveNext
Loop


Para considerar:
campo_ancho es la longitud maxima de tu campo, estoy considerando 4 porque en tu Select solo muestras 4, definitivamente si son mas tendrias que agregar mas.

Prueba y luego cuentas como te fue.
Saludos;
Ruben Delgado A.
rudela@msn.com
Lima-Peru

Erasmo

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Convertir a archivo de texto
« Respuesta #2 en: Lunes 21 de Abril de 2003, 23:03 »
0
Gracias:suerte:

te agradezco mucho majuhemo

me funcionaron las instrucciones que me diste.

nuevamente, gracias

Erasmo.:gracias: