Newsgroup: it.comp.appl.access
Titolo: per roberto su db gentilmente inviatomi

in effetti funziona anche a me :-))
ma non era quello che intendevo io, ovvero quando dicevo nel messaggio
"maschere, sottomaschere, caselle combinate e caselle di riepilogo"
CUT
"seleziono il cliente, seleziono la moto del cliente che mi
interessa in quel momento e quindi apro una maschera o una sottomaschera,
che è uguale, per inserire la descrizione, prezzo, quantità e altre cose
(serve per fare il resoconto della riparazione/manutenzione) solo che i dati
inseriti nella tabella che io ho chiamato "descrizione" devono essere
relativi a quel cliente e a quella moto specifica del cliente.
di quì poi farò delle ricerche storiche, per moto per cliente... insomma con
qualche query dovrei riuscirci...."
CUT
intendevo dire che nella tabella "descrizione" ci devono essere "molte rige"
(come in una sottomaschera in visualizzazione tabella) a disposizione, nel
senso che la riparazione potrebbe essere di questo tipo:
Descrizione    Q.tà    Prezzo    Importo    Avviso        Data
manodopera    1        10000    10000
pastiglie            2        15000    30000
olio motore        3        5000    15000    10/07/2002
invece (ed è quì che nasce l'inghippo) il tuo esempio mi permette di
scrivere solo un campo relativo alla tabella descrizione, ecco perchè ti
dicevo che mi dava errore, io cercavo di inserire più campi realtivi a
cliente/moto. Ora invece ho provato ad inserire solo un dato e funziona
esattamente come il db che mi hai inviato.
In effetti tu sei molto chiaro nella tua esposizione e COMPLIMENTI per il
fatto che scrivi il codice "al volo", ero io che cercavo di fare cose non
previste, solo che non mi ero spiegato bene... ora credo di essere stato più
chiaro, a parte un ultima complicanza, la data relativa alla riparazione,
che ho lasciato in bianco nella tbl di esempio, ma con un bel now() come
valore predefinito dovrebbe essere a posto.
spero di essere stato chiaro.
grazie ancora
by
stwe

 stwe
Allora prova a fare così.
Do per scontato che la struttura e le relazioni delle tre tabelle sia quella
discussa nel precedente thread.
Crea una maschera chiamata Lavorazione; detta maschera deve avere una
visualizzazione a Maschere continue e deve avere come origine record
tblDescrizione; inserisci nella maschera tanti controlli associati quanti
sono i campi della tabella che vuoi visualizzare; dai a tali controlli lo
stesso nome dei campi cui sono associati; inserisci nella maschera anche una
casella di testo non associata chiamata Importo nella cui origine controllo
scriverai:
= Prezzo*Quantità
Crea ora una maschera chiamata Maschera1; Maschera1 deve avere una
visualizzazione a Maschera singola e non deve avere origine record.
In Maschera1 inserisci una casella combinata non associata chiamata
ScegliCliente; detta combo deve avere due colonne (di cui visibile solo la
seconda) e deve avere come origine riga il seguente codice SQL:
SELECT DISTINCTROW [tblAnagrafica].[IdAnagrafica],
[tblAnagrafica].[NomeCliente] FROM [tblAnagrafica];
In Maschera1 inserisci una seconda casella combinata non associata chiamata
ScegliMoto; detta combo deve avere due colonne (di cui visibile solo la
seconda) e deve avere come origine riga il seguente codice SQL:
SELECT tblMotoPosseduta.IDMotoPosseduta, tblMotoPosseduta.DescrMoto FROM
tblMotoPosseduta WHERE
(((tblMotoPosseduta.IdAnagrafica)=[Forms]![Maschera1]![ScegliCliente]));
Inserisci infine in Maschera1 un controllo sottomaschera chiamato
Lavorazione; per detto controllo sottomaschera imposta la proprietà Oggetto
origine a Lavorazione, la proprietà Collega campi secondari a
IDMotoPosseduta e la proprietà Collega campi master a ScegliMoto.
A fronte dell'evento "Dopo aggiornamento" della casella combinata
ScegliCliente di Maschera1 genera il seguente cosice VBA:
Private Sub ScegliCliente_AfterUpdate()
Me!ScegliMoto = Null
Me!ScegliMoto.Requery
Me!ScegliMoto.SetFocus
End Sub
A fronte dell'evento "Dopo aggiornamento" della casella combinata ScegliMoto
di Maschera1 genera il seguente cosice VBA:
Private Sub ScegliMoto_AfterUpdate()
Me!Lavorazione.SetFocus
DoCmd.GoToRecord , , acFirst
End Sub
A questo punto apri Maschera1, seleziona dalla combo ScegliCliente il
cliente e dall'altra combo la moto; nella sottomaschera ti compariranno
tutti i record della tabella tblDescrizione già inseriti e relativi alla
moto selezionata; potrai inserire nuovi record, oppure cancellare o
modificare i record visualizzati.
Spero che era quello che volevi realizzare.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Ti ricordo che nella struttura da me suggerita, la chiave primaria di
tblDescrizione é IDDescrizione e non IDMotoPosseduta.
