Oppure

Loading
28/11/07 18:19
moet
OPS ECCOLO IL CODICE CORRETTO. MA NON CANCELLA NEL DATABASE!


Private Sub Command3_Click()
Dim c As ListItem
Dim n As Integer


Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset



stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
stringa = stringa & App.Path & "\componenti.mdb"

Dim ind As Integer
For Each c In ListView.ListItems
If c.Selected Then
ind = c.Index
ListView.ListItems.Remove c.Index
Exit For
End If
Next


cn.Open stringa
rs.Open "Tabella1", cn, 3, 3
cn.Execute "Delete from tabella1 where id =  " & CStr(ind)
rs.Close

    Set cn = Nothing
    Set rs = Nothing


End Sub

aaa
28/11/07 18:19
LuigiBiasi
ok adesso vedo...
Ultima modifica effettuata da LuigiBiasi 28/11/07 18:20
aaa
28/11/07 18:52
LuigiBiasi
Postato originariamente da moet:

OPS ECCOLO IL CODICE CORRETTO. MA NON CANCELLA NEL DATABASE!


Private Sub Command3_Click()
Dim c As ListItem
Dim n As Integer


Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset



stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
stringa = stringa & App.Path & "\componenti.mdb"

Dim ind As Integer
For Each c In ListView.ListItems
If c.Selected Then
ind = c.Index
ListView.ListItems.Remove c.Index
Exit For
End If
Next


cn.Open stringa
rs.Open "Tabella1", cn, 3, 3
cn.Execute "Delete from tabella1 where id =  " & CStr(ind)
rs.Close

    Set cn = Nothing
    Set rs = Nothing


End Sub


comunque c'è qualcosa che non va...
apri il database dopo che hai riempito la listview...??
la listview di cosa viene riempita?
Ultima modifica effettuata da LuigiBiasi 28/11/07 18:54
aaa
28/11/07 18:59
moet
id, nome, cognome, mansione, ditta


id contatore

gli altri testo.

praticamente ho un pulsante inserisci che dopo che l' utente compila le text con nome cogn, mansione, ditta carica i dati sul db. e richiama uan funzione per aggiornare la listview.

funziona tutto bene esclusa la cancellazione di cui parlavamo prima
aaa
28/11/07 19:32
LuigiBiasi
se hai msn possiamo sentirci la e magari riusciamo a risolvere il problema. Perchè io ci sono riuscito con il mio codice.
Oppure postami tutto il codice per intero.
aaa
28/11/07 20:08
moet
grazie


Private Sub Command1_Click() 'INSERIMENTO

    stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    stringa = stringa & App.Path & "\componenti.mdb"

    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    
    cn.Open stringa
    rs.Open "Tabella1", cn, 3, 3


            If Len(txtnome) = 0 Or Len(txtcognome) = 0 Or Len(txtditta) = 0 Or Len(txtmansione) = 0 Then
                MsgBox "I dati non sono corretti o mancanti. Inserire i dati e riprovare.", vbCritical, "Errore"
                Exit Sub
            Else
                
                rs.AddNew
                    rs("Nome") = txtnome.Text
                    rs("Cognome") = txtcognome.Text
                    rs("Ditta") = txtditta.Text
                    rs("Mansione") = txtmansione.Text
                rs.Update
                
                        Set cn = Nothing
                        Set rs = Nothing
                        
                    MsgBox "Dati salvati con successo!", vbInformation, "Info"
                    txtnome = ""
                    txtcognome = ""
                    txtditta = ""
                    txtmansione = ""
              
            End If
            Call caricalist
End Sub


Private Sub Command3_Click() ' CANCELLA DA LISTVIEW
Dim c As ListItem
Dim n As Integer


Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset



stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
stringa = stringa & App.Path & "\componenti.mdb"

Dim ind As Integer
For Each c In ListView.ListItems
If c.Selected Then
ind = c.Index
ListView.ListItems.Remove c.Index
Exit For
End If
Next


cn.Open stringa
rs.Open "Tabella1", cn, 3, 3
cn.Execute "Delete from tabella1 where id =  " & CStr(ind)
rs.Close

    Set cn = Nothing
    Set rs = Nothing


End Sub

Private Sub Form_Load()



    ListView.ColumnHeaders.Add , , "ID"

    ListView.ColumnHeaders.Add , , "NOME"

    ListView.ColumnHeaders.Add , , "COGNOME"
    
    ListView.ColumnHeaders.Add , , "DITTA"

    ListView.ColumnHeaders.Add , , "MANSIONE"

    Call caricalist
End Sub

Public Sub caricalist()
ListView.ListItems.Clear

stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    stringa = stringa & App.Path & "\componenti.mdb"
    
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset

    cn.Open stringa
    rs.Open "SELECT * FROM Tabella1", cn, 1

    If rs.EOF Then
        MsgBox "Database VUOTO!", vbExclamation, "HELPDESK"
    Else
        While rs.EOF = False
           
           nome = rs("nome")
          cognome = rs("cognome")
           ditta = rs("ditta")
           mansione = rs("mansione")
           
           
           
         
               Set LI = ListView.ListItems.Add(, , rs("id"))
                   LI.SubItems(1) = (nome)
                   LI.SubItems(2) = (cognome)
                   LI.SubItems(3) = (ditta)
                   LI.SubItems(4) = (mansione)
             
                     rs.MoveNext
         Wend



            
            
         
        
    End If

    Set cn = Nothing
    Set rs = Nothing


End Sub


aaa
28/11/07 20:12
moet
eccolo
Ultima modifica effettuata da moet 28/11/07 20:16
aaa
29/11/07 14:13
LuigiBiasi
ho testato il tuo codice e funziona, il record selezionato viene eliminato anche dal database.
Non ottieni nessun errore?
Vuoi provare a mettere il breakpoint sull'istruzione
cn.execute "Delete from Tabella1 where id = " cstr(ind)

e dirmi il valore di ind.
Perchè puo essere che il valore di ind,l'indice dell'elemento selezionato della listview, non sia presente tra i valori di ID del database.
Non so se m sono spiegato.

Comunque nella load dovresti mettere
[b]ListView.View = lvwReport[/b]
ListView.ColumnHeaders.Add , , "ID"
ListView.ColumnHeaders.Add , , "NOME"
ListView.ColumnHeaders.Add , , "COGNOME"
...

Prova a fare il test che yi ho detto prima e fammi sapere.
Ciao.
Ultima modifica effettuata da LuigiBiasi 29/11/07 14:22
aaa