Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafa-martin

atualizar registro no listview

Recommended Posts

pessoal, possuo dentro do meu listview alguns registros do banco. entre esses registros está o codigo do produto.ao lado de todos os codigos de produtos apare um checkbox. e quando o usuário selecionar um checkbox de um determinado codigocde produto ele deve atualizar toda linha pertecente a arquele produto.como eu faço uma atualização com a instrução update?obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa! Faz o seguinte:

 

Private Sub LvwAtualizaProduto_ItemCheck(ByVal Item As MSComctlLib.ListItem)       SQL = " UPDATE Produtos " & _                 " SET Nome = '"& LvwAtualizaProduto.SelectedItem.Text &"' " & _                 " WHERE CodProduto = "& LvwAtualizaProduto.SelectedItem(2)  &" "       Cnn.Execute SQLEnd Sub

 

Bom, só fiz uma instrução Update só pra ver como é .... Neste caso estou atualizando o nome do Produto que está na primeira coluna do ListView e na terceira coluna (q tem index nº 2), estou pegando o código do produto para criar a clausula Where. Espero ter ajudado.

 

Oks,

Rafael Portal

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, fiz o update que você me passou e está dando erro nessa linha:" WHERE codigo_produto = " & lstMostra.SelectedItem(1) & " "para ser mais exato está dando erro no lstMostra.SelectedItem(1) & " ". O erro é no SelectedItem.lembramdo que quando eu selecionar o código do produto, no banco aparrcerá no campo situcao um checkbox selecionado.o que pode ser esse erro?a mensagem de erro é essa:wrong number of arguments or invalid property assignment.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Xará !!! Seguinte cara.. Eu não tenho a menor idéia de qual o índice q fica o seu Código de Cliente.. Tipo quando você carregou o ListView você deve ter atribuido o Rs!CodCliente para alguma coluna/SubItem tipo assim:

 

SQL = " SELECT * FROM Clientes"Conn.Execute SQLDo While Not Rs.EOF     Set Lvw = Me.LvwClientes.ListItems.Add     Lvw.Text = Rs!NomeCliente     Lvw.SubItems(1) = Rs!CodCliente     Rs.MoveNextLoop

Logo, o código do cliente está na coluna número 2 (que é o SubItem número 1), quando você for utilizar o CodCliente você tem q usar desta forma:

 

Dim CodCli as LongCodCli = LvwClientes.SelectedItem.ListSubItems(1)MsgBox CodCli, vbInformation + vbOkOnly, "Aviso"

A idéia é, o erro foi "Indice fora do limite", pq a comparação que você estava fazendo estava fora do índice. Digamos q você só tenha o Item 1 e 2, e você tentou pegar dados do número 3 que não existe. É isso. Abraço.

 

Oks,

Rafael Portal

Compartilhar este post


Link para o post
Compartilhar em outros sites

A ação itemchek ela funciona cada vez que você clica na checkbox então primeiro você tem que verificar se o checkbox está marcado ou ñ.

Depois invés de usar "nome_listview.selecteditem..." é mais facil usar a variavel item que já vem como paramêtro que é o item em que foi clicado.

 

Private Sub lstarquivos_ItemCheck(ByVal Item As MSComctlLib.ListItem)    If Item.Checked Then        sql_update = "update tabela set campo1='" & item.subitems(1)....        'executa a sql    End IfEnd Sub
Agora é só você montar sua sql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

" WHERE CodProduto = "& LvwAtualizaProduto.SelectedItem(2)

Se o CodProduto for do Tipo Inteiro não precisa de "então: ... WHERE CodProduto = " & LvwAtualizaProduto.SelectedItem(2)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.