View Full Version : Query di ricerca
Ciao a tutti, ho un piccolo problema con Access (oltre a quello più serio di non saperlo usare :D).
Sto preparando una piccola applicazione che serve per gestire la clientela di uno studio, in pratica ho una tabella che contiene i nomi dei clienti, il tipo di attività che viene fatta per quei clienti, la data, il contratto e via dicendo. Ho preparato una query per ognuno dei campi presenti nella tabella principale e attraverso delle maschere adesso posso gestire l'elenco clienti (aggiungi, rimuovi, modifica), l'elenco delle attività (come per i clienti) e l'archivio (quest'ultimo viene salvato automaticamente in una tabella, non in una query).
Il problema sono le query di ricerca, o meglio: nella maschera principale (quella da cui si richiamano le tre maschere sopracitate) vorrei mettere un pulsante che mi apra una quarta maschera, nella quale inserendo il nome del cliente si visualizzino solo i suoi record, presi dalla tabella archivio. Ci sto impazzendo da due giorni, probabilmente è molto più semplice da fare di quello che penso io, ma non riesco a trovare il modo :muro: . Qualcuno può aiutarmi?
wingman87
26-06-2007, 15:01
Ma hai una sola tabella? Se sì prima di andare avanti ti consiglio di suddividerla in più tabelle.
Comunque la query che ti serve è qualcosa del tipo:
select *
from archivio
where nomecliente=xxx and cognomecliente=xxx
se hai tutte le info in una sola tabella, altrimenti sarà qualcosa del tipo:
select archivio.*
from archivio inner join clienti on archivio.codicecliente=cliente.codice
where cliente.nome=xxx and cliente.cognome=xxx
Ciao wingman87. Ho due tabelle, una dove sono conservati tutti i dati "fissi", che non devono cambiare mai (esempio: Cliente, Elenco attività, archiviazione, etc..), da questa tabella ho già estrapolato una query per ogni colonna. Poi ho una seconda tabella, che si chiama archivio e e che per ogni riga contiene il nome del cliente, con l'attività relativa, la data di inizio, etc...).
Vorrei creare una maschera che contenga una casella di testo e un pulsante, nella casella di testo (ma forse è meglio una combo box che attinga alla query cliente) deve apparire un nome. Premendo il pulsante vorrei che nella stessa maschera apparissero tutte le righe della tabella Archivio contenenti come valore nella colonna "cliente" lo stesso nome selezionato nella casella di testo o nella combobox.
Il problema è che non sono molto brava nella programmazione di Access, quindi non saprei come utilizzare il codice che gentilmente mi hai inviato. Potresti spiegarmi dove e come lo devo inserire? :boh:
Ciao wingman87. Ho due tabelle, una dove sono conservati tutti i dati "fissi", che non devono cambiare mai (esempio: Cliente, Elenco attività, archiviazione, etc..), da questa tabella ho già estrapolato una query per ogni colonna. Poi ho una seconda tabella, che si chiama archivio e e che per ogni riga contiene il nome del cliente, con l'attività relativa, la data di inizio, etc...).
Vorrei creare una maschera che contenga una casella di testo e un pulsante, nella casella di testo (ma forse è meglio una combo box che attinga alla query cliente) deve apparire un nome. Premendo il pulsante vorrei che nella stessa maschera apparissero tutte le righe della tabella Archivio contenenti come valore nella colonna "cliente" lo stesso nome selezionato nella casella di testo o nella combobox.
Il problema è che non sono molto brava nella programmazione di Access, quindi non saprei come utilizzare il codice che gentilmente mi hai inviato. Potresti spiegarmi dove e come lo devo inserire? :boh:
Allora: io farei così. Per prima cosa ti crei una maschera che contenga una combobox basata su di una query che seleziona l'elenco dei clienti dalla tabella "fissa". Quindi crei una query che seleziona tutti i campi della tabella "archivio" e metti come filtro nel campo "cliente" [forms]![nomemiamascheraprincipale]![nomecombobox]. Così selezioni tutti e soli i record il cui cliente corrisponde alla combobox. Crei quindi una sottomaschera da inserire nella prima basandola sulla query appena creata. Infine vai nelle proprietà della combobox ( tasto dx -> propietà) e nella scheda eventi vai a cliccare sul campo "afterupdate", in particolare sui 3 puntini a dx dello spazio vuoto. Così vai ad aggiungere del codice visualbasic all'evento afterupdate, che, come dice il nome stesso, viene invocato tutte le volte che la combobox viene aggiornata e in particolare dopo la modifica stessa. Ti si dovrebbe quindi aprire l'editor di visual basic col cursore puntato all'interno di una routine del tipo nomedellatuacombobox_afterupdate(). Quì dentro aggiungi il codice "Forms!nomesottomaschera.requery" e poi salva.
Questo comando non fà altro che riaggiornare la tua sottomaschera ogni volta che cambi il valore nella combobox
Ciao funky80, era esattamente quello che mi serviva! Ti ringrazio moltissimo per il tuo aiuto, ora funziona perfettamente. :asd:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.