Ricerca…


introduzione

Alcune volte potrebbe essere necessario creare un file di testo delimitato per vari usi. Il seguente esempio è uno dei molti modi per aiutarti a farlo. Ho usato una pipe ("|") per il mio delimitatore, per cambiare basta cambiare l'assegnazione della variabile Sep. Nel mio esempio faccio il dump del recordset su un array, questo non è affatto l'approccio defacto, è solo il mio andare a. Questo può essere fatto facilmente anche usando il recordset stesso.

Osservazioni

Vale la pena segnalarlo:

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

Poiché i recordset eseguono il dump su array trasposti, è necessario leggerli all'indietro nel file di testo. Questo è in realtà un po 'utile se stai lavorando con array dinamici, dato che è già trasposto per te, quindi è possibile eseguire il rediming del "conteggio delle righe" prima di qualsiasi sollevamento pesante.

Inoltre non vale niente:

Puoi facilmente trasporre la tua matrice scaricandola in una nuova riga per riga usando questa sintassi:

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

questo non è troppo rilevante per il mio post, ma vale la pena segnalarlo.

Esempio:

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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow