Suponha que você tenha uma planilha Excel e que precise copiar os dados desta planilha em uma tabela de um banco de dados Access.
Como você faria ??
Quer uma sugestão ?? Use SQL . Sim , com uma linha de comando você grava os dados da planilha na tabela do seu banco de dados Access.
Esta pagando para ver ?? Então veja :
Primeiro você deve escolher
a planilha que cujos dados deseja gravar. Eu vou usar uma planilha muito
simples criada no Excel com o nome de teste.xls e salva na pasta c:\teste.
Abaixo vemos a planilha. |
A seguir você precisa saber em qual banco de dados vai gravar os dados e o nome da tabela na qual os dados vão ser gravados.
Vamos usar um código para verificar se o banco de dados que você informou existe , se ele não existir , vamos criar o banco de dados e quando da gravação dos dados da planilha a tabela também será criada.
- Inicie um novo projeto no
VB e no formulário padrão insira os seguintes controles :
Conforme figura ao lado. |
Vamos ao código :
1- Antes de mais nada faça a referência no seu projeto as livrarias - ADO e ADOX ,conforme abaixo :
- Vamos usar a
ADOX para criar o banco de dados caso seja necessário
usando o objeto Catalog.
Obs : Para sabe mais leia o artigo - ADOX - Gerenciando o seu banco de dados. |
2- Na seção General Declarations vamos declarar as variáveis visíveis em todo o formulário :
Dim Origem As String Dim Destino As String Dim oCon As ADODB.Connection Dim rst As ADODB.Recordset |
3- No evento Click do botão - command1 - Gravar no BD - insira o código abaixo.
Private Sub Command1_Click() Dim cSQL As String On Error GoTo trata_erro 'verifica se a planilha existe If Dir(Origem) = "" Then MsgBox "O arquivo origem " & Origem & " Não existe !!! ", vbCritical, "Erro" Exit Sub End If 'verifica se o banco de dados existe , se não existir , cria-o If Dir(Destino) = "" Then Dim oCat As ADOX.Catalog Set oCat = New ADOX.Catalog oCat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Destino End If 'abre uma conexão com a planilha do Excel Set oCon = New ADODB.Connection With oCon .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" & Origem & ";" & "Extended Properties=Excel 8.0" .Open 'monta a instrução SQL que irá gravar os dados na tabela cSQL = "SELECT * INTO [" & txtTabela.Text & "] " & _ "IN '" & Destino & "' " & " FROM [Plan1$]" .Execute cSQL MsgBox "Dados gravados com Sucesso em - " & Destino & " - na Tabela : " & txtTabela.Text .Close End With Exit Sub trata_erro: MsgBox Err.Description & " - " & Err.Number Exit Sub End Sub |
4- No evento Click do botão de comando - command2 - Ver Dados >> - insira o código abaixo :
Private Sub Command2_Click() 'expande o formulário para exibir os dados With Command2 If .Caption = "&Ver Dados >>" Then Me.Width = 4800 Me.Height = 4425 .Caption = "<< &Ver Dados" Else Me.Width = 4800 Me.Height = 2115 .Caption = "&Ver Dados >>" End If End With 'abre uma conexao e o recordset Set oCon = New ADODB.Connection Set rst = New ADODB.Recordset oCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Destino List1.Clear rst.CursorLocation = adUseClient rst.Open "Select * from " & txtTabela.Text, oCon, adOpenStatic, adLockBatchOptimistic, adCmdText 'exibe os dados - dois campos - no controle listbox Do Until rst.EOF List1.AddItem rst(0) & " " & rst(1) rst.MoveNext Loop rst.Close End Sub |
5- No evento Load do formulário digite o código abaixo :
Private Sub Form_Load() 'atribui os nomes da origem e do destino as variáveis Origem = txtOrigem.Text Destino = txtDestino.Text End Sub |
Quando você executar o projeto e clicar no botão - Gravar no BD - vai ver o formulário da figura 11 ; quando clicar no botão - Ver Dados>> - vai ver o formulário da figura 2 :
Figura 1 | Figura 2 |
A instrução SQL que faz todo o serviço é a seguinte :
SELECT * INTO [" & txtTabela.Text & "] " & "IN '" & Destino & "' " & " FROM [Plan1$]
Onde temos :
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 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET