Newsgroup: it.comp.appl.access
Titolo: Nuovo record con campo preimpostato, in una maschera di inserimento con intestazione

Ciao,
In Access 2010 ho una tabella DITTE con le colonne ID_Ditta e RAGIONE_SOCIALE.
e un'altra tabella "ACCESSO DIPENDENTI DITTE" con ID_DITTA_ACCESSO, ID_Dipendente,
CognomeNome
 
Dalla form dell'anagrafica ditte apro la maschera con i dipendenti che possono accedere.
Li filtro.
 
Private Sub btnAccessiAutorizzati_Click()
        DoCmd.OpenForm "Accesso Dipendenti Ditte", , , "id_ditta_accesso=" & Me.ID_ditta,
acFormEdit       
End Sub
 
Nel form vedo i dipendenti già elencati e ne posso aggiungere altri. Affinchè siano
abbinati alla ditta giusta ho messo nella maschera dei dipendenti questo codice in modo
che il campo id_ditta_accesso sia avvalorato con l'ID della ditta che sto elaborando.
 
Private Sub Form_BeforeInsert(Cancel As Integer)
    Me.id_ditta_accesso = Forms!Ditte.ID_ditta
End Sub
 
PROBLEMA:
Nell'intestazione della maschera dei dipendenti ho il nome della ditta, ma appena mi
sposto su un nuovo record mi sparisce il nome della ditta dall'intestazione. Succede
perchè il BeforeInsert inserisce l'ID della ditta al momento della registrazione del
record.
Mi secca che quando mi sposto sul record nuovo sparisca il nome ditta. E' solo un attimo,
perchè basta che scriva una lettera e la ragione sociale riappare. Però non so come fare
ad evitarlo.
Come posso fare?
Grazie.
-- 
Giovanni Cenati (Bergamo, Italy)
Write to "Reventlov" at katamail com
http://digilander.libero.it/Cenati
 (Esempi e programmi in VbScript)
-- 

 ...
 
Non hai rivelato quale metodo usi per mostrare il nome della ditta. 
Comunque per l'Id invece di usare BeforeInsert prova di impostare il 
valore predefinito già sul click del pulsante:
 
DoCmd.OpenForm "Accesso Dipendenti Ditte"...
 
Forms![Accesso Dipendenti Ditte]!id_ditta_accesso.DefaultValue = _ 
Me!ID_ditta
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
Access Lobby: 
http://www.AccessDevelopers.org
 

 ha
scritto:

Per mostrare il nome della ditta ho creato una maschera tabulare con la creazione guidata,
poi ho preso il nome della ditta dalla riga dei record e l'ho spostata sull'intestazione.
Rileggendomi, non mi pare una grande trovata.
Chiaramente così l'intestazione e' legata al record corrente. Infatti andando su un nuovo
record sparisce il nome della ditta.
Ho provato il tuo codice ma dice che la proprietà non è supportata dall'oggetto. Il nome
del form è giusto e anche il nome del campo. 
Ci ho provato un po' di fretta e domani cerco di capire cosa c'è che non va. 
Questa cosa di aprire un form e poi di farci qualcosa dalla maschera padre... l'avevo già
vista ma mi inquieta un po'. Sono più abituato a impostare dei parametri e DOPO chiamare
la funzione. Oppure fare qualcosa ma dalla maschera che viene aperta, non da quella di
origine. 
Domani ci riguardo perchè è una cosa che mi potra' servire.
 
In giornata invece ho risolto così, con un approccio più procedurale che mi e' più
consono.
Ho creato un modulo con una variabile globale (e l'ho imparato oggi, credevo bastasse
dichiarare una variabile pubblica in cima al form "menu", sempre aperto).
Prima di aprire la maschera di inserimento dei dipendenti salvo nella variabile globale il
nome della ditta
NomeDittaPerElencoAccessi = Me.Ragione_Sociale
 
E poi lo metto non in un campo ma in una etichetta nell'intestazione della maschera di
inserimento dei dipendenti. Senza Caption,inoltre, non andava. Credevo fosse la proprietà
predefinita per le assegnazioni.
Private Sub Form_load() 
    'Nell'intestazione metto il nome ditta che ho salvato prima di aprire la maschera.
    Me.lblNomeDitta.Caption = NomeDittaPerElencoAccessi
End Sub
 
Funziona ed ha anche la sua ragione di essere. Il nome della ditta nell'intestazione non
ha motivo di essere collegato al record corrente. E' una intestazione ed è giusto che sia
fissa.
 
Grazie dell'aiuto.
Giovanni
