Problema Calcolo Data

di il
32 risposte

32 Risposte - Pagina 2

  • Re: Problema Calcolo Data

    Raffaele91 ha scritto:


    E' da poco che ho iniziato ad usare Access
    ...
    ora spiego un pò com'è il mio gestionale.
    ho una tabella divisa in [Data](data fattura) [nome] ecc e [Scadenza](fattura al 30 del mese dopo)
    -[Scadenza1](fattura al 30 due mesi) e così via e poi ho delle celle nominate [30]-[30fm]-[60]-[60fm] con formato "Si/No", riportata tutta in una maschera, la formula che io dovrei inserire nella maschera è: se scrivo "Sì" in [30] calcoli la data in [Scadenza] al mese dopo mantenendo il giorno della data di fatturazione, mentre se metto "Sì" in [30fm] calcoli la data in [Scadenza] all'ultimo giorno del mese successivo e se non metto "Sì" in nessuno dei due campi vorrei che fosse personalizzabile da me, esempio:
    ...
    Mea culpa... ho letto solo gli ultimi post, concentrato sul discorso origine del controllo e funzione di calcolo della data, mentre fin dall'inizio avevi illustrato l'intera situazione.
    La cosa è fattibile, però "seguirti passo passo" va oltre le finalità del forum (al limite della violazione del regolamento!).
    Svista grossolana la mia, quella di circoscrivere tutto al contenuto di un controllo.
    Vedo comunque di formulare qualche suggerimento sulla "procedura" da seguire però devi prendere maggiore confidenza con vba, questo è sicuro, altrimenti non vai da nessuna parte
    (dimentica la parola celle quando parli di Access, altrimenti pensi ad Excel)
  • Re: Problema Calcolo Data

    Va bene, e grazie per l'aiuto
  • Re: Problema Calcolo Data

    Raffaele91 ha scritto:


    Grazie ancora ma non mi succede nulla
    Questo è ciò che scrivo:

    Option Compare Database

    Private Sub Scadenza_AfterUpdate()
    Me!Scadenza.Value = DateSerial(Year(Me!Data.Value), Month(Me!Data.Value) + 2, 0)
    End Sub
  • Re: Problema Calcolo Data

    Scusa ma perché scrivi scadenza_afterUpdate() ? Dovrebbe essere data afterUpdate oppure un altro campo tipo 30SiNo afterUpdate a modificare il campo scadenza.

    Inoltre siccome sei nella stessa maschera potresti scrivere direttamente
    Scadenza = DateSerial.....


    imposta [Routine evento] alla voce "dopo aggiornamento " in eventi nella finestra delle proprietà.
  • Re: Problema Calcolo Data

    Scusate se continuo su più messaggi, ma seguo il forum da iPad e ho poco spazio per scrivere per cui mi sono reso conto che il messaggio precedente era poco chiaro.

    Se non ho capito male tu inserisci data fattura e subito dopo selezioni il tipo di scadenza e vuoi che ti compaia la data di scadenza in base al tipo selezionato. Giusto?

    Se è così, innanzi tutto per il tipo di scadenza invece di avere quattro Si/No sarebbe usare un gruppo di opzioni con 30 30fm etc, poiché penso che la scadenza possibile sia solo una.

    A questo punto devi solo scrivere il codice legato all'evento afterUpdate del gruppo di opzioni facendo in modo che aggiorni il campo scadenza (ovviamente scadenza fa riferimento anche a un campo della tabella oltre che a una casella di testo della maschera). Se il gruppo di opzione si chiamerà goTipo potresti usare un Select Case

    Private sub goTipo_afterUpdate
    Select case goTipo
    Case 1
    Scadenza = [data]+30
    Case 2
    Scadenza= "formula magica"
    Case 3
    Scadenza =....
    Case 4
    Scadenza = ...
    End Select
    End sub

    Ovviamente il codice non è preciso, devi riguardarti la sintassi
  • Re: Problema Calcolo Data

    Ho capito il concetto e può andar bene ma ho bisogno di una lezione di vba, mi potete indirizzare a qualche sito anche microsoft per approfondire? grazie mille
  • Re: Problema Calcolo Data

    Non credo ci siano siti Microsoft che fanno "lezioni" di VBA ... Ti consiglio dei libri e un po' di tempo.
  • Re: Problema Calcolo Data

    Ci sono a metà
    ho provato a scrivere così:

    Private Sub Scadenza_AfterUpdate()
    Me![Scadenza] = DateSerial(Year(Me![Data]), Month(Me![Data]) + 2, 0)
    End Sub

    e la casella di testo [Scadenza] mi da come risultato il mese successivo all'ultimo giorno del mese, ora vorrei sapere qual'è la funzione "iif" in vba e se mi fate un esempio per favore.
    Grazie
  • Re: Problema Calcolo Data

    Raffaele91 ha scritto:


    Ci sono a metà
    ho provato a scrivere così:

    Private Sub Scadenza_AfterUpdate()
    Me![Scadenza] = DateSerial(Year(Me![Data]), Month(Me![Data]) + 2, 0)
    End Sub

    e la casella di testo [Scadenza] mi da come risultato il mese successivo all'ultimo giorno del mese, ora vorrei sapere qual'è la funzione "iif" in vba e se mi fate un esempio per favore.
    Grazie
    ora sono a questa formula
    Private Sub Scadenza_AfterUpdate()
    Me![Scadenza] = IIf((Me![30 fm] = "Sì"), (DateSerial(Year(Me![Data]), Month(Me![Data]) + 2, 0)), [Data])
    End Sub

    Praticamente vorrei fare che selezionando la casella 30 fm mi si calcoli la data a fine mese ma ogni volta che metto la spunta mi da sempre come risultato la stessa data della fattura e non capisco giuro dove sto sbagliando, comunque un libro me lo compro a breve
  • Re: Problema Calcolo Data

    Aiutoooo

    Evidenzio il problema

    Private Sub Scadenza_AfterUpdate()
    Me![Scadenza] = IIf((Me![30 fm] = "Sì"), (DateSerial(Year(Me![Data]), Month(Me![Data]) + 2, 0)), [Data])
    End Sub

    [30 fm] è una casella di testo della maschera collegata alla tabella che ha come valori Sì/No ma quando alla casella di testo do comando Sì che ha il formato della V [v] non accade nulla. ma provando a cambiare nella formula la casella di testo con un altra il tutto funziona. Può essere colpa della formattazione che invece di scrivere "Sì" ho il quadratino con la spunta???? help
  • Re: Problema Calcolo Data

    Raffaele91 ha scritto:


    ...
    
    Private Sub Scadenza_AfterUpdate()
    Me![Scadenza] = IIf((Me![30 fm] = True), (DateSerial(Year(Me![Data]), Month(Me![Data]) + 2, 0)), [Data])
    End Sub
    [30 fm] è una casella di testo della maschera collegata alla tabella che ha come valori Sì/No ...
  • Re: Problema Calcolo Data

    Non è [fm] ma comando172... ora vorrei capire in termini vba come si dice comando172=attivo nel senso della spunta v nel riquadro. dopodichè riesco a far tutto grazie
  • Re: Problema Calcolo Data

    Scusa se insisto, ma perché scadenza_afterUpdate????? Tu "scadenza" non lo aggiorni ma vuoi che si aggiorni da solo dopo che aggiorni 30fm, giusto?
    Dovrebbe essere 30fm_afterUpdate
  • Re: Problema Calcolo Data

    Il valore di comando172 dovrebbe essere 0 o 1 a seconda delle impostazioni. Quando hai questi dubbi. Crea una casella di testo provvisoria, ci scrivi dentro = comando172 poi passi in modalità visualizzazione maschera e giocando con la spunta ti fai le tue verifiche.
  • Re: Problema Calcolo Data

    Raffaele91 ha scritto:


    non è [fm] ma comando172... ora vorrei capire in termini vba come si dice comando172=attivo nel senso della spunta v nel riquadro. dopodichè riesco a far tutto grazie
    La casella con il segno di spunta è una casella di controllo e il suo valore può essere True (-1) se ha la spunta o False (0) senza la spunta. (non prendo in considerazione la possibilità che assuma 3 stati)
Devi accedere o registrarti per scrivere nel forum
32 risposte