View Full Version : [access] filtri
io ho una maschera con una lista di nomi e citta'preleva i dati da una querry. ho inserito una casella combinata che vorrei che prende i nomi delle citta' senza i doppioni e poi mi filtri la lista che c'e' sotto.
Non puoi eliminare direttamente i doppioni dalla query ?
no peche per esempio le citta' sono doppie ma nella casella combinata mi basta vedere 1 sola volta la citta milano.e poi quando selezione la citta es. milano mi filtra nella lista sotto la citta milano.
Brigante
29-03-2005, 11:59
Originariamente inviato da fux_vr
no peche per esempio le citta' sono doppie ma nella casella combinata mi basta vedere 1 sola volta la citta milano.e poi quando selezione la citta es. milano mi filtra nella lista sotto la citta milano.
Per scartare i "doppioni" devi utilizzare la parola DISTINCT nella query SQL, per esempio:
SELECT DISTINCT CAMPO_CITTA FROM TABELLA_CITTA ...
grazie perfetto un altra domando gia che ci sono.
creare una querry con una codizione cioe' se il campo e null si visualizza tutto altrimenti parte la query con il filtraggio
EDIT: sbagliato bottone scusa
Brigante
29-03-2005, 16:50
Originariamente inviato da fux_vr
grazie perfetto un altra domando gia che ci sono.
creare una querry con una codizione cioe' se il campo e null si visualizza tutto altrimenti parte la query con il filtraggio
Crei la query in questione e poi, nella condizione WHERE ci metti che quel determinato campo deve essere diverso da NULL. Altrimenti il controllo lo fai tramite poche righe di codice all'interno di Access.
io ho scritto cio' non funziona
SELECT assegni.euro, NumeroInEuro([euro]) AS Espr1, assegni.Nominativo, assegni.[centro costo], assegni.selezine, assegni.data
FROM assegni
WHERE (assegni.[centro costo]) like '% & [Forms]![Assegni]![CasellaCombinata83] & %';
in pratica se il mio campo [Forms]![Assegni]![CasellaCombinata83] e vuoto visualizza tutti record altrimenti solo quello che è selezionato
help aiutatemi
"SELECT assegni.euro, NumeroInEuro([euro]) AS Espr1, assegni.Nominativo, assegni.[centro costo], assegni.selezine, assegni.data
FROM assegni
WHERE (assegni.[centro costo]) like '%" & [Forms]![Assegni]![CasellaCombinata83] & "%' AND assegni.[centro costo] Not Null;"
Originariamente inviato da cionci
"SELECT assegni.euro, NumeroInEuro([euro]) AS Espr1, assegni.Nominativo, assegni.[centro costo], assegni.selezine, assegni.data
FROM assegni
WHERE (assegni.[centro costo]) like '%" & [Forms]![Assegni]![CasellaCombinata83] & "%' AND assegni.[centro costo] Not Null;"
cionci
quindi con questa query se il campo è null mi visualizza tutti i recor ma se è il campo è pieno mi filtra quelli uguali
in paritica creano una specie "filtri in base a maschera" che è è gia in access. giusto??
Brigante
29-03-2005, 20:53
Originariamente inviato da cionci
"SELECT assegni.euro, NumeroInEuro([euro]) AS Espr1, assegni.Nominativo, assegni.[centro costo], assegni.selezine, assegni.data
FROM assegni
WHERE (assegni.[centro costo]) like '%" & [Forms]![Assegni]![CasellaCombinata83] & "%' AND assegni.[centro costo] Not Null;"
Per fux_vr:
La query qui sopra restituisce tutti i record selezionati se il centro di costo è presente (quindi NOT NULL) e se, vista la presenza dei due segni di percentuale prima e dopo il centro di costo, la stringa nella casella combinata è presente nel campo [centro costo].
allora non va bene.
io devo :
se centro costo null (vuoto) visualizza tutti i record se centro costo = milano visualizza tutti record contente milano se roma =roma ecc
Allora va bene anche questa:
"SELECT assegni.euro, NumeroInEuro([euro]) AS Espr1, assegni.Nominativo, assegni.[centro costo], assegni.selezine, assegni.data
FROM assegni
WHERE (assegni.[centro costo]) like '%" & [Forms]![Assegni]![CasellaCombinata83] & "%';"
Infatti se [Forms]![Assegni]![CasellaCombinata83] è vuota ti dovrebbe visualizzare tutti i record...
prova a mettere nel WHERE questa sintassi:
WHERE (assegni.[centro costo]) like '%" & [Forms]![Assegni]![CasellaCombinata83] & "%' & '*';
non va ancora . ho deciso di applicare un filtro nel form.
Me.Filter = "Country = 'USA' "
questo è un esempio che ho trovato. quando premo un pulsante metto questa istruzione. ma al posto di country cosa devo metter il nome della colonna della tabella o il nome del campo del textbox che ho ??
Procediamo per passi e ritorniamo alla query, prova con:
WHERE (assegni.[centro costo]) like '*';
in questo modo ti fa vedere tutti i record ? se si allora prova:
WHERE (assegni.[centro costo]) like '%1000%' & '*';
dove al posto di 1000 metti uno a caso dei valori per cui vorresti filtrare...
se così funziona allora allora l'errore è da qualche altra parte.
IMPORTANTE:
-----------------
In ogni caso devi mettere 1 azione sull'evento AfterUpdate della casella combinata che vorresti usare come filtro. Devi mettere:
Me.Requery
Altrimenti dopo aver cambiato il valore della casella combinata lui non esegue la query e quindi ti sembra che non funzioni...
Originariamente inviato da fux_vr
non va ancora . ho deciso di applicare un filtro nel form.
Me.Filter = "Country = 'USA' "
questo è un esempio che ho trovato. quando premo un pulsante metto questa istruzione. ma al posto di country cosa devo metter il nome della colonna della tabella o il nome del campo del textbox che ho ??
Scusa, ma perchè riapplichi il filtro se il filtraggio lo fai tramite la query ?
Allora fai la query che ti rende tutti i campi e dopo applichi il filtraggio...
con la 1 espressione me li da tutti con la seconda non mi da niente e al posto di 1000 ho messo un centro di costo
Originariamente inviato da cionci
Scusa, ma perchè riapplichi il filtro se il filtraggio lo fai tramite la query ?
Allora fai la query che ti rende tutti i campi e dopo applichi il filtraggio...
essendo che non riesco a fare la query come di come dico io volevo fare la query che mi visualizza tutto poi faccio il filtro per centro di costo.
come si crea il filtro per centro di costo??
OK adesso riprova con la seconda con il centro di costo che hai già provato togliendo i 2 segni di percentuale.
Il centro di costo con cui hai provato sei sicuro che esista nella tabella assegni?
P.S. = nella query ho notato che hai scritto: "assegni.selezine": è sbagliato anche il nome del campo, hai sbagliato a scriverlo nella query oppure è errato solo come è scritto qui nel thread?
Ho dimenticato inoltre:
il campo assegni.[centro costo] è un campo testuale o numerico?
se è un campo numerico togli anche gli apici singoli nella query. Cioè:
"WHERE (assegni.[centro costo]) like 1000 & '*';"
e se funziona:
"WHERE (assegni.[centro costo]) like " & [Forms]![Assegni]![CasellaCombinata83] & " & '*';"
meglio che applica un filtro con la queri non mi da nulla.
applico la query che mi trova tutti i record poi metto un filtro.
sapete come si applicano i filtri??
help
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.