Notifications
Clear all

Enviar dados Listview para BD Access

3 Posts
2 Usuários
0 Reactions
1,886 Visualizações
wfranca
(@wfranca)
Posts: 297
Reputable Member
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
Basole
(@basole)
Posts: 487
Reputable Member
 

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
wfranca
(@wfranca)
Posts: 297
Reputable Member
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