Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 39
  1. #1

    Access - filtro che includa campi vuoti

    In una query che visualizza dati anagrafici richiamo il valore del filtro da un elenco (a*, b*, c*, ecc...) per limitare i dati ai cognomi che cominciano per la lettera selezionata dall'elenco.

    Il problema è che in alcuni casi il campo filtrato è vuoto (manca il cognome), e quei dati non vengono visualizzati perchè ovviamente non cominciano con nessuna lettera. Ho già provato con l'asterisco ma non li visualizza comunque...qualche idea?


  2. #2
    Utente di HTML.it L'avatar di fabio309
    Registrato dal
    Oct 2002
    Messaggi
    1,918
    prova ad usare la funzione
    iif(isnull([cognome]),true,like * [cognome])

  3. #3
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,704
    Nella query i campi criteri di livelli diversi sono intesi cone OR; metti sul secondo livello "is null" e comprenderà anche i record vuoti.

  4. #4
    Non funziona, se metto solo "is null" visualizza i campi vuoti anche se filtro l'elenco (cioè, anche se cercao di visualizzare solo i cognomi che cominciano per la c).

    Questa è la condizione della query in sql come me l'ha scritta access (con OR is null):

    ---
    WHERE (((dati.Cognome) Like [Forms]![rubrica]![lettera]) OR (((dati.Cognome) Is Null))
    ORDER BY dati.Cognome;
    ---

    Dove [Forms]![rubrica]![lettera] è un elenco da cui scelgo la lettera per cui filtrare.

    Proverei anche la funzione suggerita da fabio309 ma non so dove metterla...

  5. #5
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,704
    Prova:
    WHERE ((dati.Cognome) Like [Forms]![rubrica]![lettera]) OR IsNull(dati.Cognome)
    ORDER BY dati.Cognome;

  6. #6
    Stesso risultato...

  7. #7
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,704
    E così?

    WHERE (left$((dati.Cognome),1)=[Forms]![rubrica]![lettera]) OR IsNull(dati.Cognome)
    ORDER BY dati.Cognome;

  8. #8
    Così poi non gli piace proprio...

  9. #9
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, ma tu vuoi che ti tiri fuori tutti i record dove il campo cognome contiene un valore che inizia con la lettera che decidi tu e anche quelli vuoti?
    vedi questa:
    codice:
    sql="WHERE dati.Cognome Like '" & [Forms]![rubrica]![lettera] & "*' OR len(dati.Cognome)=0 ORDER BY dati.Cognome;"
    Jupy

  10. #10
    Utente di HTML.it L'avatar di Misterxxx
    Registrato dal
    Oct 2003
    Messaggi
    3,704
    cusa, nelle sql il ; sostituisce la ,

    quindi:
    WHERE (left$((dati. Cognome);1)=[Forms]![rubrica]![lettera])
    OR IsNull(dati.Cognome)
    ORDER BY dati.Cognome;

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.