Inserire valore campo query in maschera

Forum dedicato interamente a Microsoft Access

Moderatore: Toki

Regole del forum
Leggi: IProgrammatori.it - Regolamento Forum
redkaa
Utente Junior
Messaggi: 19
Iscritto il: 20 apr 2017, 13:22

Inserire valore campo query in maschera

Messaggioda redkaa » 20 apr 2017, 13:29

Ciao a tutti, sono novizio di Access e sto remando per tentare di fare questo.
In una maschera vorrei visualizzare in una casella di testo il risultato di una query e in una altra casella di testo il risultato di un altra query per poi eseguire delle operazioni matematiche.
Non riesco a portare nelle caselle di testo i risultati delle query.
Chi mi aiuta ? Lavoro con Access 2003
Grazie in anticipo
OsvaldoLaviosa
Utente Senior
Messaggi: 4099
Iscritto il: 06 apr 2012, 16:17
Località: Conversano

Re: Inserire valore campo query in maschera

Messaggioda OsvaldoLaviosa » 20 apr 2017, 14:54

Benvenuto nel forum.
Potresti fornire i nomi propri di tabelle, query, maschere, controlli?
Quali calcoli esegui nelle query?
redkaa
Utente Junior
Messaggi: 19
Iscritto il: 20 apr 2017, 13:22

Re: Inserire valore campo query in maschera

Messaggioda redkaa » 21 apr 2017, 09:01

Ciao, nella form "Statistica" nella casella di testo "stat_aperti" vorrei vedere il valore del campo "aperti" della query "Conta_aperti".
E nella stessa form nella casella di testo "stat_totali" il valore del campo "chiusi" della query "Conta_chiusi"
Le due query fanno una Select Count di tutti i record delle rispettive tabelle "Casi_Totali" e "Casi_aperti" e funzionano perchè il campo "aperti" della query "conta_aperti" nell'ultima prova contiene il valore di 6778, mentre il campo "chiusi" in "Conta_chiusi" contiene 69871
Grazie
Philcattivocarattere
Utente Senior
Messaggi: 908
Iscritto il: 06 giu 2014, 10:35
Località: Verona-Mantova

Re: Inserire valore campo query in maschera

Messaggioda Philcattivocarattere » 21 apr 2017, 10:24

redkaa ha scritto:Ciao, nella form "Statistica" nella casella di testo "stat_aperti" vorrei vedere il valore del campo "aperti" della query "Conta_aperti".
E nella stessa form nella casella di testo "stat_totali" il valore del campo "chiusi" della query "Conta_chiusi"
...
Da come hai illustrato al situazione si tratta di una maschera non associata. Non puoi prendere i campi della query come si farebbe con una maschera associata. Hai alcune strade percorribili:
1) usare DLookup come origine dati delle due caselle di testo, per prendere quei due campi dalle query;
2) usare DCount come origine dati delle due caselle di testo, per fare le stesse operazioni che fanno le due query;
3) usare VBA ed aprire i recordset corrispondenti alle due query (e qualche altro passaggio che è inutile indicare qui) e valorizzare le due caselle di testo.

Probabilmente per le tua attuali conoscenze è più facile l'uso di DLooukup: DLookup Function
redkaa
Utente Junior
Messaggi: 19
Iscritto il: 20 apr 2017, 13:22

Re: Inserire valore campo query in maschera

Messaggioda redkaa » 27 apr 2017, 14:08

Ciao, come da tuo consiglio ho provato ad usare DLookup come origine dati delle due caselle di testo, per prendere quei due campi dalle query. Ora la situazione è questa:
Nella maschera non associata "Statistica" ho le caselle di testo "data_da_statistica" e "data_a_statistica", il pulsante "Conta eventi" e le caselle di testo "stat_aperti" e "stat_chiusi"
Imposto la data di inizio ricerca in "data_da_statistica" e la data di fine ricerca in "data_a_statistica", pigio "Conta eventi" che lancia una macro che esegue due query "Query conta chiusi" e "query conta aperti" che contano quanti sono i casi chiusi e i casi aperti e memorizzano il risultato nei rispettivi campi "chiusi" e "aperti".
Nella maschera la casella di testo "stat_chiusi" ha come origine dati =DLookUp("chiusi";"Query conta chiusi") e "stat_aperti" ha =DLookUp("aperti";"Query conta aperti").
Mi aspetto di vedere nelle caselle di testo lo stesso valore numerico che leggo nei campi delle query e invece leggo zero.
Chiudo e riapro la maschera o semplicemente passo in visualizza struttura e poi ritorno in visualizza e voilà mi appaiono i dati esatti.
Anche quando cambio le date e premo "Conta eventi", nella caselle di testo rimangono o dati precedenti e per vedere quelli aggiornati devo chiudere e riaprire o cambiare tipo do visualizzazione.
Sembra che non senta la modifica delle date. Ho porvato anche a mettere nella macro l'azione Aggiorna Maschera ma non serve. Come faccio ad aggiornare le caselle di testo ?
Grazie
Philcattivocarattere
Utente Senior
Messaggi: 908
Iscritto il: 06 giu 2014, 10:35
Località: Verona-Mantova

Re: Inserire valore campo query in maschera

Messaggioda Philcattivocarattere » 28 apr 2017, 09:29

redkaa ha scritto:...
Nella maschera la casella di testo "stat_chiusi" ha come origine dati =DLookUp("chiusi";"Query conta chiusi") e "stat_aperti" ha =DLookUp("aperti";"Query conta aperti").
...
Pubblica la SQL delle due query.
Sai usare VBA?
redkaa
Utente Junior
Messaggi: 19
Iscritto il: 20 apr 2017, 13:22

Re: Inserire valore campo query in maschera

Messaggioda redkaa » 28 apr 2017, 09:57

Ciao, le query funzionano che vedo il risultato giusto nei rispettivi campi, quello che non capisco è che non si aggiornano immediatamente i campi nella maschera

Query:
SELECT Count([casi aperti all].CODICE_FISCALE) AS aperti
FROM [casi aperti all]
WHERE ((([casi aperti all].DATA_PRESA_IN_CARICO)>Forms![Menù statistica ]!data_da_statistica And ([casi aperti all].DATA_PRESA_IN_CARICO)<Forms![Menù statistica ]!data_a_statistica));


SELECT Count([All Query].CODICE_FISCALE) AS chiusi
FROM [All Query]
WHERE ((([All Query].DATA_PRESA_IN_CARICO)>Forms![Menù statistica ]!data_da_statistica And ([All Query].DATA_PRESA_IN_CARICO)<Forms![Menù statistica ]!data_a_statistica));

il mio VBA è a livello basso
OsvaldoLaviosa
Utente Senior
Messaggi: 4099
Iscritto il: 06 apr 2012, 16:17
Località: Conversano

Re: Inserire valore campo query in maschera

Messaggioda OsvaldoLaviosa » 28 apr 2017, 10:32

Io non riesco a seguire il discorso. Prima volevo ignorare il problema, poi ci ripenso...boh...mah!!!
Io ho la sensazione che ci sia qualcosa di errato a livello di GESTIONE di tutta la "mappazza". Il titolo del thread ha (per me) qualcosa di contraddittorio o assurdo riguardo la logica generale dell'uso dei database. Un "valore di query" è lì. Tu lo vedi e basta. Una maschera potrebbe anche visualizzarlo...ma non vedo perchè quel valore deve essere poi "inserito".
Fai molta attenzione all'uso sfrenato di calcoli e ricalcoli da prendere/memorizzare e "reinseire"...
Chiedo scusa se sono andato fuori tema.
redkaa
Utente Junior
Messaggi: 19
Iscritto il: 20 apr 2017, 13:22

Re: Inserire valore campo query in maschera

Messaggioda redkaa » 28 apr 2017, 11:35

Ho risolto trovando un caso simile su Internet.
Ho usato il Do.Cmd.Requery così

Private Sub data_a_statistica_Enter()
DoCmd.Requery "Stat_totali"
DoCmd.Requery "Stat_aperti"
End Sub

Private Sub data_a_statistica_Exit(Cancel As Integer)
DoCmd.Requery "Stat_totali"
DoCmd.Requery "Stat_aperti"
End Sub

Private Sub data_da_statistica_Enter()
DoCmd.Requery "Stat_totali"
DoCmd.Requery "Stat_aperti"
End Sub

Private Sub data_da_statistica_Exit(Cancel As Integer)
DoCmd.Requery "Stat_totali"
DoCmd.Requery "Stat_aperti"
End Sub

così elabora immediatamente al momento dell'input delle date"data_da_statistica" e "data_a_statistica" senza cliccare sul pulsante "Conta eventi"
Philcattivocarattere
Utente Senior
Messaggi: 908
Iscritto il: 06 giu 2014, 10:35
Località: Verona-Mantova

Re: Inserire valore campo query in maschera

Messaggioda Philcattivocarattere » 28 apr 2017, 11:36

redkaa ha scritto:... quello che non capisco è che non si aggiornano immediatamente i campi nella maschera
...
il mio VBA è a livello basso
Con VBA anche a livelli bassi (dipende da cosa intende uno come "basso") riusciresti a gestire tutto molto più facilmente. Paradossale, quando uno crede che sia più semplice con le macro.
Tutta la procedura è un po' macchinosa e rivedibile. Di macro non so niente, se qualche nozione trovata al volo su internet. Prova con una macro "RieseguiQuery" per i due controlli da "aggiornare". L'ho intuito da qui Requery Macro Action
Ecco, sono stato talmente tanto in edit che nel frattempo hai risolto da solo. Almeno l'avevo intuita giusta.

Torna a “Microsoft Access”

Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti