Notifications
Clear all
2024 - VBA & Macros
3
Posts
2
Usuários
0
Reactions
1,919
Visualizações
Topic starter
tenho um listviewr que contem dados, quero transportar esses dados para o meu banco de dados em access... eu já possuo uma chave como nome "Pedido" para alterar as informações, só que essa minha chave pode se repetir em varias linhas como para o exemplo abaixo, eu quero salvar a coluna Material do meu listviewr na coluna material do meu BD para todas as minhas chaves.
O código para adptar seria o seguinte:
Private sub editar () 'Cria variável que armazena os comandos SQL Dim ComandoSQL As String Dim ID As Long ID = txt_codigo 'Armazena na variável o comando que fará a consulta SQL no BD Access ComandoSQL = "select * from TB_MM_1 where Pedido like '" & ID & "' " 'Chama a rotina que faz a conexão ao Banco de Dados Call Conecta 'Atribui a variável global do tipo Recorset, os comandos SQL que devem ser executados Set consulta = banco.OpenRecordset(ComandoSQL) '****Abre o Recordset do BD para edição consulta.Edit consulta("Pedido") = Me.ListView1.SelectedItem.SubItems(1) 'Atualiza o Recordset do BD consulta.Update 'Exibe mensagem de sucesso na alteração dos dados ' MsgBox "Registro Alterado com Sucesso!", vbDefaultButton1, "ALTERAÇÃO" sai: 'O comando será desviado parta cá caso haja erro de acesso aos dados Dim resposta As String 'cria a variável resposta resposta = MsgBox("Registro não encontrado.", vbCritical, "Atenção") 'Chama a rotina que libera as variáveis de objeto do BD Call Desconecta 'Abandona a subrotina Exit Sub End Sub
Welington Gonçalves
Postado : 26/06/2017 6:24 pm
Faça o teste, veja se é isso
Private Sub editar() 'Cria variável que armazena os comandos SQL Dim ComandoSQL As String Dim ID As Long ID = txt_codigo 'Armazena na variável o comando que fará a consulta SQL no BD Access ComandoSQL = "select * from TB_MM_1 where Pedido like '" & ID & "' " 'Chama a rotina que faz a conexão ao Banco de Dados Call Conecta 'Atribui a variável global do tipo Recorset, os comandos SQL que devem ser executados Set consulta = banco.OpenRecordset(ComandoSQL) '****Abre o Recordset do BD para edição If consulta.EOF = False And consulta.BOF = False Then consulta.MoveFirst Do While consulta.EOF = False consulta.Edit consulta("Pedido") = Me.ListView1.SelectedItem.SubItems(1) ' Pedido consulta("Material") = Me.ListView1.SelectedItem.SubItems(2) ' Material consulta.MoveNext Loop 'Atualiza o Recordset do BD consulta.Update 'Exibe mensagem de sucesso na alteração dos dados ' MsgBox "Registro Alterado com Sucesso!", vbDefaultButton1, "ALTERAÇÃO" End If sai: 'O comando será desviado parta cá caso haja erro de acesso aos dados Dim resposta As String 'cria a variável resposta resposta = MsgBox("Registro não encontrado.", vbCritical, "Atenção") 'Chama a rotina que libera as variáveis de objeto do BD Call Desconecta 'Abandona a subrotina Exit Sub End Sub
Click em
se a resposta foi util!
Postado : 27/06/2017 9:38 am
Topic starter
Obrigado Basole, funcionou.
Só precisei alterar o evento do consulta.Edit
'Cria variável que armazena os comandos SQL Dim ComandoSQL As String Dim ID As Long ID = txt_codigo 'Armazena na variável o comando que fará a consulta SQL no BD Access ComandoSQL = "select * from TB_MM_1 where Pedido like '" & ID & "' " 'Chama a rotina que faz a conexão ao Banco de Dados Call Conecta 'Atribui a variável global do tipo Recorset, os comandos SQL que devem ser executados Set consulta = banco.OpenRecordset(ComandoSQL) '****Abre o Recordset do BD para edição consulta.Edit If consulta.EOF = False And consulta.BOF = False Then consulta.MoveFirst Do While consulta.EOF = False consulta.Edit ' consulta("Pedido") = Me.ListView1.SelectedItem.SubItems(1) ' Pedido consulta("Material") = Me.ListView1.SelectedItem.SubItems(2) ' Material consulta.Update consulta.MoveNext Loop 'Atualiza o Recordset do BD 'Exibe mensagem de sucesso na alteração dos dados ' MsgBox "Registro Alterado com Sucesso!", vbDefaultButton1, "ALTERAÇÃO" End If sai: 'O comando será desviado parta cá caso haja erro de acesso aos dados Dim resposta As String 'cria a variável resposta ' resposta = MsgBox("Registro não encontrado.", vbCritical, "Atenção") 'Chama a rotina que libera as variáveis de objeto do BD Call Desconecta 'Abandona a subrotina Exit Sub End Sub
Welington Gonçalves
Postado : 28/06/2017 10:41 am