Newsgroup: it.comp.appl.access
Titolo: Sincronizzare 2 maschere

Buon Anno a tutti!
Scusate se insisto ma ho veramente bisogno di questa soluzione.
Precedentemente quando usavo Acc97, non avevo problemi a sincronizzare due
maschere.
Ora però, convertendo il dB in Acc2000, la macro che sincronizza le due
maschere non funziona più.
(la macro viene attivata dall'evento 'Su corrente' della maschera 'Madre' e
contiene, tra le altre, una azione 'Apri maschera' con una condizione WHERE
[IDAtricolo]=[Forms]![MascheraMadre]![IDArticolo])
Ho già provveduto a ripristinare tutti i riferimenti D.A.O. ma non è stato
sufficiente.
Praticamente, i record della maschera 'figlia' vengono filtrati solo quando
si cambia record la prima volta nella maschera madre. Invece prima in Acc97
funzionava correttamente.
Ringrazio anticipatamente
Andrea Asioli

 ha scritto nel messaggio
news:pUE46.5565$FF1.3...@twister1.tin.it...

Mi risulta che A2000 modifica i riferimenti Forms in Maschere, hai già
controllato il codice?
Ciao.

 ha scritto nel messaggio
news:pUE46.5565$FF1.3...@twister1.tin.it...

Non adopero le macro pertanto.......
Ma se vuoi farlo con del codice VBA, sempre a fronte dell'evento "Su
corrente" della maschera madre prova a generare il codice VBA:
Dim stDocName As String
Dim stLinkCriteria As String
stLinkCriteria = "[IDAtricolo]=" & Me![IDArticolo]
stDocName = "NomeDellaMascheraFiglia"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Se poi nella tua macro ci sono anche altre cose devono essere fatte e che ti
funzionano regolarmente, richiama da codice la tua macro (DoCmd.RunMacro)
naturalmente dopo aver tolto dalla tua macro l'azione 'Apri maschera'.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------

 wrote in message
92v87q$cl8$1...@suite03.caspur.it...


 wrote in message
16G46.231334$hk4.10...@news.infostrada.it...



Per favore rispondi dopo il mio messaggio (come faccio io con il tuo).
Sì, intendo proprio quello. Non credo sia un problema DAO la modifica
(inglese -> italiano) di "forms" in "maschere"; già Acc'2.0 utilizzava
"maschere" e poi in Acc'97 diventò "forms" (sarebbe ora che si decidessero!)
e entrambi utilizzano DAO. A meno che tu hai dei riferimenti a DAO (Acc'2000
utilizza per default ADO); ma per fare una "diagnosi" più precisa dovresti
inviare insieme al messaggio anche l'esempio del codice incriminato così da
poterlo analizzare...
Ciao.


Arghh! Macro! Ti consiglio di non utilizzare le macro che non ti permettono
di controllare (debug) in modo efficiente il flusso della tua applicazione.
Access'97 (il 2000 non lo so) ti permette di convertire automaticamente le
macro in subroutine; come? File - Salva con nome/esporta - Come modulo di
visual basic - poi ti chiede se vuoi gestire il controllo degli errori e/o
inserire dei commenti (per default sono già selezionate). Devi solo (si fa
per dire) copiare e incollare il codice generato, nell'evento "su corrente"
e provare il tutto. Anzi, prima di provarlo, invialo che gli si dà
un'occhiata.
Tutto ok?
Ciao.

 "maschere" e poi in Acc'97 diventò "forms" (sarebbe ora che si
decidessero!)
Access 2 le chiamava Schede.
--
Silvio
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access

 wrote in message
932deb$90e$1...@suite03.caspur.it...

Grazie 1000 per le informazioni! Sei stato molto gentile.
Ecco il codice che ha creato l'esportazione (frm_OrdiniRichNew è la maschera
madre e frm_ArtAcqStati è la maschera figlia):
Function Ordini_Sincr_OrdiniRichNew_StatiArtAcq()
On Error GoTo Ordini_Sincr_OrdiniRichNew_StatiArtAcq_Err
    DoCmd.RunMacro "Ordini.ScorteCritiche", , ""
    If (Forms!frm_OrdiniRichNew!Posizione = 0 Or
Forms!frm_OrdiniRichNew!InterruttoreStati = -1) Then
        Forms!fsub_ArtAcqStati.Visible = False
        Exit Function
    End If
    DoCmd.OpenForm "fsub_ArtAcqStati", acNormal, "",
"[IDArtAcq]=[Forms]![frm_OrdiniRichNew]![IDArtAcq]", acEdit, acNormal
    DoCmd.MoveSize 5670, 3969
    Forms!fsub_ArtAcqStati!FlagPosizione = Forms!frm_OrdiniRichNew!Posizione
    DoCmd.SelectObject acForm, "frm_OrdiniRichNew", False
Ordini_Sincr_OrdiniRichNew_StatiArtAcq_Exit:
    Exit Function
Ordini_Sincr_OrdiniRichNew_StatiArtAcq_Err:
    MsgBox Error$
    Resume Ordini_Sincr_OrdiniRichNew_StatiArtAcq_Exit
End Function
Perchè ha creato una Function e non una Sub Routine?
Grazie ancora
Andrea


Ah! Piove sul bagnato; l'ho proprio rimosso...
Ciao.


Mah! Non ne ho la piů pallida idea e nell'help non c'č traccia del perché.
Ciao.

 Grazie 1000 per le informazioni! Sei stato molto gentile.
Il discorso di scrivere dopo il quoting l'hai capito. Ora dovresti riuscere
a ridurre un po' questo quoting, lasciano l'indispensabile per capire a cosa
stai rispondendo.
In questo caso, a che serviva lasciare la parte sull'uso del NG se poi
dovevi parlare del tuo problema?
Antonio