asnaldo ha scritto:
però ho notato che se la scrivo così si apre
Private Sub Form_Open(Cancel As Integer)
Dim intCliente As Integer
intCliente = Me.OpenArgs
Me![cliente] = intCliente
End Sub
Giusto, tutti gli errori precedenti di questo tipo:
"l'espressione su apertura immessa come impostazione della proprietà di evento ha generato l'errore seguente: la dichiarazione della routine non corrisponde alla desrizione dell'evento o della routine con lo stesso nome"
sono più o meno colpa mia perché all'inizio avevo usato (o pensato di usare) Form_Load (che non vuole parametri) e poi siamo passati a Form_Open che prevede l'uso del parametro Cancel. Comunque, se sequi la procedura guidata non puoi sbagliare.
Appurato che lo scriviamo su Open
Private Sub Form_Open(Cancel As Integer)
Dim intCliente As Integer
intCliente = Me.OpenArgs
Me![cliente] = intCliente
End Sub
se apri direttamente la maschera Ordini (senza passare dal pulsante in Anagrafica) è normale che che succeda questo
asnaldo ha scritto:
e si ferm ain dedug riga gialla sulla riga
intCliente = Me.OpenArgs
se ci vado sopra mi scrive Me.OpenArgs = nullo
perché avendola aperta "a mano" non ha ricevuto alcun OpenArgs (che infatti deriva dal codice messo sul pulsante nella maschera Anagrafica)
Per ora possiamo risolvere così:
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Dim intCliente As Integer
intCliente = Me.OpenArgs
Me![cliente] = intCliente
End If
End Sub
E' importante sapere però da quanti altri punti questa maschera può essere aperta, in modo da poter gestire tutti i valori che può assumere OpenArgs (in caso di necessità)