Buongiorno a tutti! Sono alle prese con un database per uno studio legale, in questo momento sto costruendo le Query per la ricerca e la visualizzazione dei dati.
Ho fatto una query che mi visualizzi tutti i miei contatti (chiamati da me “soggetti”) [
QryVisSogg], i cui campi, i quali hanno origine da una tabella dei soggetti [
TblSogg], sono:
- [
CognDen] (che sta per: Cognome / Denominazione)
- [
Nome] (che sta per: Nome)
- [
CFPIva] (che sta per: Cod.Fisc./P.Iva)
Parallelamente ho fatto una tabella per interrogare la query [
TblIntSogg], i cui campi sono:
- [
CognDen]
- [
Nome]
Fin qui, tutto ok! Il problema mi si è presentato quando ho inserito i criteri della Query.
Bisogna preventivamente specificare che, mentre il campo del cognome/denominazione [
CognDen] è obbligatorio e quindi sarà sempre compilato, il campo nome potrebbe essere vuoto
Sotto il campo [
CognDen] ho inserito l’espressione:
Like "*" & [TblIntSogg].[CognDen] & "*"
Sotto il campo [
Nome]:
IIf([TblIntSogg]![Nome] Is Null;[TblSogg].[Nome];[TblIntSogg].[Nome])
Tuttavia con questi criteri, se faccio una ricerca per nome o cognome, mi trova correttamente il soggetto interessato, ma se lascio i campi dell’interrogativa vuoti, quindi se eseguo la ricerca senza inserire niente, dovrebbe visualizzarmi tutti i miei contatti inseriti, ma invece, mi restituisce tutti i contatti ad eccezione di quelli in cui non ho indicato il nome dove, conseguentemente tale campo è vuoto.
Invece, io vorrei che se eseguo la query senza impostare alcun riferimento di ricerca, mi visualizzasse tutti i contatti, anche quelli in cui il campo [
Nome] è vuoto.
Ho pensato a varie soluzioni:
- Inserire “-“ come simbolo preimpostato nel campo [
Nome] della Tabella dei soggetti [
TblSogg], così che non sia mai vuoto.
- Unire i campi [
CognDen] e [
Nome] in un unico campo nella Query.
Ma nessuna delle due soluzioni è fattibile, perché, seppur potrebbe aggirare il problema specifico di questa query, poiché ho molte altre query che dovrei realizzare che presentano lo stesso inconveniente dei campi vuoti, rimanderebbe solo la ricerca di una soluzione definitiva al problema.
Per questo motivo o pensato di cambiare criterio del campo [
Nome]:
- Criterio del Campo [
Nome]:
Like [TblIntSogg]![Nome] & "*" Or Is Null
- Criterio del Campo [
CognDen]:
Like [TblIntSogg].[CognDen] & "*"
Tuttavia tale soluzione non ha dato l’esito sperato, in quanto vengono visualizzati tutti i campi, sia che siano o meno compilati, ma se faccio una ricerca specifica nel campo [
Nome] mi restituisce oltre al risultato della mia ricerca, anche i record con i campi vuoti.
Avete qualche consiglio da darmi? Dove sto sbagliando?