--------------------------------
Inviato via http://usenet.libero.it
Se la query a campi incrociati si chiama Query1.
Il tuo report deve avere Query1 come origine record.
Se il numero massimo di colonne della query è 10, nel corpo del report
inserisci 10 caselle di testo non associate chiamate Controllo1, Controllo2
... Controllo10; fai sormontare i 10 controlli da altrettante etichette
chiamate Etichetta1, Etichetta2 ... Etichetta10; dichiarati sia i 10
controlli che le 10 etichette non visibili.
A fronte dell'evento su apertura del tuo report genera il seguente codice
VBA:
Private Sub Report_Open(Cancel As Integer)
Dim rst As Recordset
Dim CMP As Field
Dim Conta As Integer
Set rst = CurrentDb.OpenRecordset("Query1")
Conta = 1
For Each CMP In rst.Fields
Me("Controllo" & Trim(Conta)).ControlSource = CMP.Name
Me("Controllo" & Trim(Conta)).Visible = True
Me("Etichetta" & Trim(Conta)).Caption = CMP.Name
Me("Etichetta" & Trim(Conta)),Visible = True
Conta = Conta + 1
Next
Set rst = Nothing
End Sub
Dovrebbe funzionare.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------
ok, c'è un altro problemino, cioè la query è parametrica e prende i valori
da due controlli di una form. quindi a run-time l'istruzione
Set rst = CurrentDb.OpenRecordset("query1")
genera un errore "parametri insufficienti. previsto 2", nonostante la form
sia aperta e con i valori inseriti...
Per vedere come si apre un recordset su una query parametrica, vai sul Sito
Comune (link qui sotto) e nella Sezione Queries leggi la FAQ di Federico
Luciani intitolata "Aprire una query parametrica da codice VBA".