OsvaldoLaviosa ha scritto:
La 1) mi sembra buona, solo che, nell'esposizione del problema, non ho detto che la sottomaschera B ha una ulteriore sottomaschera C, ininfluente ai fini del problema in questione, ma si da il caso che sia regolata proprio dall'evento Current (creato grazie alla procedura guidata), che ho paura di andare a smuovere con altre istruzioni.
Decisamente bizzarro già che la Form debba essere condizionata dalla SubForm di livello 1... figuriamoci dalla SubSubForm... che è di livello 2..., certo è una strategia anomala e decisamente discutibile... ma tant'è...
OsvaldoLaviosa ha scritto:
2) AfterUpdate potrebbe essere sostituito tranquillamente anche da BeforeInsert.
Non sono proprio la stessa cosa... anzi... fossi in te farei attenzione alla modalità di GENERAZIONE degli eventi... cosa che tuttavia non è agevole con le sole MACRO.
Sei certo che il BeforeInsert sia adeguato...?
Se vedi l'evento BeforeInsert da VBA ti accorgi che è ANNULLABILE, quindi nel caso venisse annullato(anche solo dai comandi tastiera) non faresti mai verificare un'evento di CONFERMA dello stato dei tuoi Button...!
A me pareva di averti suggerito non a caso AFTER....
Purtroppo ogni EVENTO ha particolarità da conoscere e soprattutto serve sapere quali proprietà testare negli Eventi di condizionamento... come la proprietà DIRTY che è diversa dall'Evento DIRTY e la proprietà NEWRECORD...
OsvaldoLaviosa ha scritto:
Scusa quando non colgo il significato stretto di ogni vocabolo, ma forse ho problemi nel capire cosa deve significare NewRecord.
A me capita che, non appena digito un carattere in un campo di NewRecord, automaticamente Campo5 (essendo Contatore) assume un valore. Ecco perchè per me, da questo momento (desidero condizione 10) fino al prossimo NewRecord sarebbe come se non dovessi più considerarlo come NewRecord. Dove sbaglio? Quando un NewRecord cessa di essere tale?
La proprietà NEWRECORD la devi cercare nel Visualizzatore Oggetti, digitando NEWRECORD e vedrai che è una proprietà connessa all'oggetto FORM, poi aprendo l'Help ti viene spiegato come funziona...!
Si attiva=TRUE solo quando sei in ADDNEW ed è leggibile su BeforeInsert, ma anche su CURRENT, ma testarla su questi 2 Eventi ha un senso completamente differente...
OsvaldoLaviosa ha scritto:
Quando dici "il mio dubbio è che se non condizioni con la proprietà NEWRECORD questo accade anche su un Record già presente in EDITING", non è tanto un problema. Io potrei posizionarmi su qualsiasi record e cliccare su Pulsante2 (esso crea una procedura di inserimento nuovi dati che andranno poi ad ACCODARSI alla subtabella B, ecc...)
Beh stai stravolgento l'uso di Access in modalità disconnessa, ma è una possibilità... solo che se non la gestisci con il VBA che margine hai di intercettare eventuali ERRORI...?
OsvaldoLaviosa ha scritto:
3) Ho provato con AfterInsert, apparentemente funziona, ma succede che:
1. Se digito in sequenza Campo1 (passo a Campo2 e qui già Combinazione10 si attiva), poi digito in Campo2 (dimenticavo: è una casella combinata, se non trovo un valore che mi interessa, ne seleziono uno a caso (tanto verrà reimpostato dopo), quindi decido di cliccare su Pulsante1, ma mi si disattiva e si attiva Pulsante2 impedendomi di agire sull'azione posta al di sotto di Pulsante1.
Tieni presente che vorrei evitare di mettere in gioco l'evento NonInElenco su Campo2 per mie ovvie ragioni..............talvolta un testo selezionato può corrispondere ad un testo esistente, ma non sempre significa che quel dato sia buono, quindi in ogni caso devo poi cliccare su Pulsante1.
2. Se insisto a digitare, correndo lungo i campi, cioè mi sposto su Campo3 per poi rispostarmi su Campo1 e ripetere tutta l'operazione di input, l'AfterInsert produce l'effetto sperato.
Continuo a non capire il concetto di NewRecord?
Quì ho capito veramente pochissimo...
OsvaldoLaviosa ha scritto:
4) NewRecord è una istruzione che puoi trovare soltanto in VBA? Non trovo una proprietà evento con questo nome. Scusa se sto mischiando i termini e i significati.
Nella programmazione ad Oggetti(O.O.P.) ci sono solo 3 elementi da conoscere:
1) Metodi
2) Proprietà
3) Eventi
NewRecord è una proprietà dell'oggetto Form, leggibile al verificarsi di specifici Eventi... le 3 considerazioni sono legate...
Per rispondere, che io sappia, quando si vuole gestire le proprietà nello specifico ed in particolare condizionare eventi solo il VBA lo consente, ma potrei essere smentito su questo non conosco minimamente i limiti delle macro.
OsvaldoLaviosa ha scritto:
Non preoccuparti quando io parlo di macro, tu continua a usare il tuo linguaggio VBA e costruire connessioni le più consoni alla logica del problema: è quest'ultima che mi preme di capire più di tutto.
Ti sono immensamente grato, ma credimi, ho letto e riletto tutti i significati delle proprietà evento su un manuale fatto molto bene e, come quando ti perdi in un bicchier d'acqua, non ne vieni a capo lo stesso.
Come sempre quando si guarda una cosa da un punto di vista che non si è mai considerato, spesso non la si riconosce nemmeno... , credo sia solo questione di iniziare con l'idea di imparare il VBA, poi vedrai che inizierai a legare l'uso delle Macro con il VBA e capiti i parallelismi sarà più facile per te abbandonare le Macro...