Recherche…


Introduction

Vous devrez parfois créer un fichier texte délimité pour diverses utilisations. L'exemple suivant est l'une des nombreuses façons de vous aider. J'ai utilisé un pipe ("|") pour mon délimiteur, pour changer cela juste changer l'attribution de la variable Sep. Dans mon exemple, je vider le jeu d'enregistrements dans un tableau, ce n'est en aucun cas l'approche de facto, c'est juste mon but. Cela peut facilement être fait en utilisant le jeu d’enregistrements lui-même.

Remarques

Cela vaut la peine de le souligner:

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

Comme les jeux d'enregistrements sont transférés dans des tableaux transposés, vous devrez le lire dans le fichier texte en arrière. C'est en fait un peu pratique si vous travaillez avec des tableaux dynamiques, car ils sont déjà transposés pour vous, ce qui permet de redéfinir le "nombre de lignes" avant de commencer.

Ne vaut également rien:

Vous pouvez facilement transposer votre tableau en le déversant dans une nouvelle ligne par ligne en utilisant cette syntaxe:

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

Ce n'est pas trop pertinent pour mon post, mais cela vaut la peine de le souligner.

Exemple:

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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow