Notifications
Clear all

Enviar dados Listview para BD Access 2

3 Posts
2 Usuários
0 Reactions
1,071 Visualizações
wfranca
(@wfranca)
Posts: 297
Reputable Member
Topic starter
 

Pessoal, me apressei ao encerrar o tópico abaixo:
viewtopic.php?f=10&t=25177

Na verdade o código atende a necessidade em partes, pois quando ele altera a informação no BD, ele pega apenas o primeiro item do Listviwer..

'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 : 04/07/2017 5:26 pm
Basole
(@basole)
Posts: 487
Reputable Member
 

Neste exemplo, faz uma varredura em todos os items do Listview:

'Cria variável que armazena os comandos SQL
   Dim ComandoSQL As String
    Dim ID As Long
    Dim i As Integer
       
    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
       
    With ListView1
        For i = 1 To .ListItems.Count
        
               consulta.Edit
            '  MsgBox .ListItems(i) ' 1ª col
               consulta("Pedido").Value = .ListItems(i).ListSubItems(1) ' 2ª col.
               consulta("Material").Value = .ListItems(i).ListSubItems(2) '3ª col.
               consulta.Update
               consulta.MoveNext
        Next i
    End With
   
           '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
           

Click em se a resposta foi util!

 
Postado : 05/07/2017 10:11 am
wfranca
(@wfranca)
Posts: 297
Reputable Member
Topic starter
 

Top Basole,

era exatamente isso

Welington Gonçalves

 
Postado : 05/07/2017 6:43 pm