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