Buscar..


Introducción

Algunas veces es posible que necesite crear un archivo de texto delimitado para varios usos. El siguiente ejemplo es una de las muchas maneras de ayudarlo a hacerlo. He usado una tubería ("|") para mi delimitador, para cambiar eso solo cambiar la asignación de la variable Sep. En mi ejemplo, vuelco el conjunto de registros a una matriz, esto no es de ninguna manera el enfoque de facto, es solo mi objetivo. Esto puede hacerse fácilmente usando el conjunto de registros también.

Observaciones

Vale la pena señalar:

 Wholeline = Wholeline & aRR(i, j) & Sep

Debido a que los conjuntos de registros se vuelcan a las matrices transpuestas, tendrá que leerlo al archivo de texto al revés. Esto es realmente útil si está trabajando con arreglos dinámicos, ya que ya está transpuesto para usted, por lo que la reducción del "conteo de filas" se puede hacer antes de cualquier levantamiento pesado.

Tampoco vale nada:

Puede transponer fácilmente su matriz descargándola en una nueva línea por línea usando esta sintaxis:

    Dim xaRR() As String
    ReDim xaRR(q, z)
    xaRR(j, i) = aRR(i, j)

Esto no es demasiado relevante para mi publicación, pero vale la pena señalarlo.

Ejemplo:

Private Sub this()
    Dim rs As DAO.Recordset
    Dim q%: Dim z%
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM Invoice;")

    With rs
        rs.MoveLast
        q = rs.RecordCount
        rs.MoveFirst
        z = rs.Fields.Count
    End With
    
    Dim aRR As Variant
    
    aRR = rs.GetRows(q)
    
    Dim i%: Dim j%: Dim counter#: Dim Sep$: Dim Wholeline$: Dim NewTextFile$: Dim path$: Dim fileNameV$
    
    Sep = "|"
    path = Environ("USERPROFILE") & "\Desktop" & "\"
    fileNameV = "Text007.txt"
    NewTextFile = path & fileNameV
    Open NewTextFile For Output As #2
    For j = LBound(aRR, 2) To UBound(aRR, 2)
        For i = LBound(aRR, 1) To UBound(aRR, 1)
            Wholeline = Wholeline & aRR(i, j) & Sep
        Next i
        Print #2, Wholeline
        Wholeline = vbNullString
    Next j
    Close #2

    rs.Close
    Set rs = Nothing
    Erase aRR
    
End Sub


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow