PDA

View Full Version : [access] filtri


fux_vr
29-03-2005, 11:21
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.

cionci
29-03-2005, 11:48
Non puoi eliminare direttamente i doppioni dalla query ?

fux_vr
29-03-2005, 11:52
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 ...

fux_vr
29-03-2005, 12:11
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

fux_vr
29-03-2005, 16:03
help

mailand
29-03-2005, 16:11
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.

fux_vr
29-03-2005, 18:45
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

cionci
29-03-2005, 19:35
"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;"

fux_vr
29-03-2005, 20:21
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].

fux_vr
29-03-2005, 22:19
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

cionci
30-03-2005, 01:38
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...

fux_vr
30-03-2005, 08:31
non mi da nessun campo

daryl74
30-03-2005, 09:32
prova a mettere nel WHERE questa sintassi:

WHERE (assegni.[centro costo]) like '%" & [Forms]![Assegni]![CasellaCombinata83] & "%' & '*';

fux_vr
30-03-2005, 10:23
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 ??

daryl74
30-03-2005, 10:51
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...

cionci
30-03-2005, 10:59
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...

fux_vr
30-03-2005, 11:02
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

fux_vr
30-03-2005, 11:04
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??

daryl74
30-03-2005, 12:13
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?

daryl74
30-03-2005, 12:22
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] & " & '*';"

fux_vr
30-03-2005, 14:12
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