Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 6 su 6

Inserimento automatico di data in un campo della tabella (ACCESS 2003)

  1. #1
    Kekkarina non è in linea Novello
    Post
    3
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ho una tabella TREATMENTS
    in cui ci sono i campi:
    BEGINNING OF TREATMENT
    TREATMENT'S TIME
    END OF TREATMENT

    quello che vorrei fare è:
    far inserire manualmente la data di inizio trattamento,
    far scegliere da un menù a tendina la durata del trattamento,
    far comparire automaticamente la data di fine trattamento.

    Si puo' fare?
    Come mi consigliate di compilare il menù a tendina? Solo con numeri?
    Grazie mille,
    scusate se la domanda è da principiante.


    Francesca

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Post
    16,800
    Like Inviati  
    0
    Like Ricevuti  
    23
    Ciao Francesca.
    La risposta è si si può fare, ma non nella tabella, devi gestirlo in una Maschera ovviamente... con un pò di VBA.
    Il menù a tendina, che tecnicamente si chiama Casella Combinata o ComboBox... devi popolarla con i giorni da sommare alla data inserita manualmente.
    Quando vai a selezionare un Numero viene generato l'Evento DopoAggiornamento(in VBA After_Update), quì andrai ad usare la funzione predefinita per la somma di Date... che è DateAdd ed assegni il risultato alla TextBox(casella di Testo) che conterrà il campo [END OF TREATMENT].
    Private Sub NomeCasellaCombinata_UfterUpdate()
        Me![END OF TREATMENT]=DateAdd("d",Me!NomeCasellaCombinata, Me![BEGINNING OF TREATMENT])
    End Sub
    
    Ti suggerisco di riflettere però sul nome che usi per i campi delle tabelle.
    Usare nomi con Spazzi, caratteri speciali o altro di non standard ti può complicare la vita in modo non indifferente.
    I nomi dei campi nelle Tabelle dovrebbero essere corti, senza caratteri speciali nè spazzi, per assegnare i nomi nelle maschere poi ci sono le Etichette...
    Come vedi nel codice che ho scritto i nomi dei campi da te usati li ho dovuti inserire tra parentesi QUADRE... e questo è solo una delle anomalie...
    ℹ️ Leggi di più su @Alex ...

  3. #3
    Kekkarina non è in linea Novello
    Post
    3
    Like Inviati  
    0
    Like Ricevuti  
    0
    prima di inserire il tuo codice, sto utilizzando il tuo consiglio e modificando tutti i nomi dei campi delle tabelle..
    E' indifferente usare maiuscole o minuscole? Qual è la soluzione migliore?
    ad esempio invece di BEGINNING OF TREATMENT lungo e con spazi ho messo
    BEGIN_TREAT : va bene?
    grazie mille, sto a Madrid a scrivere la tesi e sei l'unica persona che mi aiuta

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Post
    16,800
    Like Inviati  
    0
    Like Ricevuti  
    23
    Quote Originariamente inviato da Kekkarina Visualizza il messaggio
    prima di inserire il tuo codice, sto utilizzando il tuo consiglio e modificando tutti i nomi dei campi delle tabelle..
    E' indifferente usare maiuscole o minuscole? Qual è la soluzione migliore?
    ad esempio invece di BEGINNING OF TREATMENT lungo e con spazi ho messo
    BEGIN_TREAT : va bene?
    grazie mille, sto a Madrid a scrivere la tesi e sei l'unica persona che mi aiuta
    Direi che minuscolo o maiuscolo è una scelta..., nel senso che non provoca anomalie, io uso maiuscolo solo la 1°.
    Va bene l'uso del carattere Underscore, nel tuo caso io avrei scritto così:
    Beginn_Treat , ma in ogni caso anche come hai scritto tu è OK, ognuno quando sviluppa deve avere anche delle proprie convenzioni di ottimizzazione.

    In bocca al lupo per la tesi.
    Ultima modifica di @Alex; 19-02-2009 15:48 
    ℹ️ Leggi di più su @Alex ...

  5. #5
    Kekkarina non è in linea Novello
    Post
    3
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao Alex ho provato a fare come mi hai scritto però non esce nessuna data automaticamente.
    Il formato della data nel campo BEGIN_TREAT è 00/00/0000
    Il formato che vorrei far uscire nel campo END_TREAT è 00/00/0000. come posso fare?
    qualcuno mi ha consigliato di fare delle comparazioni del tipo
    "se il trattamento dura più di 31 gg cambia il mese.."
    sempre dando per scontato che si sappia in che mese stiamo.
    Io purtroppo non so come farlo, se potessi aiutarmi te ne sarei grata.
    Ho visitato il tuo sito e scaricato qualche applicazione:
    MA SONO FANTASTICHE! Vorrei che alla fine uscisse qualcosa di carino come le tue creazioni, ma sto a zeroooo!

  6. #6
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Post
    16,800
    Like Inviati  
    0
    Like Ricevuti  
    23
    Quote Originariamente inviato da Kekkarina Visualizza il messaggio
    Ciao Alex ho provato a fare come mi hai scritto però non esce nessuna data automaticamente.
    Il formato della data nel campo BEGIN_TREAT è 00/00/0000
    Il formato che vorrei far uscire nel campo END_TREAT è 00/00/0000. come posso fare?
    Fai attenzione all'errore che stai commettendo... che è tecnico ed anche logico.
    Se il controllo END_TREAT deve essere ottenuto dalla somma di BEGIN_TRE e dell'intervallo devi rendere NON EDITABILE lo stesso nella Maschera altrimenti rischi errori di aggiornamento... o meglio devi effettuare più controlli incrociati nelle modifiche dei dati.
    In pratica io fossi in te renderei Locked=True la textBox [END_TREAT].
    Detto questo se nel controllo BEGIN_TRE il formato è "dd/mm/yyyy" anche nel controllo finale dovrà essere tale.
    Tu ti sei riferita a Formato indicando "00/00/0000" ma il formato è "dd/mm/yyyy" quello che hai indicato tu è la maschera di Input...

    In ogni caso esiste la Funzione Format$(Valore,"dd/mm/yyyy") che restituisce il dato nel formato corretto.
    Private Sub NomeCasellaCombinata_UfterUpdate()
        Me![END OF TREATMENT]=Format$(DateAdd("d",Me!NomeCasellaCombinata, Me![BEGINNING OF TREATMENT]),"dd/mm/yyyy")
    End Sub
    
    Quote Originariamente inviato da Kekkarina Visualizza il messaggio
    qualcuno mi ha consigliato di fare delle comparazioni del tipo
    "se il trattamento dura più di 31 gg cambia il mese.."
    sempre dando per scontato che si sappia in che mese stiamo.
    Io purtroppo non so come farlo, se potessi aiutarmi te ne sarei grata.
    Ho visitato il tuo sito e scaricato qualche applicazione:
    MA SONO FANTASTICHE! Vorrei che alla fine uscisse qualcosa di carino come le tue creazioni, ma sto a zeroooo!
    Chi ti ha consigliato ti ha consigliato malissimo per il semplice motivo che quella logica ti impone di implementare una serie di controlli che sono realmente INUTILI quando la funzione DateAdd serve appositamente a quello...!
    Piuttosto devi essere certa di fornire alla funzione i dati nel modo corretto e verificare pertanto che l'elaborazione sia coerente.
    A tal proposito Access mette a disposizione un sistema di Debub avanzato che ti suggerisco di approfondire.

    Ciao
    ℹ️ Leggi di più su @Alex ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Inserimento automatico di testo in campo database Access
    Da roccolamann nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 01-12-2020, 16:34
  2. Risposte: 6
    Ultimo Post: 25-04-2016, 18:31
  3. Risposte: 0
    Ultimo Post: 25-04-2016, 14:46
  4. Inserimento automatico dati in un campo di una tabella
    Da Ale_8791 nel forum Microsoft Access
    Risposte: 6
    Ultimo Post: 09-12-2014, 09:26
  5. inserimento automatico data in base a condizioni
    Da patrizia14 nel forum Microsoft Word
    Risposte: 1
    Ultimo Post: 14-10-2010, 18:22