Casella combinata con valori parametrici

di Anonimizzato27357 il
14 risposte
Carissimi,
quali sono le strutture dati e gli accorgimenti che devo seguire per creare una casella combinata come quella nell'immagine allegata?
Essa è dinamica nel senso che l'elenco dei mesi varia in funzione della data ...
Grazie mille

combobox.jpg
combobox.jpg

14 Risposte

  • Dal momento che "giugno 2020", "maggio 2020", "aprile 2020", sono stringhe che cambiano in base alla data, devo crearmi una tabella da programma, tabella che viene creata dinamicamente (run time) all'apertura della maschera? O esiste un modo di utillizzare le query che mi permette di fare la stessa cosa? grazie
  • Ma non serve una tabella... se vuoi usare quel metodo devi popolare la combo con una formattazione stringa della data che poi userai anche come criterio...

    Format(data,"mmmm yyyy")

    Mettendo lo stesso campo calcolato nella query andrai a cercare il valore come fosse una stringa.
  • Grazie!
    Solo un ultimo aspetto: non conviene popolare la combo box con due colonne, di cui una nascosta contenente il valore numerico (da 1 a N) da associare alle stringhe ("giugno 2020" ... "ultimi tre mesi" ... "mesi precedenti"): 1:"giugno 2020"; 2:"maggio 2020": ...etc ??
    Ditemi se sono fuori strada
    Saluti
  • A cosa serve la prima colonna...?
    Secondo me a nulla nel tuo caso... ergo non serve.
  • Mi sa che hai ragione ... pensavo servisse in fase di query
  • La query la imposti in modalità elenco valori e la popoli con un ciclo da 1 a 12 se vuoi i 12 mesi dell'anno corrente.. e, prendendo.come data iniziale 1Gennaio fai un Dateadd di mesi e poi formatti prima di fare Additem...
    
    Dim dt As date
    Dim i as integer
    Dim sDate as string
    Dt=Fix(DateSerial(year(Date()), 1, 1))
    For i=0 to 11
       Dt=dateadd("m",i, dt)
       SDate=Format(dt,"mmmm yyyy")
       Me.CboDate.Additem sDate
    Next
    
    Adattala in relazione alle tue esigenze...
  • Perbacco! scusa ma Fix() cosa fa?
    grazie mille!
  • Quello che dice la guida...
  • Allora cerco meglio, grazie per le preziose informazioni
  • Fix() elimina la frazione dedicata alle ore e ai minuti, giusto?
  • Si ma nella sostanza applicato ad una data elimina hh:mm:ss quindi tiene gg/mm/aaaa
  • Ho provato ad eliminarlo e pare non cambi nulla, cioè ottengo sempre 01/01/2020
    (ho inserito il codice all'interno di una Private Sub Form_Load() ....
    grazie Alex per la pazienza
  • Si in quel caso non è indispensabile... per come è scritta...
Devi accedere o registrarti per scrivere nel forum
14 risposte