AJUDA COM LISTVIEW VB6
tenho um controle listview que lista todas as parcelas que estao abertas, porem preciso que ao o usuario
marcar um ou mais checkboxs no controle listview, e depois precionar um botao especifico (Salvar)
todos os registro que foram marcados no ctrl listview serao alterados no bd, somente os que foram marcados...
este codigo porem so altera a primeira linha:
Private Sub cmdsalvar_Click()
Dim cmdgravar As New ADODB.Command
Dim I As Long
For I = 1 To Me.ListView1.ListItems.Count
If Me.ListView1.ListItems(I).Checked = True Then
With cmdgravar
Set .ActiveConnection = CnConect
.CommandType = adCmdText
.Prepared = True
.CommandText = [Ô]update detalhes_contas_pagar set vl_pago= ?, pago=?, dtalter=? where id=[Ô] & CInt(Me.ListView1.ListItems(I).Text) & [Ô][Ô]
.Parameters.Append .CreateParameter([Ô]vl_pago[Ô], adCurrency, adParamInput)
.Parameters.Append .CreateParameter([Ô]pago[Ô], adSingle, adParamInput)
.Parameters.Append .CreateParameter([Ô]dtalter[Ô], adDate, adParamInput)
.Parameters([Ô]vl_pago[Ô]) = CCur(Me.ListView1.ListItems(I).SubItems(2))
.Parameters([Ô]pago[Ô]) = True
.Parameters([Ô]dtalter[Ô]) = Format(Now, [Ô]dd/mm/yyyy[Ô])
.Execute
MsgBox [Ô]Gravado Com Sucesso![Ô], vbInformation
ListView1.Refresh
localizaIDTPContas
localizaIDForn
Preencher_Listview
MontarListaParcPagas
SomaVlPago
If Err.Number <> 0 Then
MostraErro
End If
End With
Set cmdgravar = Nothing
Else
Exit Sub
End If
Next I
End Sub
alguem pode me ajudar?
Obrigado!
marcar um ou mais checkboxs no controle listview, e depois precionar um botao especifico (Salvar)
todos os registro que foram marcados no ctrl listview serao alterados no bd, somente os que foram marcados...
este codigo porem so altera a primeira linha:
Private Sub cmdsalvar_Click()
Dim cmdgravar As New ADODB.Command
Dim I As Long
For I = 1 To Me.ListView1.ListItems.Count
If Me.ListView1.ListItems(I).Checked = True Then
With cmdgravar
Set .ActiveConnection = CnConect
.CommandType = adCmdText
.Prepared = True
.CommandText = [Ô]update detalhes_contas_pagar set vl_pago= ?, pago=?, dtalter=? where id=[Ô] & CInt(Me.ListView1.ListItems(I).Text) & [Ô][Ô]
.Parameters.Append .CreateParameter([Ô]vl_pago[Ô], adCurrency, adParamInput)
.Parameters.Append .CreateParameter([Ô]pago[Ô], adSingle, adParamInput)
.Parameters.Append .CreateParameter([Ô]dtalter[Ô], adDate, adParamInput)
.Parameters([Ô]vl_pago[Ô]) = CCur(Me.ListView1.ListItems(I).SubItems(2))
.Parameters([Ô]pago[Ô]) = True
.Parameters([Ô]dtalter[Ô]) = Format(Now, [Ô]dd/mm/yyyy[Ô])
.Execute
MsgBox [Ô]Gravado Com Sucesso![Ô], vbInformation
ListView1.Refresh
localizaIDTPContas
localizaIDForn
Preencher_Listview
MontarListaParcPagas
SomaVlPago
If Err.Number <> 0 Then
MostraErro
End If
End With
Set cmdgravar = Nothing
Else
Exit Sub
End If
Next I
End Sub
alguem pode me ajudar?
Obrigado!
for i =0 to lstlist.listitems.conut
if lstlist.listitems(i).cheked =true then
bota seu código de salvar aqui...
end if
next i
if lstlist.listitems(i).cheked =true then
bota seu código de salvar aqui...
end if
next i
deu erro :
Run-time error [ô]35600[ô]
Index out of bounds
e esta apontando para linha
If ListView1.ListItems(I).Checked = True Then
o que pode ser?.. desculpa amigo mas sou junior ainda.. agradeço a colaboraçao
Run-time error [ô]35600[ô]
Index out of bounds
e esta apontando para linha
If ListView1.ListItems(I).Checked = True Then
o que pode ser?.. desculpa amigo mas sou junior ainda.. agradeço a colaboraçao
tenta i -1 e v c resolve
CARA COMEÇA O FOR NEXT NO 1, TIPO
FOR I = 1 TO SEULIST.LISTITEMS.COUNT
IF CHECADO THEN
FAÇA TAL
ENDIF
NEXT
FOR I = 1 TO SEULIST.LISTITEMS.COUNT
IF CHECADO THEN
FAÇA TAL
ENDIF
NEXT
pessoal encontrei a solucao
o problema estava aqui:
Private Sub cmdsalvar_Click()
Dim cmdgravar As New ADODB.Command
Dim I As Long
For I = 1 To Me.ListView1.ListItems.Count
If Me.ListView1.ListItems(I).Checked = True Then
With cmdgravar
Set .ActiveConnection = CnConect
.CommandType = adCmdText
.Prepared = True
.CommandText = [Ô]update detalhes_contas_pagar set vl_pago= ?, pago=?, dtalter=? where id=[Ô] & CInt(Me.ListView1.ListItems(I).Text) & [Ô][Ô]
.Parameters.Append .CreateParameter([Ô]vl_pago[Ô], adCurrency, adParamInput)
.Parameters.Append .CreateParameter([Ô]pago[Ô], adSingle, adParamInput)
.Parameters.Append .CreateParameter([Ô]dtalter[Ô], adDate, adParamInput)
.Parameters([Ô]vl_pago[Ô]) = CCur(Me.ListView1.ListItems(I).SubItems(2))
.Parameters([Ô]pago[Ô]) = True
.Parameters([Ô]dtalter[Ô]) = Format(Now, [Ô]dd/mm/yyyy[Ô])
.Execute
[ô]-----------------------------------------------------------------
MsgBox [Ô]Gravado Com Sucesso![Ô], vbInformation -
ListView1.Refresh -
-
localizaIDTPContas - aqui esta o erro.
localizaIDForn -
Preencher_Listview -
MontarListaParcPagas -
[ô]----------------------------------------------------------------
SomaVlPago
If Err.Number <> 0 Then
MostraErro
End If
End With
Set cmdgravar = Nothing
Else
Exit Sub
End If
Next I
End Sub
[ô]------------------------------------------------
isso faz o sistema atualizar o listview e a tabela do bd...
ele percorria a lista, atualizava o primeiro registro, porem atualizava os registro do listview e desmarcava os checkboxs ...
entao so fazia a coisa certa somente no primeiro registro, pois quando ele passava novamente ja nao tinha nada marcado mais...
entenderao?
agradeço a colaboracao de vcs...
obrigado!
o problema estava aqui:
Private Sub cmdsalvar_Click()
Dim cmdgravar As New ADODB.Command
Dim I As Long
For I = 1 To Me.ListView1.ListItems.Count
If Me.ListView1.ListItems(I).Checked = True Then
With cmdgravar
Set .ActiveConnection = CnConect
.CommandType = adCmdText
.Prepared = True
.CommandText = [Ô]update detalhes_contas_pagar set vl_pago= ?, pago=?, dtalter=? where id=[Ô] & CInt(Me.ListView1.ListItems(I).Text) & [Ô][Ô]
.Parameters.Append .CreateParameter([Ô]vl_pago[Ô], adCurrency, adParamInput)
.Parameters.Append .CreateParameter([Ô]pago[Ô], adSingle, adParamInput)
.Parameters.Append .CreateParameter([Ô]dtalter[Ô], adDate, adParamInput)
.Parameters([Ô]vl_pago[Ô]) = CCur(Me.ListView1.ListItems(I).SubItems(2))
.Parameters([Ô]pago[Ô]) = True
.Parameters([Ô]dtalter[Ô]) = Format(Now, [Ô]dd/mm/yyyy[Ô])
.Execute
[ô]-----------------------------------------------------------------
MsgBox [Ô]Gravado Com Sucesso![Ô], vbInformation -
ListView1.Refresh -
-
localizaIDTPContas - aqui esta o erro.
localizaIDForn -
Preencher_Listview -
MontarListaParcPagas -
[ô]----------------------------------------------------------------
SomaVlPago
If Err.Number <> 0 Then
MostraErro
End If
End With
Set cmdgravar = Nothing
Else
Exit Sub
End If
Next I
End Sub
[ô]------------------------------------------------
isso faz o sistema atualizar o listview e a tabela do bd...
ele percorria a lista, atualizava o primeiro registro, porem atualizava os registro do listview e desmarcava os checkboxs ...
entao so fazia a coisa certa somente no primeiro registro, pois quando ele passava novamente ja nao tinha nada marcado mais...
entenderao?
agradeço a colaboracao de vcs...
obrigado!
Olá amigo,
fico feliz que tenha encontrado a solução.
Por favor encerre o tópico.
Abraços
fico feliz que tenha encontrado a solução.
Por favor encerre o tópico.
Abraços
Tópico encerrado , respostas não são mais permitidas