Aprire una Maschera filtrando i dati usando un Data

di il
6 risposte

Aprire una Maschera filtrando i dati usando un Data

Buonasera,
sto cernando di filtrare una mashcera utilizzando una variabile impostata all'apetura del DB (Public DataScadenza As Date) che mantengo attiva nel modulo del DB, così da averla disponibile per le altre maschere:


linkcriterio =  "MaxDataScadenza <= " & DataScadenza
DoCmd.OpenForm "M004_ElencoAttrezzi", acNormal, , linkCriterio

questa routine assegnata a un pulsante non mi filra nulla.
Potete aiutarmi a comprendere l'errore che commetto?
Code:

6 Risposte

  • Re: Aprire una Maschera filtrando i dati usando un Data

    Leggi qui per capire la sintassi con variabili di tipo Date
    http://www.baldyweb.com/BuildSQL.ht
  • Re: Aprire una Maschera filtrando i dati usando un Data

    Grazie, ho capito l'errore di sintassi:
    questo è il codice funzionante:
    
    linkCriterio = "MaxDataScadenza <= #" & DataScadenza & "#" 
    DoCmd.OpenForm "M004_ElencoAttrezzi", acNormal, , linkCriterio
    
    mentre volevo, a questo punto, aggiungere anche altri criteri di filtro:
    ovviamente sbaglio la sintassi:
    
    linkCriterio = "MaxDataScadenza <= #" & DataScadenza & "#" And "SCHEDA_ANNULLATA=false"
    
    puoi aiutarmi anche per questo?
  • Re: Aprire una Maschera filtrando i dati usando un Data

    Prova così
    linkCriterio = "MaxDataScadenza <= #" & DataScadenza & "#" And "SCHEDA_ANNULLATA = " & 0
    praticamente sfrutto la stessa sintassi per Numerico.
  • Re: Aprire una Maschera filtrando i dati usando un Data

    Ho provato, ma non va.
  • Re: Aprire una Maschera filtrando i dati usando un Data

    Lordpedro76 ha scritto:


    Ho provato, ma non va.
    Ovvio che non va... vengono commessi 2 gravi errori:
    1) La sintassi di concatenazione delle stringhe completamente errata, l'AND di concatenazione va inserito internamente, è parte della stringa SQL e non così.
    2) le date richiedono la Formattazione in accezione Anglosassone oppure la conversione in Numero.
    Se si usa la conversione in Numero serve capire se quel MAXDATA ha solo gg/mm/aaaa(in questo caso è un Long) oppure anche hh:mm:ss (in questo caso è un double, ma serve considerare la sintassi della VIRGOLA dei decimali dipendente dai Regional Settings).

    Ipotesi semplificata con solo gg/mm/aaaa
    
    linkCriterio = "MaxDataScadenza <= " & clng(DataScadenza) & " And SCHEDA_ANNULLATA = 0"
    ipotesi più completa con hh:mm:ss
    
    [code]
    linkCriterio = "MaxDataScadenza <= " & str(cdbl(DataScadenza)) & " And SCHEDA_ANNULLATA = 0"
  • Re: Aprire una Maschera filtrando i dati usando un Data

    Grazie Alex,
    il Valore "MaxDataScadenza" è del tipo =gg/mm/yyyy e il DB ha tutte le date impostate in data in cifre.
    Quindi usando il codice con l'ipotesi semplificata riesco a visualizzare l'elenco filtrato.
    A dover di ringraziamenti merita anche OsvaldoLaviosa che con il link postato mi ha aiutato a comprendere un errore di sintassi.
Devi accedere o registrarti per scrivere nel forum
6 risposte