Mi pare ovvio che ti elimina solo UNA riga, dato che all'operatore IN passi UN solo valore, lui prende quello, mica è un indovino, non ti sembra?
La SELECT annidata non ha alcun senso, se non quello di peggiorare le performance![]()
In sostanza,
prima devi disporre di tutti i valori relativi alle righe da eliminare, per cui devi esaminare le righe selezionate e ti crei l'elenco delle tariffe da eliminare (separato da virgole), infine passi questo elenco all'operatore IN.
Ora, il "come" estrapolare i valori da eliminare può essere fatto in diversi modi, non sapendo niente del tuo progetto non so quale sia più giusto nel tuo caso, ad esempio:
1. quando selezioni la riga aggiungi il valore
2. fai un ciclo sulle righe della griglia e prendi solo quelli delle righe selezionate
tenendo presente che l'operatore IN vuole l'insieme dei valori racchiuso tra parentesi e separati ognuno dalla virgola.
Non uso la MSFlexGrid, quindi non so dirti la proprietà esatta che restituisce se la riga è selezionata oppure no (verifica magari sulla guida) ma di solito è Selected, o qualcosa del genere, oppure usare TextMatrix() quindi puoi fare una cosa più o meno così:
codice:Dim sValori As String Dim i As Long For i = 1 to flexgrid.Rows 'per ogni riga If <riga_corrente_selezionata> Then ' N.B. se il valore è di tipo stringa, dovrà essere ovviamente racchiuso tra apici!!! sValori = sValori & tariffa_da_eliminare & "," End If Next i ' alla fine elimino l'ultima virgola che è in più sValori = Left$(sValori, Len(sValori) - 1) ' Aggiungo le parentesi: sValori = "(" & sValori & ")" 'Alla fine sValori dovrà risultare una stringa tipo: "(1,3,5)" da passare al comando SQL: db.Execute "DELETE * FROM listino WHERE tariffa IN " & sValori
Eventualmente guardati come usare l'operatore IN:
Guide per SQL e ADO
http://nuke.vbcorner.net/Articoli/VB...4/Default.aspx
E, se ti va, anche i miei articoli/progetti di esempio:
ProvaLogin
http://nuke.vbcorner.net/Progetti/VB...3/Default.aspx
ADO, Parametri ed affini
http://nuke.vbcorner.net/Articoli/VB...5/Default.aspx
ADO DataProject 2
http://nuke.vbcorner.net/Progetti/VB...8/Default.aspx
Progetti vari: DataGrid_FilterSearch
http://nuke.vbcorner.net/Progetti/VB...9/Default.aspx
![]()