Exportando
dados de uma tabela para um arquivo texto no formato CSV(delimitado)
![]() |
Se algum dia você precisou exportar dados para um arquivo texto deveria ter lido este artigo antes. Como exemplo iremos exportar os dados da tabela Authors do arquivo Biblio.mdb. Neste exemplo o banco de dados esta no diretório c:\teste,e o nosso objeto é gerar um arquivo texto no formato delimitado com os dados. |
Em nosso projeto iremos fornecer o nome e a localização do banco de dados , a instrução SQL que irá selecionar os registros que queremos exportar e o nome do arquivo texto que iremos gerar. De presente iremos permitir a visualização do nosso arquivo gerado. Vamos lá...
![]() |
O código deste formulário é o seguinte:
- Código do botão de Comando- Command1- Exportar dados para Arquivo Texto
Private Sub Command1_Click()
Dim db As Database
Dim ws As Workspace
On Error GoTo inicia_erro
Set db = DBEngine.Workspaces(0).OpenDatabase(Text1.Text)
If Text1.Text <> "" And Text2.Text <> "" And Text3.Text <> "" Then
Call Exporta(db, Text2, Text3)
MsgBox "Arquivo texto : " & Text3.Text & " Gerado com sucesso "
Else
MsgBox "Por favor , informe todos os parâmetros ...", vbCritical, "Exportando dados para um arquivo Texto"
End If
Exit Sub
inicia_erro:
MsgBox ("Erro : " & Err.Description)
Exit Sub
End Sub
|
- Codigo da função Exporta - Recebe como parâmetro o banco de dados, a string SQL e o nome do arquivo de destino e retorna Falso(False) ou Verdadeiro (True)
Public Function Exporta(db As DAO.Database, sSQL As String, sDestino As String) As Boolean
Dim registro As Recordset
Dim nI As Long
Dim nJ As Long
Dim nArquivo As Integer
Dim sTemp As String
On Error GoTo Trata_Erro
Set registro = db.OpenRecordset(sSQL, DAO.dbOpenDynaset, DAO.dbReadOnly)
'Abre o arquivo de saida
nArquivo = FreeFile
Open sDestino For Output As #nArquivo
'Exporta os nomes dos campos
For nI = 0 To registro.Fields.Count - 1
sTemp = "" & (registro.Fields(nI).Name)
Write #nArquivo, sTemp;
Next
Write #nArquivo,
If registro.RecordCount > 0 Then
registro.MoveLast
registro.MoveFirst
For nI = 1 To registro.RecordCount
For nJ = 0 To registro.Fields.Count - 1
sTemp = "" & (registro.Fields(nJ))
Write #nArquivo, sTemp;
Next
Write #nArquivo,
registro.MoveNext
Next
End If
Close #nArquivo
Exporta = True
Exit Function
Trata_Erro:
MsgBox ("Erro : " & Err.Description)
Exporta = False
End Function
|
- Codigo do botão de comando - command2 - Exibe Texto
Private Sub Command2_Click() frmMostraTexto.Show vbModal End Sub |
O segundo formulário do nosso projeto será usado para exibir o arquivo texto gerado.O form contém apenas uma caixa de texto com a propriedade Multiline definida como True e um botão de comando. Ele tem o seguinte aspecto:
![]() |
O seu código é dado a seguir:
Private Sub Command1_Click() Unload Me End Sub --------------------------------------------------------------- Private Sub Form_Load() Open frmexporta.Text3.Text For Input As #1 txt_arquivo = Input(LOF(1), 1) Close #1 End Sub |
O resultado da execução do projeto é mostrado a seguir:
![]() |
| O formulário com os dados informados pelo usuário e exibindo o arquivo gerado |
Até a próxima dica...
|
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
VB.NET - Conhecendo as estruturas de controle - Macoratti ...
VB .NET - Copiando arquivos entre diretórios - Macoratti.net