access-vba
Crear archivo delimitado de texto en Access Vba
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