Aprire una Maschera filtrando i dati usando un Data

di Anonimizzato32027 il
6 risposte
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

  • 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?
  • Prova così
    linkCriterio = "MaxDataScadenza <= #" & DataScadenza & "#" And "SCHEDA_ANNULLATA = " & 0
    praticamente sfrutto la stessa sintassi per Numerico.
  • Ho provato, ma non va.
  • 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"
  • 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