Pippo_012 ha scritto:
Ciao Alex,
le maschere sono legate dal numero commessa 1-M. La maschera note si apre tramite il pulsante (inserisci nota) comandato da una macro. La combo mi serve, dopo aver aperto la maschera "note" dirgli a quale commessa deve associare la nota.
Sicuramente ci sarà un metodo meno articolato, ma come ho accennato io sono un principiante.
Mmmmm qualche cosa non torna...!
Se la Maschera Commesse apre la Maschera Note, e le tabelle sono in 1-M, va da se che la Maschera Note deve aprirsi in automatico sulla Commessa, non devi selezionarla tu...!
Quindi Essendo una NOTA, devi definire se sei in Aggiunta o in Editazione.
Se sei in Aggiunta devi passare sul parametro OpenArgs l'IDPK della Commessa che rappresenta la ChiaveEsterna che lega 1-m
Su Load della Form(Note) aperta in modalità Aggiunta, leggi il parametro OpenArgs e valorizzi come DefaultValue il Controllo IdCommessa che deve essere NON EDITABILE.
Riassumendo dalla Form Commesse, su Button di Inserimento Note:
DoCmd.OpenForm "MascheraNote", , , , acFormAdd, acDialog, Me.IdCommessa
Nella Form Note:
Private Sub Form_Load()
If Len(Me.OpenArgs & vbNullString) > 0 Then
Me.IdCommessa.DefaultValue = Chr(34) & Me.OpenArgs & Chr(34)
End If
End Sub
Ovviamente tu vorrai leggere non il Numero della FK della Commessa, ma il Titolo della commessa, quindi metterai un Controllo Non associato NON EDITABILE che, recuperando il Valore di IdCommessa recupera il Destittivo o Nome...!
Ti basta mettere nella TextBox come OrigineControllo
=DlookUp("NomeCommessa";"tblCommesse";"IdCommessa=" & [IdCommessa])
Se invece apri la Maschera Note in modalità EDIT, l'apertura avverrà in questo modo:
DoCmd.OpenForm "MascheraNote", , , "[IdCommessa=" & Me.IdCommessa, acFormEdit, acDialog