Ciao a tutti comefaccio a leggere le righe di una listview??
Utilizzo DAO!!
Grazie Sara
Ciao a tutti comefaccio a leggere le righe di una listview??
Utilizzo DAO!!
Grazie Sara
Grazie
Sara
www.tsnavigliana.it
Un pò contorta come domanda!!!!![]()
Il dubbio non è piacevole, ma la certezza è ridicola. Solo gli imbecilli son sicuri di ciò che dicono.
scusami, fose sono stata poco chiara...
ho caricato una listview che ha proprietà checkedboxes.
ora cliccando su un pulsante devo aggiornare i campi del db dove c'è il segno nella checkedbox. ma come devo fare??
grazie Sara
Grazie
Sara
www.tsnavigliana.it
Scorri tutta la lista dal primo all'ultimo con un FOR..NEXT per ogni nodo Checcato reperisci l'ID del record e lanci un UPDATE su quel record impostandone il field che va modificato.
Quando carichi la Listview per ogni nodo che carichi imposta la TAG del nodo stesso con il valore dell'ID del record che stai caricando in quel momento e che poi utilizzerai per fare quanto sopra descritto.
Se non hai capito ritento.
Il dubbio non è piacevole, ma la certezza è ridicola. Solo gli imbecilli son sicuri di ciò che dicono.
codice:Option Explicit Dim db As Database Dim rs, ms As Recordset Dim sql As String Dim ind As Integer Dim mItem As ListItem Dim c As Integer Dim inc As Integer Private Sub Form_Load() c = 0 TXTDATAOGGI.Text = Date Set db = OpenDatabase(App.Path & "\IlDadoBlu.mdb") sql = "select * from ScadenzarioPag Order by ScadFatt" Set rs = db.OpenRecordset(sql) ListView1.ColumnHeaders.Add , , "Data Scadenza", ListView1.Width / 8 ListView1.ColumnHeaders.Add , , "N°Fattura", ListView1.Width / 8, 1 ListView1.ColumnHeaders.Add , , "Cliente", ListView1.Width / 4 ListView1.ColumnHeaders.Add , , "N°DDT", ListView1.Width / 12, 1 ListView1.ColumnHeaders.Add , , "Totale da Pagare", ListView1.Width / 5.33, 1 ListView1.BorderStyle = ccFixedSingle ListView1.View = lvwReport Do While rs.EOF = False 'Scorro tutta la query ind = ind + 1 Set mItem = ListView1.ListItems.Add(, , CStr(rs("ScadFatt"))) 'setto la variabile x inserimento col e inseriscoil 1° valore mItem.ListSubItems.Add , , CStr(rs("NFatt")) 'inserisco la prima subcolonna mItem.ListSubItems.Add , , CStr(rs("Cliente")) 'inserisco anche la seconda mItem.ListSubItems.Add , , CStr(rs("NDDT")) 'inserisco anche la seconda mItem.ListSubItems.Add , , CStr(rs("TotaleFatt")) & " €" ListView1.ListItems(ind).Tag = rs("ID") 'inserisco l'id della linea per poterla aprire If (rs!Pagato) = "1" Then mItem.Checked = True End If ' ListView1.ListItems(ind).Tag = rs("ID") 'inserisco l'id della linea per poterla aprire rs.MoveNext Loop rs.Close inc = ind End Sub --------------------------------------------------------------------- --------------------------------------------------------------------- Private Sub Command1_Click() Set db = OpenDatabase(App.Path & "\dado.mdb") sql = "select * from ScadenzarioPag Order by ScadFatt" Set rs = db.OpenRecordset(sql) For inc = 0 To ind If ListView1.ListItems.Item(mItem).Checked = True Then sql = "Update ScadenzarioPag set Pagato = ('" & 1 & "')where id = che ci metto qui?????" db.Execute (sql) End If Next inc End Sub --------------------------------------------------------------------- Private Sub Command2_Click() Printer.Print PaintPicture(LOGO2.jpg, 500, 500) Printer.EndDoc End Sub ----------------------------------------------------------------------
Grazie
Sara
www.tsnavigliana.it
se Pagato è un campo intero non servono gli apici
credo che la parte in rosso non ti serva, visto che l'update lo esegui direttamente sulla connessionecodice:Private Sub Command1_Click() Set db = OpenDatabase(App.Path & "\dado.mdb") sql = "select * from ScadenzarioPag Order by ScadFatt" Set rs = db.OpenRecordset(sql) For inc = 1 To ListView1.ListItems.Count If ListView1.ListItems.Item(inc).Checked = True Then sql = "Update ScadenzarioPag set Pagato = 1 " & _ "where id = " & CLng(ListView1.ListItems.Item(inc).Tag) db.Execute (sql) End If Next inc End Sub
se nell'if inserisc mItem, le righe non le scorre, devi invece inserire l'indice![]()
05.08.2005 - by alka
Auguri all'angelo custode dei moderatori.
mi da errore 35600codice:If ListView1.ListItems.Item(inc).Checked = True Then
Limiti esauriti per l'indice!!!
come mai che devo fare???
Grazie
Sara
www.tsnavigliana.it
avevo modificato il for, scrivendoOriginariamente inviato da sara81it
mi da errore 35600codice:If ListView1.ListItems.Item(inc).Checked = True Then
Limiti esauriti per l'indice!!!
come mai che devo fare???
inc = 1
forse non lo hai visto![]()
05.08.2005 - by alka
Auguri all'angelo custode dei moderatori.
ora funziona e se invece di fare un update vorrei cancellare i record fleggati??
Grazie !!
Grazie
Sara
www.tsnavigliana.it
basta che modifichi l'istruzione Sql:Originariamente inviato da sara81it
ora funziona e se invece di fare un update vorrei cancellare i record fleggati??
Grazie !!
codice:sql = "Delete ScadenzarioPag " & _ "where id = " & CLng(ListView1.ListItems.Item(inc).Tag)![]()
05.08.2005 - by alka
Auguri all'angelo custode dei moderatori.