Newsgroup: it.comp.appl.access
Titolo: Scansione record della sottomaschera

Ho una maschera principale mskDoc con una sottomaschera smkConsegne con
relazione uno a molti, dovrei fare un'operazione una tantum che coinvolge i
record della tabella tabDoc sottostante a mskDoc e i record corrispondenti
della tabella tabConsegne sottostante alla smkConsegne. MskDoc e smkConsegne
sono collegate tramite il contatore IdDoc di tabDoc.
Uso un pulsante "Record" di mskDoc:
Sub cmdRecord_Click()
  Set rsttemp = Me.RecordsetClone
  With rsttemp
   Do Until .EOF
' riferisco i campi di tabDoc come .Fields("NomeCampo")
' adesso ci vuole un ciclo interno per far passare tutti i record di
tabConsegne associati. Non riesco a impostare il ciclo e inoltre non riesco
a riferire i campi di tabConsegne. Ho provato con
.smkConsegne.Controls("NomeControllo") e con
.smkConsegne.Fields("NomeCampo") ma mi da' errore.
    .MoveNext
   Loop
   .Close
  End With
  Set rsttemp = Nothing
End Sub
qu mi aiuta?
il barbi


Vale lo stesso che per il tuo messaggio identico in mpioa.
Prima pensavo che forse sarebbe un problema con il mio italiano,
ma visto che non ricevi niente risposta...
Per me non ï¿œ chiaro quali record vuoi avere. Tutti i record della prima
tabella, tutti i record della seconda tabella, solo i record che si trovano
nella maschera...? Per di piï¿œ non scrivi cosa vuoi fare con i record,
leggere o scrivere.
-- 
cu
Karl
*********
Access FAQ: 
www.donkarl.com/it
 


mettiamola cosi': ho aperto la maschera mskDoc che contiene una 
sottomaschera smkConsegne, manualmente dovrei:
- cercare il record della sottomaschera che ha un certo valore del campo di 
connessione IdDoc (se proprio interessa e' quello di una maschera di ricerca 
mskRicercaDoc che ho usato in precedenza per filtrare mskDoc)
- in base al valore di un controllo txtFlag della sottomaschera eseguire 
certe operazioni dentro e fuori mskDoc che ho gia' pronte e testate
Cioe' non riesco banalmente a scrivere le cose e le operazioni di cui sto 
parlando. Prima di provare col RecordsetClone ho anche provato a lavorare in 
VBA direttamente sulla maschera (Me), cosi' come farei manualmente, ma non 
riesco a fare alcune cose:
- passare da un record di mskDoc al successivo, qualcosa come Me.movenext 
(che non c'e')
- il controllo della smkConsegne che mi interessa riesco a scriverlo come:
Me.smkConsegne.Controls("txtFlag") ma non riesco a far passare tutti i 
record di smkConsegne per scegliere quello che mi interessa (che ha quel 
certo valore di IdDoc)
- in base a dei test su txtFlag dovrei modificare alcuni campi di mskDoc ma 
le ipotetiche Me.edit, Me.update non esistono
- inoltre mi servirebbero anche i numeri d'ordine (OrdinalPosition) di 
alcuni campi sottostanti ad altrettanti controlli di mskDoc, ma se scrivo:
Me.NomeCampo.OrdinalPosition mi da' errore, quello che c'e' e' solo:
Me.NomeControllo.TabIndex, che mi potrebbe andar bene, solo che non mi 
accetta: Me.Controls(valore di TabIndex) sebbene nell'Help ho visto che 
dovrebbe essere permesso.
A questo punto ho pensato di lavorare su Me.RecordsetClone e li' riesco a 
fare gli edit-update e ovviamente riesco a fare MoveNext e ho anche 
OrdinalPosition ma mi rimane di scoprire come far passare i record della 
smkConsegne associati al record corrente di mskDoc. Forse dovrei aprire la 
tabConsegne associata a smkConsegne e fare una seek? ma mi sembra 
inefficiente cercare in tutta la tabella quando a ogni record di mskDoc sono 
associati al max 5 o 6 record di smkConsegne
spero di essermi spiegato...
il barbi