Newsgroup: it.comp.appl.access
Titolo: eliminare i record in una sottomaschera

Clicco su un pulsante A, e in una casella di riepilogo ho dei valori: un
elenco_A
Ad ogni valore che clicco, si aggiunge una riga ad una sottomaschera,
praticamente
sto aggiungendo i record alla tabella secondaria in base.
Pero' se clicco sul pulsante B (mi compare un elenco_B), devo fare in
modo che
nella sottomaschera siano cancellati tutti i record sino a quel momento
creati e questo
al semplice click sul pulsante:
è possibile farlo?
al momento se clicco sull' elenco_B mi si vanno ad aggiungere i record
sulla sottomaschera
a quelli già esistenti
si deve fare con del codice che in qualche modo si va a vedere sulla
tabella secondaria
i record già inseriti oppure con un comando che agisce semplicemente
sulla sottomaschera:
cioè solo quello che al momento si trova dentro la sottomaschera viene
cancellato
(e se esiste tale comando: è affidabile quanto quello che eventualmente
si dovrebbe fare
con del codice che va a trovare i record secondari in base al ecord
primario?)
graze 1003
il 1004 e' in fabbricazione ?  :-) (stampi già richiesti)
per vs. aiuto la fabbrica dovrebbe lavorare full-time full-year

 ha scritto nel messaggio
news:3DFB5F82...@lycos.it...

Anche se ci ho messa tanta attenzione nel leggere questo tuo messaggio, mi
sono perso e non ho capito cosa vuoi sapere.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Faccio un esempio d'uso, cosi' mi spiego meglio
Ho una maschera (master) su cui ho una casella nome-fornitore,
ed una sottomaschera (secondaria) materiale-inviato
In base al nome-fornitore, inserisco nella sottomaschera materiale-inviato
gli articoli che sono stati spediti da quel fornitore.
Tali articoli li scelgo da un elenco (casella di riepilogo) che a sua volta e'
scelto tra un gruppo di elenchi,
tramite un pulsante di opzione
Se mi trovo sulla ditta cartoleria-X, allora scelgo l'opzione1
Elenco_Cancelleria e quindi poi
clicco sulle righe di tale elenco in modo che ogni singolo articolo inviato va
man mano a riempire la sottomaschera
materiale-inviato.
Se ho inserito ad esempio 5 articoli dentro la sottomaschera
materiali-inviati, qual'è il codice che al
click su di un pulsante cancella, nella sottomaschera mi toglie i 5 record
inseriti. Diciamo che voglio cancellare
i 5 record tutti in un colpo.
Poi una volta capito il codice, lo applico al clik su una qualsiasi opzione,
poiche' se cambio elenco vuol dire che mi sono sbagliato ad inserire i
materiali;
in questo caso  pero' dovrei aggiungere una riga prima del codice cancella i
record nella sottomaschera e dovrebbe essere del tipo:
se nella sottomaschera non c'è nessun record è inutile eseguire il codice
che'cancella i record.
quindi i codici sono 2
uno che cancella tutti i record della sotttomaschera
e uno che conta quanti record ci sono dentro
ai vari If ci penso io (mi prendo il lavoro piu' leggero :-) )

 ha scritto nel messaggio
news:3DFB97D3...@lycos.it...

Se la chiave primaria della tabella che è origine record della maschera
master si chiama IDFornitore.
Se la tabella che è origine record della sottomaschera si chiama Materiali
ed anche lei contiene un campo chiamato IDFornitore che rappresenta la sua
chiave esterna e quindi la mette in relazione uno_a_molti con la tabella
precedente.
Se il controllo sottomaschera che contiene la sottomaschera si chiama
SubFormMateriali.
A fronte dell'evento "Su clic" del pulsante di comando, contenuto nella
maschera principale e pigiando il quale vuoi cancellare tutti i record
visualizzati in quel momento nella sottomaschera, genera il seguente codice
VBA:
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM Materiali " _
& "WHERE IDFornitore= " & Me!IDFornitore & ";"
DoCmd.SetWarnings True
Me!SubFormMateriali.Requery
Non è necessario verificare se la sottomaschera contiene o meno dei record:
se ci sono li cancella, altrimenti la query di cancellazione farà un giro a
vuoto, ma non produrrà alcun errore.
Inoltre non sono necessarie funzioni If (quindi resti senza lavoro ;-) ); la
selezione dei record da cancellare viene effettuata  dalla proposizione
WHERE della query di cancellazione contenuta nella stringa SQL di cui sopra.
