[Access] Campi variabili all'interno di una query

Anonimo
2009-10-19T17:26:05+00:00

Ciao a tutti,

premesso che non conosco benissimo l'SQL, avrei da risolvere un problema inerente una query legata ad una maschera.

Ho creato una maschera, in cui vado ad inserire 3 tipologie differenti di "Stampa Etichette", in base allo stesso criterio di selezione che utilizza la "Data Iniziale", la "Data Finale" ed il "Tipo Cliente". Logicamente i campi all'interno della maschera hanno nomi diversi e quindi dovrei creare la stessa query per tutti e tre i tipi di selezione.

Per farvi capire meglio vi spiego nel dettaglio.

Questi sono i tipi di selezione:

Selezione 1: PERIODO - Dalla data: "DataInizioPER" alla data "DataFinePER" per Tipo Cliente "TipoCliente_PER"

Selezione 2: COMPLEANNO - Dalla data: "DataInizioCOM" alla data "DataFineCOM" per Tipo Cliente "TipoCliente_COM"

Selezione 3: MATRIMONIO - Dalla data: "DataInizioMAT" alla data "DataFineMAT" per Tipo Cliente "TipoCliente_MAT"

e questa è la query di ricerca (solo per iil caso di Matrimonio):

SELECT Clienti.*

FROM Clienti

WHERE (((Clienti.Codice_TiCli) Is Not Null And (Clienti.Codice_TiCli)=Forms![Etichette Clienti]!Txt_TiCli_MAT) And ((Clienti.Data_Matrimonio) Is Not Null) And ((Clienti.NO_Spedizione)<>-1) And ((Month(Clienti.Data_Matrimonio)) Between Month(Forms![Etichette Clienti]!DataInizioMAT) And Month(Forms![Etichette Clienti]!DataFineMAT)));

La mia domanda è questa: è possibile all'interno della query, (prima della Select o altro) impostare delle variabili, in cui muovo il contenuto dei campi a seconda se siano pieni o meno? Qualcosa del tipo "DataInizioPER, DataInizioMAT, DataInizioCOM AS DataINIZIO".

Spero di essermi spiegato bene e scusatemi se la cosa risulta contorta.

Fabiotes

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2009-10-19T18:41:43+00:00

Ciao fabiotes,

puoi farlo con l'appoggio di un modulo bas.

Crea un nuovo modulo Bas, definisci le variabili pubbliche e crea una funzione per ogni parametro da restituire.

esempio:


Option Compare Database

Option Explicit

Public Codice_TiCli As Variant

Public NO_Spedizione As Variant

Public DataInizioMAT As Variant

Public DataFineMAT As Variant

Public Function Get_Codice_TiCli() As Variant

    Get_Codice_TiCli = Codice_TiCli

End Function

Public Function Get_NO_Spedizione() As Variant

    Get_NO_Spedizione = NO_Spedizione

End Function

Public Function Get_DataInizioMAT() As Variant

    Get_DataInizioMAT = DataInizioMAT

End Function

Public Function Get_DataFineMAT() As Variant

    Get_DataFineMAT = DataFineMAT

End Function


poi sostituisci nella query il confronto con le textbox delle maschere mettendo al loro posto il confronto con le funzioni pubbliche


WHERE (((Clienti.Codice_TiCli) Is Not Null And (Clienti.Codice_TiCli)=Get_Codice_TiCli() ) And .... ecc. ecc


Prima di eseguire la query le varie maschere dovranno popolare le variabili pubbliche i cui valori verranno restituiti mezzo delle funzioni.

Ciao

Giorgio Rancati

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2009-10-19T18:59:34+00:00

    Ciao Giorgio, mi sei stato veramente di aiuto.

    Ti ringrazio ancora per la disponibilità e la cortesia.

    Fabio

    La risposta è stata utile?

    0 commenti Nessun commento