Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Cancellazione Record

  1. #1

    Cancellazione Record

    cia a tutti.
    io carico una listview nel form load così:
    codice:
    inc = 0
    ind = 0
    Dim entry As String
    Dim mItem As ListItem
    txtdata.Text = Date
    ListView1.Visible = True
    Set db = OpenDatabase(App.Path & "\Pizza.mdb")
        sql = "select * from TotaleOrdini"
    Set rs = db.OpenRecordset(sql)
    
       ListView1.ColumnHeaders.Add , , "Nordine", ListView1.Width / 10
       ListView1.ColumnHeaders.Add , , "Ora Presa", ListView1.Width / 10
       ListView1.ColumnHeaders.Add , , "Cliente", ListView1.Width / 4
       ListView1.ColumnHeaders.Add , , "Indirizzo", ListView1.Width / 2.5
       ListView1.ColumnHeaders.Add , , "Telefono", ListView1.Width / 6.5
       ListView1.BorderStyle = ccFixedSingle
       ListView1.View = lvwReport
    
    Do While rs.EOF = False 'Scorro tutta la query
       ind = ind + 1
       If txtdata.Text = (rs!data) Then
         Set mItem = ListView1.ListItems.Add(, , CStr(rs("Id")))
         mItem.ListSubItems.Add , , CStr(rs("Nordine"))  
         mItem.ListSubItems.Add , , CStr(rs("OraPresa"))    
         mItem.ListSubItems.Add , , CStr(rs("Nome"))           
         mItem.ListSubItems.Add , , CStr(rs("Indirizzo"))   
         mItem.ListSubItems.Add , , CStr(rs("Telefono"))
       End If
       rs.MoveNext
    Loop
    rs.Close
    inc = ind
    in un pulsante cancella scrivo:

    codice:
    Dim entry As String
    Dim mItem As ListItem
    
    
    Set db = OpenDatabase(App.Path & "\Pizza.mdb")
    
    For inc = 1 To ind
       If ListView1.ListItems.Item(inc).Checked = True Then
         sql = "Delete * from totaleOrdini where NOrdine= " & _
             CLng(ListView1.ListItems.Item(inc).Tag)
         db.Execute (sql)
         sql = "Delete * from OrdCli where Nord = " & _
         CLng(ListView1.ListItems.Item(inc).Tag)
         db.Execute (sql)
       End If
    Next inc
    ind = 0
    inc = 0
    
    ListView1.ColumnHeaders.Clear
    ListView1.ListItems.Clear
    txtdata.Text = Date
    ListView1.Visible = True
    Set db = OpenDatabase(App.Path & "\Pizza.mdb")
     sql = "select * from TotaleOrdini"
    Set rs = db.OpenRecordset(sql)
    
       ListView1.ColumnHeaders.Add , , "Id", ListView1.Width / 10
       ListView1.ColumnHeaders.Add , , "Nordine", ListView1.Width / 10
       ListView1.ColumnHeaders.Add , , "Ora Presa", ListView1.Width / 10
       ListView1.ColumnHeaders.Add , , "Cliente", ListView1.Width / 4
       ListView1.ColumnHeaders.Add , , "Indirizzo", ListView1.Width / 2.5
       ListView1.ColumnHeaders.Add , , "Telefono", ListView1.Width / 6.5
       ListView1.BorderStyle = ccFixedSingle
       ListView1.View = lvwReport
    
    Do While rs.EOF = False 'Scorro tutta la query
      ind = ind + 1
      If txtdata.Text = (rs!data) Then
       Set mItem = ListView1.ListItems.Add(, , CStr(rs("Nordine")))       
       mItem.ListSubItems.Add , , CStr(rs("OraPresa"))    
       mItem.ListSubItems.Add , , CStr(rs("Nome"))        
       mItem.ListSubItems.Add , , CStr(rs("Indirizzo"))   
       mItem.ListSubItems.Add , , CStr(rs("Telefono"))
      End If
      rs.MoveNext
    Loop
    rs.Close
    inc = ind
    il problema è che quando va per fare la cancellazione si ferma sul primo Sql e mi da errore 13: Tipo non corrispondnte.

    Qualcuno può aiutarmi?


    Grazie Mille
    Sara
    Grazie
    Sara

    www.tsnavigliana.it

  2. #2
    quindi il problema è qui:
    codice:
    For inc = 1 To ind
      If ListView1.ListItems.Item(inc).Checked = True Then
        sql = "Delete * from totaleOrdini where NOrdine = " & _
                       CLng(ListView1.ListItems.Item(inc).Tag)
        db.Execute (sql)
        sql = "Delete * from OrdCli where Nord = " & _
                       CLng(ListView1.ListItems.Item(inc).Tag)
        db.Execute (sql)
       End If
    Next inc
    nel codice che hai postato, prima del ciclo, prima di tutto non vedo il settaggio della variabile ind. :master:
    Sei ovviamente sicura che nel Tag sia memorizzato il numero che ti serve vero?

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    LadyBlu che significa il settaggio???

    Tag mi risporta a Blank così come ListView1.ListItems.Item , mentre in inc vedo il numero relativo alla riga!!

    help please.. arriva il cliente e devo consegnare!!
    Grazie
    Sara

    www.tsnavigliana.it

  4. #4
    Dim ind As Integer
    Dim inc As Integer

    sono dichiarate in Option Explicit!
    Grazie
    Sara

    www.tsnavigliana.it

  5. #5
    Se il codice è completo, quando carichi il campo NOrdine nella listview non lo scrivi nel tag ma in un SubItem, guarda:
    codice:
    ...
    mItem.ListSubItems.Add , , CStr(rs("Nordine"))
    ...
    quindi devi leggere il subitem e non il tag per eseguire la delete.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  6. #6
    codice:
    Set db = OpenDatabase(App.Path & "\Pizza.mdb")
        sql = "select * from TotaleOrdini"
    Set rs = db.OpenRecordset(sql)
    
       ListView1.ColumnHeaders.Add , , "Nordine", ListView1.Width / 8
       ListView1.ColumnHeaders.Add , , "Ora Presa", ListView1.Width / 7.5
       ListView1.ColumnHeaders.Add , , "Cliente", ListView1.Width / 6
       ListView1.ColumnHeaders.Add , , "Indirizzo", ListView1.Width / 3
       ListView1.ColumnHeaders.Add , , "Telefono", ListView1.Width / 6.5
       ListView1.BorderStyle = ccFixedSingle
       ListView1.View = lvwReport
    
    Do While rs.EOF = False 
       ind = ind + 1
    If txtdata.Text = (rs!data) Then
      Set mItem = ListView1.ListItems.Add(, , CStr(rs("NOrdine")))      
    mItem.ListSubItems.Add , , CStr(rs("OraPresa"))       'inserisco la prima subcolonna
       mItem.ListSubItems.Add , , CStr(rs("Nome"))               'inserisco anche la seconda
            mItem.ListSubItems.Add , , CStr(rs("Indirizzo"))               'inserisco anche la seconda
       mItem.ListSubItems.Add , , CStr(rs("Telefono"))
    ListView1.ListItems(ind).Tag = rs("Nordine")
       End If
       rs.MoveNext
    Loop
    rs.close
    ora mi si blocca sul db.Execute(sql) dell'istruzione di cancellazione.

    Il db ha come campi :
    Id
    NOrdine
    Nome
    etc...

    errore 3464: Tipo dati non corrispondente nell'espressione del criterio.


    ora vedo che mi legge il dato correttamente però!!
    Grazie
    Sara

    www.tsnavigliana.it

  7. #7
    ho risolto portando il valore di clng in una variabile.

    ho fatto la delete utilizzando quella variabile!
    grazie mille a tutti e due!!

    Buona giornata!
    Grazie
    Sara

    www.tsnavigliana.it

  8. #8
    prova a scrivere diversamente il caricamento nel tag del campo NOrdine:
    codice:
    Do While rs.EOF = False 
       ind = ind + 1
       If txtdata.Text = (rs!data) Then
         Set mItem = ListView1.ListItems.Add(,,CStr(rs("NOrdine")))      
         mItem.ListSubItems.Add , , CStr(rs("OraPresa")) 
         mItem.ListSubItems.Add , , CStr(rs"Nome"))
         mItem.ListSubItems.Add , , CStr(rs("Indirizzo")) 
         mItem.ListSubItems.Add , , CStr(rs("Telefono"))
         mItem.Tag = rs("Nordine")
       End If
       rs.MoveNext
    Loop

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.