access-vba
Utwórz plik rozdzielany tekstem w programie Access Vba
Szukaj…
Wprowadzenie
Czasami może być konieczne utworzenie pliku tekstowego z ogranicznikami do różnych zastosowań. Poniższy przykład jest jednym z wielu sposobów, aby Ci to pomóc. Użyłem potoku („|”) dla mojego ogranicznika, aby to zmienić, wystarczy zmienić przypisanie zmiennej Sep. W moim przykładzie zrzucam zestaw rekordów do tablicy, to wcale nie jest podejście defacto, to tylko moje przejście. Można to łatwo zrobić za pomocą samego zestawu rekordów.
Uwagi
Warto zwrócić uwagę:
Wholeline = Wholeline & aRR(i, j) & Sep
Ponieważ zestawy rekordów są zrzucane do transponowanych tablic, będziesz musiał odczytać je do pliku tekstowego do tyłu. Jest to właściwie przydatne, jeśli pracujesz z dynamicznymi tablicami, ponieważ jest już dla ciebie transponowany, więc zmniejszanie „liczby wierszy” można wykonać przed każdym ciężkim podnoszeniem.
Również nic nie warte:
Możesz łatwo przetransponować swoją tablicę, zrzucając ją do nowej linii po linii, używając następującej składni:
Dim xaRR() As String
ReDim xaRR(q, z)
xaRR(j, i) = aRR(i, j)
nie jest to zbyt istotne dla mojego postu, ale warto na to zwrócić uwagę.
Przykład:
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