Newsgroup: it.comp.appl.access
Titolo: Salvare record in sottomaschera

Saluti a tutti.
[postato pure in microsoft. public.it.office.access]
Per cortesia un aiuto.
Ho una maschera chiamata "Customers" con un campo chiamato "CustomerID
(contatore) ed ha come origine controllo CustomerID della
tabella Customers.
Nella maschera "Customers" ho aggiunto un pulsante "Prestazioni" il quale mi
apre la sottomaschera filtrata che mi visualizza le prestazioni del record
selezionato (maschera Customers)
Codice assegnato:
Private Sub Cmd_Prestazioni_Click()
  Dim stDocName As String
  Dim stLinkCriteria As String
  stDocName = "Sottomaschera PRESTAZIONI"
  stLinkCriteria = "[IDCOGNOME]=" & Forms![Customers]!CustomerID.Value
  DoCmd.OpenForm stDocName, , , stLinkCriteria, acFormReadOnly, acDialog
End Sub
Fin qui tutto ok
**************
Problema:
Nella maschera "Customers" ho aggiunto un altro pulsante "Aggiungi" ed
avrebbe lo scopo di aggiungermi una nuova prestazione (nuovo record nella
sottomaschera e inerente allo stesso record della maschera Customers)
Codice assegnato:
Private Sub Cmd_Aggiungi_Lez_Click()
Dim stDocName As String
  Dim stLinkCriteria As String
  stDocName = "Sottomaschera PRESTAZIONI"
  stLinkCriteria = "[IDCOGNOME]=" & Forms![Customers]!CustomerID.Value
   DoCmd.OpenForm stDocName, , , stLinkCriteria, acFormAdd, acDialog
End Sub
Giustamente mi apre la "sottomaschera PRESTAZIONI" e mi permette di inserire
il record e di salvarlo ma non ho un corretto filtraggio (non mi viene
visualizzato il nuovo record) nella riapertura della sottomaschera in
modalità visualizzazione (pulsante Prestazioni" ).
Per risolvere il problema (parziale) nella sottomaschera PRESTAZIONI ho
dovuto creare un controllo chiamato "testo32" e come origine ho assegnato
"IDCOGNOME" (presente nella tabella PRESTAZIONI) e oltre ad inserire i dati
nei campi devo pure inserire nel controllo "testo32" il valore CustomerID
presente nella maschera "Customers"
come fare per assegnare questo valore CustomerID in automatico
Se assegno come origine al controllo "testo32" CustomerID il valore mi viene
si assegnato in automatico ma poi non viene filtrato IDCOGNOME e non mi
viene visualizzato. Ho provato pure con
=Maschere!Customers!CustomerID
Grazie 1000 e saluti
Giorgio A.


Come mai non hai legato la maschera con la sottomaschera (collega campi 
master/secondari) tramite il campo idcognome?
La sottomaschera ha bloccato la possibilità di inserire i dati (proprietà 
AllowAdditions = False)?
Ciao.
-- 
Sergio MAZZA 


Nelle proprietà ho:
Il nome elemento è: "SottomascheraPRESTAZIONI"
Oggetto origine: PRERSTAZIONI
Collega campi secondari: IDCOGNOME
Collega campi master: CustomerID
La sottomaschera non blocca nessun inserimento


 Giorgio A.
Quindi se hai legato la sottomaschera non hai bisogno di filtrarla; ma 
perchč per inserire i dati devi (ri)aprire la sottomaschera?
Ciao.
-- 
Sergio MAZZA 

Grazie Sergio Mazza,
non sň dove mi porterŕ (speriamo bene) ma ho risolto in questo modo:
Nel pič di pagina della sottomaschera ho creato un controllo TxtIDCustomer 
che come origine ha:
=Maschere!Customers!CustomerID
e nella procedura "Salva" ho inserito dopo DoCmd
Me.Testo32 = Me.TxtIDCustomer
Private Sub Cmd_Salva_Click()
On Error GoTo Err_Cmd_Salva_Click
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
*********
    Me.Testo32 = Me.TxtIDCustomer
****************
Exit_Cmd_Salva_Click:
    Exit Sub
Err_Cmd_Salva_Click:
    MsgBox Err.Description
    Resume Exit_Cmd_Salva_Click
End Sub
