Newsgroup: it.comp.appl.access
Titolo: errore 2191; Impossibile impostare la proprietà Origine record............

ciao a tutti
 
da una maschera popup apro un report con sottoreport,
dove il sottoreport contiene indirizzi e-mail:
con questo codice:
 
Me.Visible = False
DoCmd.OpenReport "Rpt_MioReport", acViewPreview, "", "", acDialog
DoCmd.Close acForm, Me.Name
 
su apertura del sottoreport ho inserito questo codice:
 
*****************
Dim RsAssegnato As Boolean
 
Private Sub Report_Open(Cancel As Integer)
 
If RsAssegnato = True Then Exit Sub
 
    Dim strSQL As String
 
    If givemenamecontrol = "Report A" Then
        strSQL = "SELECT " _
          & "IdEmailFornitore, " _
          & "IdFornitore, " _
          & "EmailFornitore, " _
          & "Invio_a As InvioDoc, " _
          & "InvA " _
          & "FROM TbEmailFornitori " _
          & "ORDER BY InvA, EmailFornitore"
        Me.Report.RecordSource = strSQL
 
    ElseIf givemenamecontrol = "Report B" Then
        strSQL = "SELECT " _
          & "IdEmailFornitore, " _
          & "IdFornitore, " _
          & "EmailFornitore, " _
          & "Invio_b As InvioDoc, " _
          & "InvA1 As InvA " _
          & "FROM TbEmailFornitori " _
          & "ORDER BY InvA1, EmailFornitore"
        Me.Report.RecordSource = strSQL  <----------------- qui ho l'errore
 
    End If
 
End Sub
 
 
Ora dalla maschera popup ho la possibilità di aprire quanti report voglio,
con un filtro nella query del report;
ma ho l'errore 2191
Impossibile impostare la proprietà Origine record in anteprima di stampa o dopo l'avvio della stampa.
 
Se invece creo due sottoreport con le due query, l errore non l'ho;
perchè?
dove sbaglio?
 
Grazie

Se apri il Report con Sottoreport in modalità ANTEPRIMA, quel codice NON PUO' FUNZIONARE in quanto la modifica del RECORDSOURCE dei SUBREPORT non è gestibile in modalità ANTEPRIMA.
 
Leggi questo mio recente POST:
https://groups.google.com/forum/?hl=it#!topic/it.comp.appl.access/QtHoNY-e4a8
 
 
La possibilità, nel tuo caso, è di creare una Query e basare il SubReport su quella... di conseguenza MODIFICARE dalla Form POPUP il predicato SQL usando QueryDEFS...
 
@Alex
 

 ...
 
Dipende. Se il sottoreport NON è legato al report principale (cioè 
Collega campi secondari/master sono vuoti) si puo modificare il 
RecordSource nell'evento Su Apertura del sottoreport. Altrimenti no.
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 


ciao Karl
sono collegati per idfornitore


ciao Alex
non l'ho mai utilizzato querydef
ora ci provo
 
 
 


ho..
 
     If givemenamecontrol = "Report A" Then 
 
        Dim qdf As DAO.QueryDef
        Dim db As DAO.Database
 
        Set qdf = db.QueryDefs("SELECT " _
        & "IdEmailFornitore, " _
        & "IdFornitore, " _
        & "EmailFornitore, " _
        & "Invio_a As InvioDoc, " _
        & "InvA " _
        & "FROM TbEmailFornitori " _
        & "ORDER BY EmailFornitore")
 
        qdf.SQL = "SELECT " _
          & "IdEmailFornitore, " _
          & "IdFornitore, " _
          & "EmailFornitore, " _
          & "Invio_b As InvioDoc, " _
          & "InvA1 As InvA " _
          & "FROM TbEmailFornitori " _
          & "ORDER BY InvA1, EmailFornitore"
 
    End If
 
ora come faccio ad attribuirla al sottoreport?

Come fai ad assegnare ad un Report un'Origine Records...?
Apri la ComboBox con l'elenco e selezioni la QUERY...
 
Attenzione al codice che hai scritto... non va bene..!
 
DbEngine(0)(0).QueryDefs("NomeQuery").SQL="......"
 
@Alex

 Karl
 
Si corretto Karl, ma leggendo il contesto di quello che ha esposto era abbastanza scontato fossero collegati, in ogni caso è giusto specificarlo.
 
@Alex


ciao Alex e grazie,
il report ora funziona.
 
Per quanto riguarda la sottomaschera
su apertura della stessa ho inserito:
 
    If givemenamecontrol = "Report A" Then
        strSQL = "SELECT " _
          & "IdEmailFornitore, " _
          & "IdFornitore, " _
          & "EmailFornitore, " _
          & "Invio_a As InvioDoc, " _
          & "InvA " _
          & "FROM TbEmailFornitori " _
          & "ORDER BY EmailFornitore"
        Me.RecordSource = strSQL
    Else
        strSQL = "SELECT " _
          & "IdEmailFornitore, " _
          & "IdFornitore, " _
          & "EmailFornitore, " _
          & "Invio_b As InvioDoc, " _
          & "InvA1 As InvA " _
          & "FROM TbEmailFornitori " _
          & "ORDER BY EmailFornitore"
        Me.RecordSource = strSQL
 
    End If