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