Associare Recordset a sottomaschera da altra sottomaschera

di eddy1973 il
4 risposte
Buonasera. Avrei necessità di un consiglio.
Ho la seguente situazione Form1 con SubFom1 e poi Form2 con SubForm2.
Avendo caricato la Form1 con recordset associato alla sottomaschera SubForm2 vorrei che attraverso un pulsante si possa lanciare la Form2 con SubForm2, il cui recordset sia lo stesso della SubForm1, magari dopo aver manipolato il recordset applicato, ad esempio, delle azioni di filtro.
Allo stato attuale utilizzo il seguente metodo:
Dim set_ID As String
Dim rst As Recordset
Dim frm As Form
Dim pos_record As Long

Set rst = Form_SubForm1.Recordset
With rst

  pos_record = .txtID

  rst.MoveFirst
  Do Until rst.EOF
       set_ID = set_ID & "," & rst!ID
       rst.MoveNext
  Loop

End With

DoCmd.OpenForm "Form2", acNormal
Set frm = SubForm2
With frm
    .Filter = "ID IN (" & Mid(set_ID, 2, Len(set_ID)) & ")"
    .FilterOn = True
End With
esiste un metodo alternativo e/o più efficiente?

Grazie.

4 Risposte

  • Io non ho capito NULLA, ma quello che fai ha proprio un sapore del contorto inutile, probabilmente manca a me qualche info..!

    Se la Sf2 deve avere gli stessi dati della Sf1 cosa conta quella cosa che fai...?
    Hanno Origine Record differente...? Non possono avere la stessa Origine, non può essere la STESSA Sf usata in 2 Form...?

    Quanto dici è molto bizzarro e poco lineare.
  • La sottomaschera subform1 riporta pochi record poiché molto spazio e' occupato da controlli. La subform2 ha lo scopo di offrire una espansione del recordset della subform1. Pertanto anche se l'origine della query e' la stessa, può capitare che i dati da visualizzare nella subform2 siano quelli della subform2, ma dopo una azione di filtro.
  • Allora passa direttamente la proprietà Recordset.
    
    Set Sf2.Recordset=Sf1.Recordset
    Sistema la sintassi...
  • Si grazie.
Devi accedere o registrarti per scrivere nel forum
4 risposte