Da casela di testo calcolata a campo tabella

di il
7 risposte

Da casela di testo calcolata a campo tabella

Salve,
ho una maschera.
Questa Maschera ha come origine controllo una tabella (così da poter scrivere nelle caselle di testo della maschera e memorizzarli in tabella).
I campi della tabella sono "DAL" (Campo Data) e "AL" (Campo Data). Poi ho un campo GIORNI.
Nella Maschera invece ho, oltre i due campi DAL - AL , anche una casella di testo calcolata così :
=DateDiff("g";[dal];[al])
Vorrei che il risultato della differenza in giorni mi venga SCRITTO nel campo GIORNI della tabella di origine della maschera.

Ho provato a mettere campo calcolato nella struttura della tabella al campo GIORNI ma non consente la funzione DATEDIFF.
Cosa consigliate per scrivere quindi il risultato di
=DateDiff("g";[dal];[al])
nel campo GIORNI della tabella?

7 Risposte

  • Re: Da casela di testo calcolata a campo tabella

    Me!NomeCampoTabella=me.Nomecontrollo
    se il nome del campo =A il nome del controllo sulla maschera lo modifichi in = txtA
    o meglio fai fare il calcolo alla query

    vado di fretta prova e ci risentiamo
  • Re: Da casela di testo calcolata a campo tabella

    Grazie.. ma non capisco.
    il Me!NomeCampoTabella=me.Nomecontrollo
    lo devo mettere nella maschera delle espressioni che mi compare quando clicco su CALCOLATO in struttura della tabella?
    Oppure dove ?
  • Re: Da casela di testo calcolata a campo tabella

    Non usare un campo calcolato in tabella (consiglio da programmatori di vecchia/consolidata generazione).

    Hai 2 possibilità:
    A) Crea una query sulla tabella con tutti i campi della tabella più un campo calcolato con quella espressione lì.
    Poi fai poggiare la maschera sulla query.

    B) La maschera poggia sulla tabella. Aggiungi in maschera una casella di testo non associata ad alcun campo e dentro ci scrivi quella espressione.

    Io consiglio la B).
  • Re: Da casela di testo calcolata a campo tabella

    Ciao,
    la soluzione A non la adotterei perché in quella maschera devo SCRIVERE le date. E se una maschera sta sotto una QUERY non mi fa editare nulla.

    La soluzione B è quella che ho adottato ma siccome poi la casella di testo calcolata con DATEDIFF (il valore calcolato)lo devo usare in una formula matematica in una query con un campo calcolato… va da se che non posso richiamarmi nella query la casella di testo calcolata perché, come dici tu, quella casella di testo non è associata ad alcun campo.

    Come faccio?
  • Re: Da casela di testo calcolata a campo tabella

    Crea lo stesso una query con campo calcolato.
  • Re: Da casela di testo calcolata a campo tabella

    Allora mi pare di aver risolto.
    In realtà la maschera di cui ti parlavo era una SOTTOMASCHERA (ma so che non cambia nulla… era per essere più precisi)
    Cosa ho fatto? Ho creato una Sottomaschera nella Sottomaschera.
    Praticamente la Sottomaschera "principale" quella basata sulla tabella gli ho lasciato i campi DAL e AL così da poterli editare.
    Mentre nella SOTTOSOTTO maschera ho creato la query sempre basata sulla tabella della SOTTOMASCHERA principale ma con il campo GIORNI calcolato.
    così penso di aver risolto.
  • Re: Da casela di testo calcolata a campo tabella

    I campi della sotto-sottomaschera sono gli stessi della sottomaschera (tranne il campo calcolato)? E a che serve questo tipo di progettazione?
    Per come la vedo io le maschere si usano sulle tabelle per inserire/modificare dati.
    Sulle maschere si possono aggiungere altri controlli, quelli che ti pare (dai pulsanti ai campi calcolati…).
    Le maschere sulle query io le uso solo per fare "ricerche", ossia solo per "guardare" i dati.

    Opinione personale, io al posto tuo avrei fatto così:
    1. Tabella con i campi DAL e AL
    2. Maschera sulla tabella con aggiunta di campo calcolato GIORNI
    3. Query a parte con tutti i campi della tabella con aggiunta del campo calcolato che puoi usare per tutto ciò che ti serve poi...
Devi accedere o registrarti per scrivere nel forum
7 risposte