9 messaggi dal 06 settembre 2002
Salve a tutti, ho fatto una query tipo questa
SELECT * FROM Modelli " &where&" ORDER BY modello ASC
nella clusola where ho messo una cosa tipo questo
where = "WHERE "
DO UNTIL Recordset1.EOF
IF where <> "WHERE " THEN where = where & "AND " END IF
where = where & "IDmodello <>" & (Recordset1.Fields.Item("modelloID").Value) & " "

Recordset1.MoveNext
LOOP
dove praticamente elimino dalla tabella modelli alcuni id che trovo da un'altra tabella e fin qui nulla di male... il problema è che quando la stringa sql diventa troppo lunga il server mi restituisce un errore QUERY TROPPO COMPLESSA.
In pratica il concatenamento di "IDmodello <> X che si ripete per tante volte dà errore.
Vi è una soluzione per prendere una tabella ed filtrare i dati in modo che non appaiano tutti i dati che hanno un riscontro su un'altra?
spero di essermi spiegato
Prova con:

"SELECT * FROM Modelli WHERE IDModello NOT IN (" & elencoID & ")"


Dove elencoID è la stringa (del tipo: "1,2,3,4") costruita nel loop.

C'è una cosa che non ho capito: se devi eliminare dei record, perché fai una select?

Ciao

Matteo Casati
GURU4.net
9 messaggi dal 06 settembre 2002
>C'è una cosa che non ho capito: se devi eliminare dei record, >perché fai una select?
In pratica non devo realmente cancellare i dati dalla tabella, questa query mi serve perchè ho una lista e in questa lista non devono comparire quei dati.
In sostanza vengono nascosti in visualizzazione in quanto già inseriti
E il tuo metodo funziona egreggiamente! :)
grazie mille

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.