Newsgroup: it.comp.appl.access
Titolo: Problema con calcoli su date

Ciao a tutti,
ho creato la seguente procedura che mi deve inserire nel campo
[datascadenza] della mia maschera il valore calcolato in base ad una data
iniziale :
Il problema sta nel fatto che se per esempio il campo [DataStipula] contiene
il valore [25/10/2002] (premetto che i campi in questione sono di tipo data
impostata come segue 00/00/0000;0;_) l'output che otterò nel campo
[DataScadenza] sarà stranamente 30/12/1900.
Se invece modifico la formula fissando tra apici la data allora il calcolo
viene eseguito correttamente. (Me!DataScadenza
=DataAdd("yyyy",1,"25/10/2002")
Cosa puo' essere ?
Qualcuno mi puo' dare una mano ?
*********************************************
Private Sub DataScadenza_DblClick(Cancel As Integer)
Dim DataScadenza, DataStipula, datacalcolata As Date
Dim contratto, Descrizione As String
contratto = tipocontratto.Column(1)
Descrizione = tipocontratto.Column(2)
If contratto = "ANNUALE" Then GoTo Annuale Else
If contratto = "MENSILE" Then GoTo mensile Else
If contratto = "TRIMESTRALE" Then GoTo trimestrale Else
If contratto = "SEMESTRALE" Then GoTo semestrale Else
If contratto = "PREPAGATO A ORE" Then GoTo prepagato Else GoTo fine
Annuale:
Me!DataScadenza = DateAdd("yyyy", 1, [DataStipula])
'Me!DataScadenza =DataAdd("yyyy",1,"25/10/2002")           ' così invece
funziona in modo corretto il calcolo ma io ho bisogno del campo dinamico e
non statico
Goto fine
mensile:
Me!DataScadenza = DateAdd("m", 1, DataStipula)
GoTo fine
semestrale:
Me!DataScadenza = DateAdd("m", 6, DataStipula)
GoTo fine
trimestrale:
Me!DataScadenza = DateAdd("m", 3, DataStipula)
GoTo fine
prepagato:
MsgBox "Il contratto è a ore prepagate e quindi non ha una data di scadenza
prestabilita."
GoTo fine
fine:
End Sub
**********************************************************

 non statico
e fai cosi' allora 
Me!DataScadenza = DateAdd("yyyy", 1, chr(34) & [DataStipula]  & chr(34))
o
Me!DataScadenza = DateAdd("yyyy", 1, """" & [DataStipula]  & """")
che e' pressapoco l'istesso
--
a.cara

 Dim contratto, Descrizione As String
    Attenzione. Scritto cosi' equivale a:
        Dim contratto As Variant, Descrizione As String

    Una cosa non capisco: hai dichiarato:
        Dim DataStipula
        Dim DataScadenza
ma sembra che invece DataStipula e DataScadenza siano nomi di campi e che
non ci sia bisogno di dichiararli come variabili. Come stanno realmente le
cose?
    Forse potresti scrivere soltanto qualcosa del genere:
        Private Sub DataScadenza_DblClick( _
          ByRef Cancel As Integer)
          Select Case Me!TipoContratto.Column(1)
          Case "ANNUALE"
            Me!DataScadenza = DateAdd("yyyy", 1, Me!DataStipula)
          Case "MENSILE"
            Me!DataScadenza = DateAdd("m", 1, Me!DataStipula)
          Case "TRIMESTRALE"
            Me!DataScadenza = DateAdd("m", 3, Me!DataStipula)
          Case "SEMESTRALE"
            Me!DataScadenza = DateAdd("m", 6, Me!DataStipula)
          Case "PREPAGATO A ORE"
            MsgBox "Il contratto è a ore prepagate e quindi" _
                 & " non ha una data di scadenza prestabilita."
          Case Else
          End Select
        End Sub
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------

Grazie ragazzi non avevo letto.
Per un errore di pensiero e svista.
Se leggete il RI-POST capirete.
Grazie veramente..
Ciao con simpatia MArco.


Scusa in effetti hai ragione tu, i miei campi si chiamano così e quindi
logicamente non serve dichiararli.
Grazie Maurizio.
Prima ne parlavo con Claudio , ma non mi ricordavo della tua risposta,(ho
fatto confusione con tutte queste risposte!!!).
La tua è la soluzione corretta, quindi grazie anche a te....e adesso vado a
correggere.
Grazie tante.
Con simpatia. Marco.   :-)