Newsgroup: it.comp.appl.access
Titolo: Domandina di teoria

Qul'è la tecnica migliore per passare dei parametri da una form popup che
sta per essere chiusa ?
mi spiego: a volte chiedo dei dettagli all'utente tramite delle finestre
popup (poichè le sole msgbox e input box spesso non bastano).
Supponiamo che all'utente chieda 2 date.. bene io devo poter risalire ai
valori inseriti PIU' al tasto premuto per uscire dalla form popup
(ok/annulla)
Come posso fare ? Di solito mi appoggio a variabili globali... ma non è
elegante! poi quando le form pop up diventano tante diventa un problema
gestire tutte queste variabili!
cosa dice il manuale dell'etica del programmatore access ?

Come posso fare ? Di solito mi appoggio a variabili globali... ma non č
prova a dare un'occhiata alle custom properties.
-----------------------------------
ATTENZIONE: il ng it.comp.database.access cambia nome e diventa it.comp.appl.access
linkatelo!
-----------------------------------
il sito comune di it.comp.database.access:
http://members.xoom.it/it_db_access

 (ok/annulla)
Nell'evento SuChiusura della maschera PopUp metti due righine di codice che
impostano i valori di alcuni controlli nascosti della maschera che deve
ricevere i dati, controlli che, ovviamente, avrai preventivamente creato.
Sib


La proprietà Visibile della maschera si rivela in questo caso
incredibilmente potente: se, per esempio, sull'evento click di un pulsante
 nel tuo caso Ok o Annulla) si rende invisibile la maschera, il codice che
l'ha invocata può proseguire come se  essa non fosse più popup e leggere i
valori presenti nei suoi controlli (nel tuo caso le date).
ciao, spero di esserti stato utile
Adamo


l'idea è geniale! complimenti...
ma non è che poi tante form aperte (anche se invisibili) le prestazioni
calino nei pc meno dotati ?
Forse in questo caso è meglio l'idea di lbo...
voi cosa ne dite ?

 voi cosa ne dite ?
Io uso questo metodo da sempre e non ha mai dato problemi. Le form però le
chiudo dopo aver letto i dati.
Esempio, in fase di creazione di una fattura, se ad un articolo sono
associati più codici EAN, faccio aprire una maschera che permette la scelta
di quello desiderato.
Dalla maschera principale apro la maschera di scelta in modalità dialog:
'apre maschera
DoCmd.OpenForm "MskEanMultipli", , , , , acDialog
'queste istruzioni vengono eseguite solo dopo aver nascosto la maschera di
scelta
Fai qualcosa con Forms!MskEanMultipli!ElencoEan
'chiudi maschera nascosta
DoCmd.Close acForm, "MskEanMultipli"
Sulla maschera di scelta invece sarà presente il codice:
Private Sub BtnOK_Click()
 If IsNull(Me!ElencoEan) Then 'nessuna selezione
  MsgBox "Selezionare il codice desiderato.", vbExclamation
  Exit Sub
 End If
 Me.Visible = False   'la nasconde per passare il controllo alla MskFatture
 'il codice EAN verrà letto direttamente dalla maschera nascosta
End Sub
Se poi vuoi fare in modo che la stessa maschera di selezione possa essere
richiamata da diverse maschere (movimenti, ordini, ecc.) potresti fare una
cosa del genere (ho fatto copia e incolla, interpreta tu):
Private Sub Form_Open(Cancel As Integer)
 'decide se è stata richiamata da maschera Movimenti, Ordini, Fatture, Ddt o
Vendita al banco
 If 
Screen.ActiveForm.Name
 = "MskMovimenti" Then
  Vars(4) = Forms!MskMovimenti!SubMskDatiMovimento!DescrizioneArticolo
'IDarticolo che serve alla query
  Me!ElencoEan.RowSource = "QryEanMultipli"
  Me!Articolo = DLookup("DescrizioneEstesa", "TblArticoli", "IDarticolo=" &
Forms!MskMovimenti!SubMskDatiMovimento!DescrizioneArticolo)
 ElseIf 
Screen.ActiveForm.Name
 = "MskOrdini" Then
  Vars(4) = Forms!MskOrdini!SubMskDatiOrdine!DescrizioneArticolo
  Me!ElencoEan.RowSource = "QryEanMultipli"
  Me!Articolo = DLookup("DescrizioneEstesa", "TblArticoli", "IDarticolo=" &
Forms!MskOrdini!SubMskDatiOrdine!DescrizioneArticolo)
  'eccetera...
 End If
End Sub
--
Ciao, AntoGal
*************************************************
Home Page (area programmatori di VolFtp)
http://volftp.tin.it/italiani/galletta/
per scaricare un gioco di DAMA ITALIANA
*************************************************

sta per essere chiusa ?
Personalmente uso una tabella locale con un solo record e tanti campi
quanti me ne servono per tutte queste form popup, che quindi sono
legate alla tabella.
Svantaggi: una tabella in +
Vantaggi: semplicita', nessuna var globale, visibilita' totale,
*mantenimento degli ultimi valori scelti* (che trovo molto comodo p.e.
per i parametri di stampa), eppoi sta tabella puo' servire per un
sacco di cose.
Bai
--
Lorenzo Coronati
--
ICDA Forever official member
<<...buona la pasta coi ricci>>
--

 Lorenzo Coronati
Sì questa è la soluzione migliore. Il metodo della proprietà visibile=no,
che consente di accedere direttamente ai controlli della maschera PopUp ,
può essere utile soltanto in casi limitati e solo nella misura in cui il
codice chiamante si concluda con la chiusura definitiva della stessa(che
senso ha lasciare aperte una costellazione di maschere invisibili?)
Adamo

Sě questa č la soluzione migliore. 
Questo ragazzo merita.
:-P
