Bem consegui a chegar proximo do que quero, depois de varias tentativas usando outros codigo do meu sistema, cheguei a isso:
* Se eu por apenas 1 item na ListBox menor, os dados sao salvos no Banco de Dados Acess corretamente
* Se eu por varios itens ai nao rola
Outro problema é que nao consegui como fazer com que no Acess o Registro seja igual ao Nº do Pedido e nesse mesmo registro fiquem armazenados os dados da ListView. Digamos que o Pedido seja o 420, Neste caso seria isso que ficaria no BD do Acess:
Recibo COd Produto Valor QNT Total
420 1 Feijao 30,00 1 30.00
6 Arroz 15.00 1 15.00
421 ................................
Nao sei se da pra fazer isso, pois assim para carregar as vendas do Acess para o Form, eu puxaria pelo Recibo.
Private Sub Salvar_Click()
'Cria variável que armazena os comandos SQL
Dim ComandoSQL As String
Dim id 'As Integer
' id = Pedido 'Esta TextBox Pedido é o Nº do Pedido que devra ir na Coluna 0 da Tabela Acess
'Armazena na variável o comando que fará a consulta SQL no BD Access
ComandoSQL = "select * from Pedidos"
'Chama a rotina que faz a conexão com o BD
Call Conecta
'Atribui a variável de Objeto de BD a execução dos comandos SQL
Set Consulta = banco.OpenRecordset(ComandoSQL)
'Enquanto consulta (variável objeto do BD)...
With Consulta
'Abre o Recordset do BD para inserção
.AddNew
'Armazena em cada um dos campos do BD os valores constantes nas caixas de texto e combo do formulário
For i = 1 To ListView1.ListItems.Count
.Fields("Recibo") = ListView1.ListItems(i).text
'Loop as colunas
For j = 1 To ListView1.ColumnHeaders.Count - 1
.Fields("1") = ListView1.ListItems(i).ListSubItems(1).text
.Fields("2") = ListView1.ListItems(i).ListSubItems(2).text
.Fields("3") = ListView1.ListItems(i).ListSubItems(3).text
.Fields("4") = ListView1.ListItems(i).ListSubItems(4).text
.Fields("5") = ListView1.ListItems(i).ListSubItems(5).text
.Fields("6") = ListView1.ListItems(i).ListSubItems(6).text
Next j
Next i
'Efetiva a atualização do BD
.Update
End With
'Fecha o Recorset e a conexão com o BD
Consulta.Close
banco.Close
'Chama a rotina que desconecta do BD (libera variáveis objeto de BD)
Call Desconecta
End Sub
Postado : 29/09/2017 8:58 am