Newsgroup: it.comp.appl.access
Titolo: Sincronizzazione 2 combo ok, ma nuovo record in relazione?

Ciao a tutti,
ho una maschera dove ci sono due combo box in gerarchia sincronizzate.
Grazie alla FAQ 3.77 funziona tutto alla perfezione.
Ora però dovrei inserire un nuovo record legato a quelle due combobox,
e la mia maschera non è associata a nulla... non so che pesci
prendere, nemmeno cosa cercare.
Inizio a descrivervi l'ambito:
Ho un prodotto, formato da più articoli. L'articolo è formato da
materie prime differenti.
La struttura delle tabelle e le relazioni sono le seguenti:
TBL_MP
mp_id        KEY
mp_desc   materia prima descrizione
TBL_ART
art_id       KEY
art_mpid  Chiave esterna che collega TBL_MP.mp_id molti a uno
art_desc  descrizione articolo
TBL_DART
dart_id       KEY
dart_artid     Chiave esterna che collega TBL_ART.art_id molti a uno
dart_distid   Chiave esterna che collega TBL_DIST.dist_id
dart_qta
TBL_DIST
dist_id      KEY
dist_cliente
dist_codice prodotto
La tabella DIST che sta per distinta, rappresenta il prodotto vero e
proprio, formato da + articoli. Ogni articolo, è formato da una
materia prima, che può essere diversa.
Ora, io ho creato la maschera distinta, nella quale c'è la
sottomaschera frmsmdart, dove scelgo gli articoli che compongono il
prodotto.
Per aiutare la scelta dell'articolo, faccio scegliere la materia prima
che filtra gli articoli. Il punto è, come faccio a creare un nuovo
record dart_id quando scelgo la materia prima e poi l'articolo?
Oltretutto, devo segnare anche la quantità dell'articolo, record
dart_qta, perciò dovrò dare un'origine dati alla maschera, mentre
finora la maschera non è asssociata e ogni articolo è a sé stante.
Cmq, per dare una chiara visione di come funzionano le materie prime e
gli articoli, di sotto copio il codice:
CbomateriaP:
SELECT TBL_MP.mp_id, TBL_MP.mp_desc, TBL_UM.um_desc, TBL_MP.mp_umid
FROM TBL_UM INNER JOIN TBL_MP ON TBL_UM.um_id = TBL_MP.mp_umid ORDER BY
TBL_MP.mp_desc;
Private Sub cbomateriaP_AfterUpdate()
Me!cboArticolo.Requery
Me!cboard = DLookup("[um_desc]", "q_frmsmdart_umdesc",
"MP_id=forms!frmsmdart!cboMateriaP")
End Sub
Mentre per l'articolo la casella combinata è cboArticolo:
SELECT TBL_ART.art_id, TBL_ART.art_desc
FROM TBL_ART
WHERE (((TBL_ART.art_mpid)=[forms]![frmsmdart]![cbomateriaP]))
ORDER BY TBL_ART.art_desc;
Avete qualche suggerimento? Spero di essere stata chiara,
Grazie mille e buona serata,
Samantha

Samantha Cicch ha scritto:

Ciao,
torno con delle news. Alla maschera frmsmdart ho creato la query
origine dati: SELECT TBL_DART.dart_id, TBL_DART.dart_artid,
TBL_DART.dart_distid, TBL_DART.dart_qta FROM TBL_DART;
Alla casella combinata cboarticolo ho associato l'origine controllo
dart_artid.
Ho cambiato la maschera in modalità solo imissione dati.
Perciò ora, quando scelgo la materia prima, viene filtrata la
cboarticolo, e quando scelgo l'articolo mi crea il nuovo record
dart_id.
L'anomalia che si presenta, è quando scelgo un secondo articolo,
perciò nel secondo record dart_artid. Appena nel secondo record cambio
la materia prima, automaticamente nel primo record non vedo +
l'articolo scelto.
Questo è perchè,  con l'evento DopoAggiornamento della cboMateriaP,
lui fa il requery di cboArticolo.... ma così  mi modifica i record
salvati  precedentemente.
Cosa dovrei fare?
Grazie x qualsiasi suggerimento, e buon lavoro
Samantha