PDA

View Full Version : 2 aiutini per ACCESS...


zuper
27-12-2004, 21:51
ciao...sto studiacchiando un pochino access.....e sto facendo qualche passo avanti...ma ho al momento un paio di dubbi che magari potete risolvermi....

mettiamo che ho un database con una tabella con tre campi:

Data Descrizione Spesa
01/01/2005 prova 0 €
02/01/2005 prova 1 €
03/01/2005 prova1 2 €
04/01/2005 2 €


1- i combo box.....mi piacerebbe fare un form per l'inserimento dei dati basato sulla tabella che come campo descrizione abbia un combo box che mi dia la possibilità O di inserire una nuova voce O di scegliere dal medesimo campo della tabella i dati già presenti....MA sortati in ordine alfabetico (ok basta mettere il sort ascending nel query statement) E non abbia dati vuoi (ok basta inserire IS NOT NULL) ma soprattutto che NON ABBIA DUPLICATI....come faccio??

2- ho imparato a creare un form con un combo box che mi lanci una query in base al campo scelto...mi spiego, il combo box di cui sopra va in un form che all'atto della selezione mi lancia una query scegliendo come criterio il valore selezionato...chiaro? ok ma il risultato della query mi viene visualizzato banalmente....mentre se creo un report basato su una query mi esce il bel report impostato come voglio io...dato che non posso creare un report basato su un form (che a sua volta si basa sulla query....)
azzo è complicato da spiegare....

schemino:

query -> genera -> report
form -> genera -> query

come posso generare un report basato su una query lanciata da un form??

OVVERO

report GENERATO da query GENERATA da form?


dato che per esempio nel wizard dei report posso selezionare solo table e query ma non form??

ditemi che avete capito ;)

Minelab
28-12-2004, 20:20
Premesso che non ho ben capito quello che vorresti ottenere passiamo ai problemi
1) Mi sembra più che altro un problema dovuto all'impostazione dei giusti campi/ criteri sui quali si basa la query sottostante al combo box.
2) Potresti trasformare la query che utilizzi adesso in una di creazione tabella e su quest'ultima costruire un report secondo le tue esigenze.
Questo se i report funzionano come le maschere; io non li ho mai usati quindi non ho la più pallida i dea di come funzionino.

akyra
30-12-2004, 10:23
Originariamente inviato da zuper
ciao...sto studiacchiando un pochino access.....e sto facendo qualche passo avanti...ma ho al momento un paio di dubbi che magari potete risolvermi....

mettiamo che ho un database con una tabella con tre campi:

Data Descrizione Spesa
01/01/2005 prova 0 €
02/01/2005 prova 1 €
03/01/2005 prova1 2 €
04/01/2005 2 €


1- i combo box.....mi piacerebbe fare un form per l'inserimento dei dati basato sulla tabella che come campo descrizione abbia un combo box che mi dia la possibilità O di inserire una nuova voce O di scegliere dal medesimo campo della tabella i dati già presenti....MA sortati in ordine alfabetico (ok basta mettere il sort ascending nel query statement) E non abbia dati vuoi (ok basta inserire IS NOT NULL) ma soprattutto che NON ABBIA DUPLICATI....come faccio??

2- ho imparato a creare un form con un combo box che mi lanci una query in base al campo scelto...mi spiego, il combo box di cui sopra va in un form che all'atto della selezione mi lancia una query scegliendo come criterio il valore selezionato...chiaro? ok ma il risultato della query mi viene visualizzato banalmente....mentre se creo un report basato su una query mi esce il bel report impostato come voglio io...dato che non posso creare un report basato su un form (che a sua volta si basa sulla query....)
azzo è complicato da spiegare....

schemino:

query -> genera -> report
form -> genera -> query

come posso generare un report basato su una query lanciata da un form??

OVVERO

report GENERATO da query GENERATA da form?


dato che per esempio nel wizard dei report posso selezionare solo table e query ma non form??

ditemi che avete capito ;)


intanto ti rispondo alla prima, perchè la seconda la devo rileggere con attenzione :):
per evitare di avere duplicati nella lista dei valori della casella combinata usa l'opzione DISTINCT nell'istruzione SQL che viene usata per scegliere i valori elencati nella casella combinata.
Ad esempio, se nella casella combinata hai un'istruzione di origine riga di questo tipo:

SELECT Descrizione
FROM TabellaDiProva;

quello che ti risulaterà nella casella combinata è :
prova, prova, prova1

invece se fai

SELECT DISTINCT Descrizione
FORM TabellaDiProva;

avrai nella casella combinata:
prova, prova1

penso sia questo che intendi tu,, giusto?

akyra
30-12-2004, 10:41
per quanto concerne la seconda domanda, mi sembra di aver capito che devi far in modo che una volta aggiornato il campo della casella combinata si apri un report basato sulla query che attivi quando immetti il valore nella casella stessa, giusto?
in questo caso quello che devi fare è:
1- creare la query che seleziona i valori che ti servono
2- creare un report basato su questa query
3- creare una macro che viene eseguita quando la casella combinata viene aggiornata, e tale macro dovrà aprire il report che hai creato
4- fine

naturalmente nell'istruzione SQL che esegue la query di cui sopra, dovrà avere obbligatoriamente come condizione nella sezione "WHERE" la clausola che specifica di eseguire tale istruzione in base al valore selezionato nella casella combinata. esmpio:


SELECT Descrizione
FROM TabellaDiProva
WHERE Descrizione=Form![MascheraDoveC'èLaCasellaCombo]![CasellaCombinata1];


capito?

zuper
30-12-2004, 12:51
grazie....appena ho un pochino di tempo provo le vostre soluzioni ;)