Você está na página 1de 3

Option Explicit

' función que recibe el recordset de ado, y el path del archivo csv
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Function Recordset_a_Csv(path As String, _
rs As Recordset) As Boolean

On Error GoTo Err_function


Dim Columna
Dim Fila As Integer
' Crea el archivo csv
Open path For Output As #1
' Se mueve al primer registro
rs.MoveFirst
' recorre todo el recordset
For Fila = 0 To rs.RecordCount - 1
' nombre del campo
Print #1, Chr(34) & Trim(rs.Fields(0)) & Chr(34);
' recorre todos los campos
For Columna = 1 To rs.Fields.Count - 1
' imprime la fila actual en el fichero
Print #1, "," & Chr(34) & Trim(rs.Fields(Columna)) & Chr(34);
Next
' escribe una línea en blanco
Print ""
' salto de carro
Print #1, Chr(13) & Chr(10);
' mueve el recordset al siguiente registro
rs.MoveNext
Next
' cierra el archivo csv
Close #1
Exit Function
Err_function:
MsgBox Err.Description, vbCritical
Close
End Function

' Objeto connection


Dim cn As New ADODB.Connection
' Connectionstring
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data " & _
"Source=C:\Archivos de programa\Microsoft " & _
"Visual Studio\VB98\BIBLIO.MDB;Persist Security Info=F
alse"
' Abre
cn.Open
' Instancia el recordset
Dim rs As New Recordset
' Le pasa la consulta sql
rs.Open "Select * from authors", cn, adOpenStatic, adLockOptimistic
Call Recordset_a_Csv("c:\ejemplo.csv", rs)
-----------------------------

Option Explicit
'Función que exporta el recordset a un Archivo de texto csv separado por comas
'*******************************************************************************
**
Public Function Recordset_a_CSV(rs As ADODB.Recordset, Path_Csv As String) As Bo
olean
On Error GoTo errFunction
Dim Datos_Csv As String
' Devuelve los datos separados por comas y con un salto de carro
Datos_Csv = rs.GetString(adClipString, -1, ",", vbCrLf, "(NULL)")
' Abre y Crea un archivo de texto para escribir los datos
Open Path_Csv For Output As #1
' escribe los datos
Print #1, Datos_Csv
'cierra
Close
' Ok
Recordset_a_CSV = True
Exit Function
'Error
errFunction:
MsgBox Err.Description, vbCritical
End Function
Private Sub Form_Load()
Dim cnn As ADODB.Connection
Dim Rst As ADODB.Recordset
Dim R As Boolean
' Nueva conexión Ado
Set cnn = New ADODB.Connection
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source" & _
"=C:\Archivos de programa\Microsoft Visual " & _
"Studio\VB98\BIBLIO.MDB;Persist Security Info=False"
cnn.CursorLocation = adUseClient
' Abre la base de datos
cnn.Open
' Nuevo recordset ADO
Set Rst = New ADODB.Recordset
' Abre el recordset
Rst.Open "Select * From Authors", cnn, adOpenStatic, adLockOptimistic
' Llama a la función que genera el Csv con los datos del recordset
R = Recordset_a_CSV(Rst, "c:\archivo.csv")
If R Then
MsgBox " Se genró el archivo CSV correctamente ", vbInformation
End If
' Cierra el recordset , la conexión y descarga las variables
If Not Rst.State = adStateOpen Then
Rst.Close
End If
If Not Rst Is Nothing Then
Set Rst = Nothing
End If
If Not cnn.State = adStateOpen Then
cnn.Close
End If
If Not cnn Is Nothing Then
Set cnn = Nothing
End If
End Sub