Suche…


Einführung

Manchmal müssen Sie möglicherweise eine Textdatei mit Trennzeichen für verschiedene Zwecke erstellen. Das folgende Beispiel ist eine von vielen Möglichkeiten, um Ihnen dabei zu helfen. Ich habe eine Pipe ("|") für mein Trennzeichen verwendet, um die Änderung der Sep-Variablen zu ändern. In meinem Beispiel entlade ich das Recordset in ein Array. Dies ist keinesfalls der defacto-Ansatz, es ist nur mein Ziel. Dies kann problemlos auch mit dem Recordset selbst durchgeführt werden.

Bemerkungen

Das ist es wert, darauf hinzuweisen:

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

Da Recordsets in Arrays versetzt werden, müssen Sie sie rückwärts in die Textdatei lesen. Dies ist wirklich praktisch, wenn Sie mit dynamischen Arrays arbeiten, da diese bereits für Sie transponiert sind. Das Redim'ing der "Zeilenanzahl" kann also vor jedem schweren Hub erfolgen.

Auch nichts wert:

Sie können Ihr Array leicht transponieren, indem Sie es mit dieser Syntax zeilenweise in ein neues ausgeben:

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

das ist nicht zu relevant für meinen Beitrag, aber es lohnt sich, darauf hinzuweisen.

Beispiel:

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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow