Newsgroup: it.comp.appl.access
Titolo: filtro maschera

Salve avrei bisogno di un aiutino.
Ho creato un database multiazienda per effettuare registrazioni di
pagamenti, emettere fatture ed altri tipi di documento.
Ho creato quindi le tabelle denominate "Aziende", "Mandati" ecc.. .
Il problema è che vorrei che nella maschera "mandati", inserendo una
casella combinata che mi elenca le aziende presenti nella tabella
Aziende ed una in cui indico l'anno, mi faccia vedere tutti i pagamenti
effettuati dall'azienda selezionata e dell'anno scelti nelle caselle
combinate.
Grazie per l'aiuto.  Giuseppe.

[omissis]
Ciao Giuseppe.
In primis posta la struttura del tuo database: tabelle, chiavi e relazioni.
--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution

PBsoft ha scritto:

La struttura è la seguente:
Tabelle:
1)  Contatti (IDCliente [Testo e Chiave primaria ], indirizzo, cap,
citta ecc...);
2) Aziende (IDAzienda [Contatore e Chiave Primaria] e NomeAzienda);
3) Mandati  (IDAzienda [numerico e Chiave Primaria], IDMandato
[Contatore e Chiave Primaria], NDistinta [Numerico e Chiave Primaria],
DataMandato [Data/Ora], IDCliente [Testo], ecc
Query:
MandatoQuery che attinge dalla tabella "Mandati" IDAzienda,  IDMandato,
DataMandato, IDCliente, NDistinta eccc
dalla tabella "Contatti" tutti i dati relativi all'indirizzo, al cap
ecccc.
Per  quel che riguarda le relazioni Azienda.IDAzienda uno a molti con
Mandati.IDAzienda  e Contatti.IDCliente uno a molti con
Mandati.IDCliente.
Spero di averti dato tutte le informazioni. Ti ringrazio
anticipatamente.

> La struttura è la seguente:
[omissis]
Bene. Supponiamo che la maschera sulla quale stai lavorando si chiami frmPagamenti.
Quello che vuoi ottenere, quindi, è un filtro impostabile dalla stessa maschera, 
in base al valore di due combobox, che chiameremo cboFiltraAzienda e cboFiltraAnno.
Devi mettere queste due combobox nell'intestazione della maschera: ricordati 
che NON DEVONO avere un cambo collegato.
Quello che dovrai impostare sarà la loro origine riga. Per la cboFiltraAzienza 
imposterai qualcosa del genere:
SELECT IDAzienda, NomeAzienda
FROM Aziende
UNION
SELECT 0 AS IDAzienda, "<tutte>" AS NomeAzienda
FROM Aziende
ORDER BY NomeAzienda
Per la cboFiltraAnno potresti invece costruirti l'origine riga, tramite VBA, 
al caricamento della form, in modo da avere sempre un range di anni relativo 
all'anno corrente.
Poi, nel modulo di codice della form, crei una tua subroutine che provvede 
a filtrare i dati della form in base al valore delle due combobox.
Quindi, all'interno degli eventi cboFiltraAzienda_AfterUpdate e cboFiltraAnno_AfterUpdate, 
richiamerai la routine che hai creato al passo precedente.
===
"Liberalizziamo l'elenco dei CAP"
http://www.petitiononline.com/freecap/petition.html
===



Ti ringrazio per la risposta. Scusa se ne approfitto ma non è che io
conosco bene il visual.
Ho creato la casella combinata CboFiltraAzienda nell'intestazione
maschera e ho dato il comando origine riga come da te indicato.
Siccome non so scrivere le routine, non ho creato la CboFlitraAnno e
nè la subbroutine che deve filtrare i dati della maschera.
Comunque quando seleziono la ditta dalla CboFiltraAzienda la maschera
non esegue nessun filtro. Perchè manca l'evento
CboFiltraAzienda_AfterUpdate o perchè potrebbe essere errata la
dicitura origine riga della combo? Ti preciso che nella maschera c'è
la casella combinata IDAzienda e non NomeAzienda.
Ti spiace aiutarmi per la creazione della routine per la selezione
dell'anno al caricamento della maschera e quella   che provvede  a
filtrare i dati della form in base al valore delle due combobox che poi
devo richiamare nelle due combo. Grazie tante. Saluti.
Giuseppe.

 poi devo richiamare nelle due combo.
Se non conosci il VBA la vedo veramente dura poterti aiutare. Bisogna che, 
prima di tutto, provveda tu ad eliminare le lacune presenti, altrimenti questo 
diventerebbe un dialogo tra sordi, senza che tu possa imparare qualcosa di 
interessante da poter poi riutilizzare nel tuo lavoro.


PBsoft ha scritto:

Mi scuso per il nome del VBA  e per non aver letto le regole del
gruppo, ma ho provato ad applicare tutti gli esempi tratti dai file
presenti nel sito 
www.sitocomune.it
 e ho letto parecchi messaggi simili
al mio quesito senza riuscire ad adattarli al mio problema.
E' vero che utilizzare Access senza conoscere il VBA diviene arduo
riuscire a risolvere i problemi che si presentano, però due anni fa
non conoscevo neanche cosa fosse Access, ora grazie a Voi e al sito
comune, riesco a fare alla meglio quello che mi serve e ho semplificato
il mio lavoro. Grazie quindi.
Purtroppo gestisco la contabilità di più aziende e ho bisogno di
questa soluzione per non creare tanti database uguali per ogni azienda.
Ho cercato di risolvere il problema un passo alla volta, se ti è
possibile aiutarmi te ne sono grato, altrimenti ci sbatterò la testa
finchè non ci riesco. Saluti Giuseppe.