Newsgroup: it.comp.appl.access
Titolo: su caricamento non fa quello che voglio

Private Sub Form_Load()
Dim mas As String
    mas = "pss"
Dim mas1 As String
    mas1 = "principale"
Dim aaa As String
    aaa = "Maschera3"
Dim avv As String
    avv = "frmAvvisaOggi"
DoCmd.Maximize
If pass = 0 Then
    pass = Now() + 56158
ElseIf invio = 0 Then
    DoCmd.OpenForm mas
ElseIf invio <> pass * 853 Then
    DoCmd.Quit
-->ElseIf avviso = Date Then
-->     DoCmd.OpenForm (avv)
Else: DoCmd.OpenForm (mas1)
End If
End Sub
ecco il mio problema: vorrei verificare se il campo "avviso" nella tabella
"storico" è uguale alla data odierna e in tal caso aprire la maschera
"frmAvvisaOggi", ma anche se il valore corrisponde alla data odierna mi apre
sempre mas1 ovvero la maschera "principale" cosa sbaglio???
spero di essere stato chiaro e grazie mille
ho indicato le due righe di codice con una freccina -->.
by
stwe

 If pass = 0 Then
Mi spieghi il significato di quest'ultima istruzione?
Se il tuo codice č questo, la variabile pass, che non sembra neanche essere
stata definita con un Dim, č sicuramente =0, visto che tutte le variabili
numeriche vengono inizializzate a tale valore (mentre quelle String sono
inizializzate a "").
Nella variabile pass dovrebbe esserci un valore preso da una tabella o da
un'altra maschera gią aperta, forse?
Il resto poi lo capiamo.
Ciao
--
Silvio
il sito comune di it.comp.appl.access:
http://www.sitocomune.com


yes "pass", "invio" e "avviso" sono campi di una tabella, ovvero variabili,
ma il mio problema è che il codice funziona correttamente, senza la parte
indicata da -->, ma anche con quella parte di codice mi apre lo stesso la
maschera "principale", mentre se io nel campo "avviso" ci scrivo la data
odierna vorrei che mi aprisse la maschera "frmAvvisaOggi". spero di essere
stato più chiaro.
grazie mille per l'interessamento
by
stwe

 odierna vorrei che mi aprisse la maschera "frmAvvisaOggi".
Risolto questo andremo + avanti.
--
P.S. Sei scusato x l'errata mail privata.  :-)


 ha scritto nel messaggio
news:7QDa7.2850$fA3.1...@news.infostrada.it...
da quello che ho capito ti serve una funzione tipo agenda che ti avvisa
quando c'è un appuntamento?
se si ti spiego un sistema semplice semplice per farlo..con pochissimo
codice

 ha scritto nel messaggio
news:9kh2je$5mv$2...@serv1.iunet.it...

esatto è qualcosa del genere...
saresti veramente gentile.
grazie
by
stwe

 ha scritto nel messaggio
news:UwTa7.6166$fA3.2...@news.infostrada.it...

uffi io non so spiegarmi... intendevo dire con variabile che varia non che è
una variabile per il programma.
però è certamente vero che il tuo codice è formalmente corretto, ma il mio
funziona.
cerco di spiegare:
ho la maschera "avvio" a cui si riferisce il codice:
Private Sub Form_Load()
Dim mas As String
    mas = "pss"
Dim mas1 As String
    mas1 = "principale"
Dim aaa As String
    aaa = "Maschera3"
Dim avv As String
    avv = "frmAvvisaOggi"
DoCmd.Maximize
If pass = 0 Then
    pass = Now() + 56158
ElseIf invio = 0 Then
    DoCmd.OpenForm mas
ElseIf invio <> pass * 853 Then
    DoCmd.Quit
-->ElseIf avviso = Date Then
    -->DoCmd.OpenForm (avv)
Else: DoCmd.OpenForm (mas1)
End If
End Sub
poi ho la tabella "pass" che contiene due campi: "pass" e "invio"; poi ho la
maschera "pss"
e succede questo: all'inizio ho tutto a zero.
di conseguenza all'avvio mi viene scritto il valore formato da Now()+56158
nel campo pass della tabella pass, quindi bisogna riavviare il programma. al
riavvio si apre la maschera "pss" che permette di visualizzare il valore del
campo pass e il campo "invio" sempre della tabella invio. A questo punto
l'utente mi chiama e io gli comunico il valore di "invio" che è pass*853, e
richiude il programma.
al terzo riavvio se è tutto ok si apre la maschera "principale" e si può
utilizzare il programma.
ora io vorrei che dove ci sono le due freccine succedesse questo: se nella
tabella "storico" c'è un record che contiene il valore Date(), allora mi
dovrebbe aprire la maschera "frmAvvisaOggi", ma non succede, ecco il mio
vero problema.
spero di essere stato chiaro.
by
stwe
P.S. giuro che ho sbagliato ad inviarti il reply a casa. :-)

 stwe
Esempio:
Campi Tabelle appuntamenti:
id_appuntamento    contatore
descrizione             testo
data                       data/ora
note                       memo
avvisa                    si/no valore predefinito true
visto                      si/no  valore predefinito true
Maschera definizione appuntamenti:
includi tutti questi campi più ActiveX calendario 8.0 (fantastico) e lo
riferisci al campo data della tabella
fai una maschera (meschera di avviso) di cui l'origine dati è una query
sulla tabella che pesca tutti i dati che presentano il campo visto impostato
a no e il campo avvisa impostato a si
questa maschera la fai come maschera continua e ci metti un interuttore che
interagisce sul campo visto (quando viene premuto elimina l'avviso per la
prossima apertura)
poi inserisci del codice sulla maschera appuntamenti (su caricamento)  che
in base alla data degli appuntamenti e quella odierna lancia una query di
aggiornamento sulla tabella appuntamenti che imposta il campo visto a false
quando la data odierna e quella dell'appuntamento coincidono..
Spero che tu abbia capito

 ha scritto nel messaggio
news:o0%a7.8411$fA3.3...@news.infostrada.it...

Facciamo così: prova a riscrivere il codice mettendo tra parentesi quadre i
nomi dei controlli delle maschere; perché, vedi, il tuo codice ti funzionerà
anche, ma io non riesco proprio come.
Allora mi è venuto il sospetto che pass e invio siano dei controlli della
maschera e non delle variabili: in tal caso, dovresti farvi riferimento nel
codice con Me.pass e Me.invio oppure con [pass] e [invio].
Già che ci siamo: avviso è anche lui un controllo? e se sì, di quale
maschera?
--



Private Sub Form_Load()
Dim mas As String
    mas = "pss"
Dim mas1 As String
    mas1 = "principale"
Dim aaa As String
    aaa = "Maschera3"
Dim avv As String
    avv = "frmAvvisaOggi"
DoCmd.Maximize
If [pass] = 0 Then
    [pass] = Now() + 56158
ElseIf [invio] = 0 Then
    DoCmd.OpenForm mas
ElseIf invio <> pass * 853 Then
    DoCmd.Quit
ElseIf avviso = Date Then
    DoCmd.OpenForm (avv)
Else: DoCmd.OpenForm (mas1)
End If
End Sub
hai ragione, inizio a capire, la maschera avvio si basa sulla tabella "pass"
che contiene i campi "pass", "invio" e il contatore, mentre "avviso" è un
campo della tabella "tblstorico". Ora io ho provato a scrivere
[table]![tblstorico]![avviso] al posto di "avviso" nel codice, ed ecco che
mi da errore, come devo fare a questo punto a specificare il campo "avviso"
nel codice?
Spero di essere stato più chiaro. grazie infinite per l'interessamento e
scusa per la mia scarsa chiarezza.
by
stwe

ci sono riuscito!!!!!
ecco il codice:
Private Sub Form_Load()
Dim mas As String
    mas = "pss"
Dim mas1 As String
    mas1 = "principale"
Dim aaa As String
    aaa = "Maschera3"
Dim avv As String
    avv = "frmAvvisaOggi"
Dim frmAvvisa As String
    frmAvvisa = "frmAvvisa"
 DoCmd.OpenForm (frmAvvisa)
DoCmd.Maximize
If pass = 0 Then
    pass = Now() + 56158
ElseIf invio = 0 Then
    DoCmd.OpenForm mas
ElseIf invio <> pass * 853 Then
    DoCmd.Quit
ElseIf [Forms]![frmAvvisa]![Avviso] = Date Then
    DoCmd.OpenForm (avv)
Else: DoCmd.OpenForm (mas1)
End If
End Sub
anche se ho l'impressione di avere barato... nel senso che mi sono creato
una maschera "temporanea" chiamata "frmAvvisa" che non è niente altro che
una maschera che contiene il controllo "avviso" di modo che posso fare la
verifica...
ho però l'impressione che si possa fare anche in modo formalmente più
pulito, non so.
grazie infinite, le tue mail sono state chiarificatrici, nel senso che mi
hanno permesso di capire cosa e come sbagliavo, ora sono più conscio di
quello che dico... e come lo dico, sia al news che a VB...
by
stwe

 ha scritto nel messaggio
news:9kj9gb$29c$1...@serv1.iunet.it...

grazie mille ho capito, ma non è esattamente quello che volevo fare io, ad
ogni modo sono riuscito comunque a fare quello che volevo, mi potrà essere
utile comunque in altre occasioni.
by
stwe

 quello che dico... e come lo dico, sia al news che a VB...
Prego. Con ciò avrai capito anche perché mi sono impuntato dall'inizio.
