Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - listview e cancellazione record
Forum - Visual Basic 6 - listview e cancellazione record

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
moet (Normal User)
Pro


Messaggi: 185
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 22:04
Lunedì, 26/11/2007
Data listview riempita da database vorrei dopo aver selezionato riga con il mouse (id,nome, cognome) la cancellazione sia da database che da listview anche con un commanbutton va bene. Grazie

PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 10:25
Martedì, 27/11/2007
Ciao, io non ho mai lavorato con le listview, sto imparando adesso.
Per aggiungere elementi si fa:
Codice sorgente - presumibilmente VB.NET

  1. Dim c As ListItem
  2. Private Sub Form_Load()
  3. Dim i As Integer
  4. ListView1.View = lvwReport
  5. ListView1.ColumnHeaders.Add , "col1", "ID", 100
  6. ListView1.ColumnHeaders.Add , "col2", "Nome"
  7. ListView1.ColumnHeaders.Add , "col3", "Cognome"
  8. For i = 1 To 5
  9. Set c = ListView1.ListItems.Add(, , CStr(i))
  10. c.SubItems(1) = "mionome"
  11. c.SubItems(2) = "miocognome"
  12. Next i
  13. End Sub


elimina l'elemento 4.
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command1_Click()
  2. Dim i
  3. ListView1.ListItems.Remove (4)
  4. End Sub


Il problema è riuscire a trovare l'indice dell'elemento selezionato.
Ciao.

Ultima modifica effettuata da LuigiBiasi il 27/11/2007 alle 10:28
PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 10:46
Martedì, 27/11/2007
trovato...
questo è il codice completo:
Codice sorgente - presumibilmente Visual Basic 6

  1. Dim c As ListItem



Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command1_Click()
  2. For Each c In ListView1.ListItems
  3. If c.Selected Then
  4. ListView1.ListItems.Remove c.Index
  5. Exit For
  6. End If
  7. Next
  8. End Sub



Codice sorgente - presumibilmente VB.NET

  1. Dim i As Integer
  2. ListView1.View = lvwReport
  3. ListView1.ColumnHeaders.Add , "col1", "ID", 100
  4. ListView1.ColumnHeaders.Add , "col2", "Nome"
  5. ListView1.ColumnHeaders.Add , "col3", "Cognome"
  6. For i = 1 To 5
  7. Set c = ListView1.ListItems.Add(, , CStr(i))
  8. c.SubItems(1) = "mionome"
  9. c.SubItems(2) = "miocognome"
  10. Next i


Questo codice è un esempio di utilizzo della listview.
Ciao.

PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 11:05
Martedì, 27/11/2007
comunque visto che la cosa non è particolarmente difficile ho completato il codice:
Codice sorgente - presumibilmente VB.NET

  1. Dim cn As New ADODB.Connection
  2. Dim rs As New ADODB.Recordset
  3. Dim c As ListItem
  4. Dim n As Integer
  5.  
  6. Private Sub Command1_Click()
  7. Dim ind As Integer
  8. For Each c In ListView1.ListItems
  9. If c.Selected Then
  10. ind = c.Index
  11. ListView1.ListItems.Remove c.Index
  12. Exit For
  13. End If
  14. Next
  15. cn.Execute "Delete from [b]nometabella[/b] where id = " & CStr(ind)
  16. End Sub
  17.  
  18. Private Sub Form_Load()
  19. Dim i As Integer
  20. ListView1.View = lvwReport
  21. ListView1.ColumnHeaders.Add , "col1", "ID", 100
  22. ListView1.ColumnHeaders.Add , "col2", "Nome"
  23. ListView1.ColumnHeaders.Add , "col3", "Cognome"
  24. n = 0
  25. cn.Open "File Name=" & "pathfile.udl"
  26. rs.Open "sample2", cn, 3, 3
  27. InsertInListView
  28. End Sub
  29. Public Function InsertInListView()
  30. While Not rs.EOF
  31.  
  32. n = n + 1
  33. 'Set c = ListView1.ListItems.Add(, , CStr(n))
  34. Set c = ListView1.ListItems.Add(, , rs("ID"))
  35. c.SubItems(1) = rs("Nome")
  36. c.SubItems(2) = rs("Cognome")
  37. rs.MoveNext
  38. Wend
  39.  
  40. End Function
  41.  
  42. Private Sub Form_Unload(Cancel As Integer)
  43. rs.Close
  44. cn.Close
  45.  
  46. End Sub



L'ho testato e funziona perfettamente.

ATTENZIONE il campo id del database può essere settato come chiave primaria e bisogna precisare di incrementarsi da solo di 1, altrimenti lo devi eseguire nel codice, quando aggiungi i record..
MOLTO IMPORANTE: Quando viene eliminato un record nel database, i valori di ID vanno rimessi in ordine altrimenti il codice non funzionera, quindi ti consiglio di incrementare ID nel codice quando aggiungi una record.
Ciao.

Ultima modifica effettuata da LuigiBiasi il 27/11/2007 alle 11:14
PM Quote
Avatar
moet (Normal User)
Pro


Messaggi: 185
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 14:58
Martedì, 27/11/2007
Precisissimooooo GRAZIE ! :k:

PM Quote
Avatar
moet (Normal User)
Pro


Messaggi: 185
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 18:17
Mercoledì, 28/11/2007
Sai che ho scoperto ora che mi cancella il dato da listview ma non me lo cancella nello stesso momento da db ?!?!?

strano! non da neanche errori e la sintassi è perfetta.

PM Quote
Avatar
moet (Normal User)
Pro


Messaggi: 185
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 18:22
Mercoledì, 28/11/2007
OK FATTA !!!!!!

RS.OPEN stringa
rs.Open "Tabella1", cn, 3, 3
....cancella.....

PM Quote
Avatar
LuigiBiasi (Normal User)
Expert


Messaggi: 237
Iscritto: 15/09/2006

Segnala al moderatore
Postato alle 18:48
Mercoledì, 28/11/2007
scusa ma non ho capito il problema??!!8-|

PM Quote
Avatar
moet (Normal User)
Pro


Messaggi: 185
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 18:52
Mercoledì, 28/11/2007
il programma mi cancella l' elemento selezionato in listview ma non mi cancella lo stesso utente nel database! in pratica non funziona questa stringa


cn.Execute "Delete from tabella1 where id =  " & CStr(ind)



PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo