Il mio report si costruisce in maniera dinamica. L'utente specifica su una form quali campi vuole vedere spuntando delle apposite chekbox e io costruisco la select in base a queste scelte.
Una volta eseguita la select assegnandola ad un recordset di ADO, associo il tutto al report che si apre visualizzando i campi specificati.
Il problema è che sul report ho inserito dei controlli non associati ad alcun campo, cosa che dovrei fare da codice, ma non ci riesco.
Vi posto un po' di codice, così mi posso spiegare meglio:
codice:
Dim rpReport As New crReport
Public pbStrFiltro As String
'variabili che setto dal form delle scelte dell'utente e
che mi servono per sapere quali campi dovrò visualizzare 
nel report
Public vediTitolo As Integer, vediTitoloPostale As Integer
Public vediQualifica As Integer, vediSettore As Integer
Public vediProvenienza As Integer
Public vediAreaEnte As Integer, vediIndirizzi As Integer
Public vediRecapiti As Integer, vediEventi As Integer
Public vediFirmatari As Integer, vediAcquisitore As Integer

Private Sub Form_Load()

    Screen.MousePointer = vbHourglass

    Dim rsRs As New ADODB.Recordset
    Dim strSql As String
    'eseguo la storedprocedure origine dei dati 
    passandole il filtro creato nel form delle opzioni            
    strSql = "Exec sp_ElencoNominativiStampa " & pbStrFiltro
                
    rsRs.Open strSql, miaConn, 1, 3
    rpReport.Database.SetDataSource rsRs
                
    PosizionaControlli
                
    rsRs.Close
    Set rsRs = Nothing
                        
    CRViewer91.ReportSource = rpReport
    CRViewer91.ViewReport
        
    Screen.MousePointer = vbDefault

End Sub

Sub PosizionaControlli()
        
     Dim lngLeft As Long

     If vediTitolo = 0 Then
           rpReport.txtTitolo.Suppress = True
           rpReport.Titolo.Suppress = True
        Else
           rpReport.txtTitolo.Left = lngLeft
           rpReport.Titolo.Left = lngLeft
           lngLeft = lngLeft + rpReport.Titolo.Width
     End If
            
     If vediTitoloPostale = 0 Then
            rpReport.txtTitoloPostale.Suppress = True
            rpReport.TitoloPostale.Suppress = True
        Else
            rpReport.txtTitoloPostale.Left = lngLeft
            rpReport.TitoloPostale.Left = lngLeft
            lngLeft = lngLeft + rpReport.TitoloPostale.Width
     End If
            
     rpReport.Nominativo.Left = lngLeft
     rpReport.txtNominativo.Left = lngLeft
     lngLeft = lngLeft + rpReport.Nominativo.Width
            
     If vediAcquisitore = 0 Then
            rpReport.txtAcquisitore.Suppress = True
            rpReport.Acquisitore.Suppress = True
        Else
            rpReport.txtAcquisitore.Left = lngLeft
            rpReport.Acquisitore.Left = lngLeft
            lngLeft = lngLeft + rpReport.Acquisitore.Width
     End If
            
     If vediSettore = 0 Then
            rpReport.txtSettore.Suppress = True
            rpReport.Settore.Suppress = True
        Else
            rpReport.txtSettore.Left = lngLeft
            rpReport.Settore.Left = lngLeft
            lngLeft = lngLeft + rpReport.Settore.Width
     End If
            
     If vediQualifica = 0 Then
            rpReport.txtQualifica.Suppress = True
            rpReport.Qualifica.Suppress = True
        Else
            rpReport.txtQualifica.Left = lngLeft
            rpReport.Qualifica.Left = lngLeft
            lngLeft = lngLeft + rpReport.Qualifica.Width
     End If
            
     If vediProvenienza = 0 Then
             rpReport.txtProvenienza.Suppress = True
             rpReport.Provenienza.Suppress = True
        Else
             rpReport.txtProvenienza.Left = lngLeft
             rpReport.Provenienza.Left = lngLeft
             lngLeft = lngLeft + rpReport.Provenienza.Width
     End If
            
     If vediAreaEnte = 0 Then
             rpReport.txtAreaEnte.Suppress = True
             rpReport.AreaEnte.Suppress = True
        Else
             rpReport.txtAreaEnte.Left = lngLeft
             rpReport.AreaEnte.Left = lngLeft
             lngLeft = lngLeft + rpReport.AreaEnte.Width
     End If

'controllo se girare il report in base a lngLeft
     If lngLeft > 21 Then 
             rpReport.PaperOrientation = crLandscape
        Else
             rpReport.PaperOrientation = crPortrait
     End If
End Sub
nell sub PosizionaControlli rendo visibili solo i dati scelti dall'utente.

Tutti i campi sono facoltativi, tranne il Nominativo che è obbligatorio e quindi non viene scelto dall'utente.
Il problema è: come faccio a dire ai campi del report(Titolo, TitoloPostale, Qualifica, Provenienza,ecc...) a quale campo del recordset derivante dalla storedprocedure devono legarsi?

spero di essere stata chiara

grazie a tutti