Condividi tramite

[Access] Evitare righe con campo vuoto in una ListBox

Anonimo
2010-02-14T23:38:18+00:00

Salve ho un problemino di carattere estetico ma anche pratico alla fine. Ho una ListBox che riempio con una query SQL:

Me.lstTitoli.RowSource = "SELECT IDDoc, TitoloIT, Codice FROM tblDoc ORDER BY tblDoc.TitoloIT"

il problema è che nella tabella ho un campo denominato "TitoloEN" che è il titolo in inglese, sempre presente. Il TitoloIT (italiano) invece sempre non lo è ed il mio elenco mi ritorna una bella lista con le prime righe tutte vuote nel TitoloIT e con solo il codice presente. Questo elenco lo uso per filtrare in modo dinamico, a fronte del testo immesso in un campo adiacente, la lista dei titoli. Però gli utenti lo usano spesso e volentieri per scorrerli velocemente e cercare visivamente quello che necessitano. Vorrei quindi evitare che, se il TitoloIT non esiste, non mi venga riportata la riga in elenco.

Grazie per l'attenzione.

Massimo.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2010-02-15T10:11:50+00:00

Ciao Massimo,

per qualche strana alchimia di access il filtro che hai messo funziona, non dovrebbe ma funziona. Gli operatori di confronto (<> incluso) in presenza di Null dovrebbero restituire Unknown quindi la tua query non dovrebbe restituire alcun record.

Ne è prova il fatto che se vuoi tutte le righe con Titolo valorizzato a Null, la seguente query: Select * FROM tblDoc WHERE TitoloIT=Null non restituisce alcuna riga.

L'operatore corretto per verificare il valore Null è Is

Anche se con l'operatore <> funziona, abituati a scrivere il filtro in questo modo: WHERE  tblDoc.TitoloIT Is Not Null in questo modo, se e quando passerai a databases (diciamo più ligi alla logica dei 3 stati) non avrai problemi.

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-02-15T12:05:24+00:00

    Grazie Giorgio, ho già provveduto a cambiarlo.

    Purtrtoppo nella mini guida alla quale faccio riferimento non c'era menzione quindi sono andato ad istinto. Mi sono avvicinato a SQL da relativamente poco ma lo adoro e non scrivo più una query classica da non so quanto. Mi prenderò un eBook un po' più sostanzioso.

    Ciao, Massimo.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-02-15T08:39:17+00:00

    Mi autorispondo, si risolve così:

    Me.lstTitoli.RowSource = "SELECT IDDoc, TitoloIT, Codice FROM tblDoc WHERE  tblDoc.TitoloIT <> Null ORDER BY tblDoc.TitoloIT"

    Mi sa che ieri sera ero un po' stanchino, eh eh.

    Ciao, Massimo.

    La risposta è stata utile?

    0 commenti Nessun commento