PDA

View Full Version : Sql che non va


Carmen
20-03-2003, 20:24
Schusate il disturbo, ma stò impazzendo con l'sql qui sotto, con la quale dovrei filtrare dei dati il cui campo specificato nel criterio di ricerca non deve contenere il valore X, ovvero il campo deve essere vuoto.

Set rsVari = DB.OpenRecordset("SELECT * FROM TabellaDB WHERE CampoDB<>" & "'" & "X" & "'")
...
...

Non capisco ma non funziona, non da errori, ma il risultanto e che non mi ritorna niente. il Db e in access ed il campo di tipo Testo. Linguaggio VB6


Qualcuno può sciogliermi questo enigna. Grazie Carmen

cionci
21-03-2003, 07:53
In pratica ti deve ritornare tutti i record in cui il testo contenuto in campoDB è diverso da 'X' ?
Stampa a video la query esatta che fai ogni volta e copiala in Access per vedere se ti torna i risultati che vuoi...

Carmen
21-03-2003, 07:56
Diciamo che il campoDB Contiene solo un carattere Ovvero la X, oppure e vuoto.

Io dovrei filtrare i dati il cui campoDB non contenga il valore X , ma che sia vuoto. Posso provare con access, ma io la cosa la devo fare con VB6.

Ciao

cionci
21-03-2003, 08:10
Ho capito...ma incollala in un query di Access per vedere se la query è dal punto di vista logico corretta...

Perchè scrivi "SELECT * FROM TabellaDB WHERE CampoDB<>" & "'" & "X" & "'" invece di scrivere così ? "SELECT * FROM TabellaDB WHERE CampoDB<>'X'"

Carmen
21-03-2003, 09:44
Niente da fare, non va lo stesso.

Comunque o preparato un progettino in VB6, magari provando direttamente sul campo la cosa sia un pò più chiara.


Carmen :muro: :muro:

Carmen
21-03-2003, 09:48
Niente da fare, non va lo stesso.

Comunque o preparato un progettino in VB6, magari provando direttamente sul campo la cosa sia un pò più chiara.


Carmen :muro: :muro:

cionci
21-03-2003, 10:55
Originally posted by "Carmen"

Niente da fare, non va lo stesso.
Se non va nemmeno in access allora è fatta male la query...

cionci
21-03-2003, 11:15
Il problema è nel NULL (i campi vuoti)...
NULL <> 'X' non ritorna vero, ma ritorna comunque falso...
Puoi mettere ad esempio un valore di default (unao spazio ad esempio) nel campo controllo...

Altra soluzione fare la query in questo modo:

"SELECT Sum(Importo) As Totale FROM Tabella1 WHERE Numero=" & "'" & Text1 & "'" & " And (Not Controllo<>Null)"

Carmen
21-03-2003, 12:30
Ciao. Non và nemmeno quest'ulmima che mi ai segnalato.

Comunque lo risolto così.

"SELECT Sum(Importo) As Totale FROM Tabella1 WHERE Controllo Not Like 'X' OR Controllo Is Null And Numero=" & "'" & Text1 & "'")


Sebra che va, Grazie lo stesso.

Carmen

Sallivan77
26-03-2003, 11:55
prova a scrivere "!=" invece di "<>"

tipo : SELECT .....FROM.... WHERE campo != 'X'