Newsgroup: it.comp.appl.access
Titolo: Funzione iif nelle date

Salve a tutti,
avrei un problema con l'inerimento della data odierna, mi spiego
meglio e subito.
Ho creato un db con i seguenti campi:
Attivo: (campo Si/No)
Quota: (campo valuta)
Data Versamento: (campo data)
Ricevuta:(campo testo)
Riferimento anno: (campo data)
Data registrazione:(campo data)
Ora il mio problema è questo: quando vado ad inserire i dati sui primi
5 campi, nell'ultimo campo (data registrazione) lo metto disabilitato
e mi deve iserire la data odierna in automatico solo se nei o nel
campo precedente è stato iserito qualcosa altrimenti deve restqare
vuoto.
 Ringrazio in anticipo chiunque mi dia una mano a risolvere il mio
problema.


Beh.... non ne abbiamo già parlato....??????
https://groups.google.com/group/microsoft.public.it.office.access/browse_thread/thread/8dfcf1200a021aa8?hl=it#
 @Alex

  @Alex
Le ho anche inoltrato l'ultima domanda, ma senza ricevere risposta.
Ecco perche' sto cercando anche in altri gruppi la procedura da
eseguire.


Devi metterci un pò del tuo, il NewsGroup non è un HelpDesk o un corso
ONLINE...!
Tu prova a lavorarci, posta i tuoi rsultati e vediamo assieme... non è
possibile ti venga dato un TUTORIAL per
quello che hai chiesto anche se è banale...
@Alex


Il problema l'ho gia postato sono le tue risposte che non sono
easudienti. Grazie, comunque ci ho gia' provato in diversi modi
seguendo anche la guida di office. In effetti non sto chiedendo di
farmi un tutorial chiedo solo la funzione giusta da applicare alla mia
domanda, punto, non voglio mica farmi fare un tutorial. Comunque
grazie lo stesso, vuoldire che cerchero' altrove se ci sono persone
che non ti danno neanche una stringa di codice per una sciocchezza, e
se anche non trovero' nessuno ad aiutarmi vuoldire che la data me la
inserisco a mano, e tolgo il fatidio.
Grazie di tutto.

 wrote:
se anche non trovero' nessuno ad aiutarmi vuoldire che la data me la
inserisco a mano, e tolgo il fatidio.
Ciao
Antonio 


Le risposte sono ESAURIENTI, ma la tua preparazione è troppo lacunosa
per aver capito il suggerimento.
A questo punto vedi tu come procedere..., non è questione di fastidio,
ma piuttosto che la pappa pronta non
è l'obiettivo dei NG, solitamente si paga un professioniata per
farlo... e bada che ho detto si PAGA...!
Nei NG vige che uno Studia e dove non arriva espone i propri tentativi
e la comunità aiuta a correggere il tiro...!
Tuo a questo punto inserisci a MANO... ci sono cose che fatte a mano
danno tante soddisfazioni...
@Alex

 ha scritto nel messaggio 
news:4c3a66cf-538e-4c63...@e35g2000yqc.googlegroups.com...


@Alex
Soprattutto, niente 2dP (2 di picche)
Antonio 


Allora, visto che o io non mi so spiegare o sei tu che non mi
comprendi.
Io dei NG ne ho fatto molto uso e devo dire che ho avuto sempre
persone che mi hanno aiutato senza fare tante polemiche personali.
Il fatto di studiare tutto il pacchetto Office 2007 non e' possibile
per questioni di lavoro, adesso mi spiego meglio.
Io lavoro in Croce Rossa Italiana ed abbiamo il pacchetto office
installato sui pc. Ora essendo che tutti lavorano ancora con excel e
fanno degli archivi lunghissimi (orizzontalmente) io oltre a sapermi
districare abbastanza bene con le varie formule di Excel 2007, ed
anche qui ho avuto bisogno del NG senza avere tanti problemi come
adesso.
Ora da un po di tempo mi sto interessando ad Access 2007 e mi sono
fatto nel mio ufficio un bel database per la gestione dei soci
lavorando sia con la mia testa e sia con l'aiuto del NG senzqa avere
mai problemi come ora. Visto che non lo uso per personalmente e non ci
fanno neanche dei corsi per poter gestire il pacchetto, allora ci
pensiamo ognuno per fatti sui e diciamo che la persona che piu' si
interessa di queste cose sarei io. Ora mi domando e dico non c'e'
bisogno di fare tante polemiche e farne una questione personale su di
una stringa di codice, visto che il db in questione e' un incremento
di quello che gia ho creato e non uno nuovo.
Comunque riformulo la domanda in questione: il db e' gia funzionante
ed ho gia' provato con diversi modi ad inserire la funzione iiff senza
avere esito positivo ti inserisco la stringa che sto elaborando per
capire il funzionamento, ma ancora non ci sono riusito.
Private Sub ProductName_BeforeUpdate(Cancel As Integer)
    If(Not IsNull(DLookup("[ProductName]", _
        "Products", "[ProductName] ='" _
        & Me!ProductName & "'"))) Then
        MsgBox "Product has already been entered in the database."
        Cancel = True
        Me!ProductName.Undo
    End If
End Sub
Questo esempio l'ho preso dalla guida di Access 2007 e sto cercando di
adattarla alle mie esigenze, che sarebbero:
Se nel campo precedente (che sia data o testo non ha importanza) è
nullo, nel campo successivo non inserire niente, se invece è inserito
qualcosa, allora inserisci la data odierna.
Ecco questo e' quello che volevo sapere se puoi e vuoi aiutarmi senza
fare polemiche te ne sarei grato altrimenti getto la spugna.
Ciao e grazie.


Non gettare la spugna, *vola piu' basso* :) e ricorda sempre che la
risposta sta nella domanda.
Cos'avevi chiesto in origine?
==================
Ora il mio problema è questo: quando vado ad inserire i dati sui
primi
5 campi, nell'ultimo campo (data registrazione) lo metto disabilitato
e mi deve iserire la data odierna in automatico solo se nei o nel
campo precedente è stato iserito qualcosa altrimenti deve restqare
vuoto.
==================
Cosa ti ha risposto Alex?
==================
In tutti i modi devi gestire l'Evento BeforeInsert dalla Maschera di
immissione dati e li fare il Test sui Campi di Controllo e nel caso
inserisci via codice il valore della Data(Odierna)...
==================
In sintesi: hai avuto una risposta (corretta) da una persona
(corretta) che ha tutto il diritto di dirti (in toni e modi corretti)
che stai sbagliando.
Prendere spunto dalla guida e' un inizio, ma bisogna cercare
l'argomento giusto: Alex parla di "Evento BeforeInsert dalla
Maschera",mentre tu parli di "evento BeforeUpdate di un controllo".
Questo sotto e' l'evento (indicato da Alex) che ti serve.
Immagina di sostituire l'italiano "quando vado ad inserire ..." con un
informatichese "if (campo1 is not null) ...".
Cosa ottieni?
==========================
Private Sub Form_BeforeInsert(Cancel As Integer)
quando vado ad inserire i dati sui primi
5 campi, nell'ultimo campo (data registrazione) lo metto disabilitato
e mi deve iserire la data odierna in automatico solo se nei o nel
campo precedente è stato iserito qualcosa altrimenti deve restqare
vuoto.
End Sub
==========================
HTH
Popi

Ora essendo che tutti lavorano
La locuzione "essendo che" la maestra alle medie me la stroncava con 3 righe 
rosse e una paperella blu
Antonio 


Lungi da me voler essere l'antipatico di turno... ma come ti ha
riassunto Popi... io ti ho dato le indicazioni puntuali e tecniche per
arrivare alla soluzione... poi ti ho detto che
dovevi metterci del tuo per il DETTAGLIO specifico...!
Non hai tempo, non hai office non hai voglia... non è il tuo
lavoro..., beh credo che queste non siano motivazioni che possano
giustificare il fatto che NOI SI DEBBA FARE QUELLO CHE DICI... e
ritenere che il NG non ti voglia aiutare.
Quì tutti partecipano per hobby, nessuno lo fa per lavoro e tutti lo
fanno se vogliono, se ne sono capaci e senza mai pretendere nulla...!!
Un pò come si fa nella CRI, e tu mi insegni che non si deve mai
pretendere... ma la prima cosa che un CRI fa è il massimo per
arrangiarsi... senza mai rinfacciare nulla a nessuno....!
Bene anche quì è così, ricevuta la dritta..., e già per questa che non
è d'obbligo per nessuno, potevi ringraziare invece che accusare,
avresti dovuto iniziare a lavorarci e proporci i tuoi tentativi magari
difettosi, dimostrando
che ci tieni e che ci metti del tuo...!
Questo non è avvenuto e continui a dire che hai problemi nel NG
ecc.......
Fai come credi, per quanto mi riguarda, se fai il passo che a mio
avviso è indispensabile, io ti darò ulteriori aiuti disinteressati,
altrimenti io personalmente non ne darò...!
Fai attenzione però che io contrariamente non farò accuse negative nè
pretenderò nulla da te... perchè nulla è dovuto.... !
@Alex


Ok! Ora penso che sia meglio chiudere la discussione personale e
andiamo sul vero motivo del NG.
Riferendomi all'aiuto di Popi ho cercato di provare con la funzione da
lui consigliatomi.
Io ho messo nel codice vb la seguente stringa.
Private Sub Form_BeforeInsert(Cancel As Integer)
   If Not IsNull(Me.DataVers) Then Me.DataReg = Date
      End If
End Sub
Non da nessun errore, ma facendo la prova non mi esce la data odierna,
ho provato in diversi modi senza darmi nessun errore ma niente.
Potrei sapere dove ho sbagliato?
Grazie

 ha scritto nel messaggio 
news:16039e3c-a2c6-4c42...@a7g2000vby.googlegroups.com...




scusate eh
ma sfoltire un po' il quoting, arrivato a 10K di polemiche, no eh?
Antonio 


prova questa:
if trim(datavers & "") <> "" then  datareg=date
-- 
ac (x=y-1)


La butto la': forse nel fatto che tu parlavi di 5 campi, non solo di
1?
Popi

Potrei sapere dove ho sbagliato?
Dire non fa niente o non da nessun errore non basta, hai capito cosa fa 
quella condizione?
Grazie
-- 
Ciao
Geppo 

 ac (x=y-1)
Niente, non riesco a farla funzionare ti riporto la stringa.
Private Sub Form_BeforeInsert(Cancel As Integer)
 If Trim(DataVer & "") <> "" Then DataReg = Date
  End If
End Sub
Ha, scusa nell'inconveniente e della mia dimenticanza il db in
questione e' una sottomaschera di un db SCHEDE SOCI per esiste una
tabella schede soci ed una pagamenti.
Grazie e scusami se ti disturbo.

 Grazie e scusami se ti disturbo.
Su un NG non si disturba mai, per quanto mi riguarda anche se si e' OT 
(non e' il tuo caso). Se proprio qualcuno si sente "disturbato" al 
massimo non interviene.
-- 
ac (x=y-1)

 non interviene.
già..
però chissà magari poi che caciara (Tm.) che diventerebbe...
sarebbe un po' come la casa della libertà: facciamo un po' tutti come ca$%o 
ci pare!
Antonio 

 ac (x=y-1)
Te la sei cercata ed ora.... te la cucchi...!
Io aspetto sulla riva del fiume... sono molto ZEN.
@Alex

 4) Anche il codice iniziale (quello con isnull(...) e' corretto)
  Si è corretto, oltre ad inserire il codice consigliatomi sopra, ho
anche provato quest'altra strinaga che vedi sotto consigliatomi da
Bisio
  Private Sub Form_BeforeInsert(Cancel As Integer)
If Not IsNull(Me.DataVers) Then Me.DataReg = Date
      End If
 End Sub
Ma con nessun risultato, rimane tutto invariato
NB: il codice lo inserisco in visualbasic.


 NB: il codice lo inserisco in visualbasic.
Domanda non fatta. Non si capirebbe dove altro potresti inserirlo, il 
codice intendo.
cmq
http://msaccess-dox.net/Que-Automating.Microsoft.Acces/0789732440/ch11lev1sec4.html
cfr Data Events
Io farei cosi': (sulla beforeinsert il controllo *DataVer* dovrebbe 
essere sempre *null* )
Sulla *BeforeUpdate*
if newrecord then
.....bla bla ...(uno dei codici segnalati)
end if
-- 
ac (x=y-1)

 ac (x=y-1)
Niente, non riesco a farlo funzionare.

 ac (x=y-1)
Ok! Finalmente ci sono riuscito, il codice esatto era questo:
Private Sub Form_BeforeInsert(Cancel As Integer)
  If IsNull(DataVer) Then DataReg = Date
 End Sub
Al momento che inserisco la DataVer mi esce subito la DataReg in
automatico, ovviamente me lo fa solo se inserisco un socio nuovo.
Sul socio nuovo ok non ci sono problemi.
Essendo che i soci, durante l'anno, inserisco solo i dati personali, e
solo due volte l'anno inserisco la quota e la data di versamento.
Esempio: se io inserisco solo i dati adesso pagando la quota di
iscrizione, tutto ok. Ma quando tra 6 mesi devo riprendere la scheda e
aggiungere la quota successiva non mi inserisce la DataReg in
automatico, perche' secono il codice l'ha gia messa quando e' stato
creato il un nuovo socio con relativo pagamento, invece lo deve fare
ogni qualvolta io inserisco la DataVer. Devo per caso mettere una
funzione anche su BeforeUpdate?
Grazie di tutto.