VIsualizzare recordset di una form "foglio dati"

di Anonimizzato29996 il
15 risposte
Salve a tutti,
ho creato una maschera in formato "foglio dati" e per questo posso fare le varie query con le opzioni poste sull'intestazione colonne (ORdina dalla A lla Z...ordina dalla Z alla A .. "contine la stringa " ..." diverso da" ecc....)
Il problema è che non posso lanciare il relativo report in base alla query che ho effettuato con le opzioni di cui sopra.
La soluzione sarebbe quella di captare il recordset della query fatta con le opzioni di cui sopra e darlo in pasto al mio report.

Sapete come fare ?

Grazie

15 Risposte

  • Non sono sicuro della risposta...Quando tu vai a smanettare con i filtri che hai indicato, nella proprietà Filter della maschera si è costruita una stringa. Con un piccolo codice VBA, quando vai ad aprire il report (evento "Su apertura" o "Su caricamento"...oppure "Su filtro" o "Su applicazione filtro"...boh...fai un po' di prove...), imposta la proprietà Filter del report con la stessa stringa del Filter della maschera. Probabilmente devi anche aprire il FilterOn=True.
    Sono stato un po' volgare nell'esposizione, ma credo che su questa via stia la logica da mettere in campo.
  • Grazie100000

    ho fatto come mi hai detto!!!! risolto!!!
  • Ho cantato vittoria troppo presto.. mi dice che non è giustop il filtro che gli invio
  • Mostra il codice VBA.
  • Ti spiego... non è il codice errato ma la stringa che questo codice passa al report.
    Dim fff As String
    fff = Form_SottomArc.Filter
    DoCmd.OpenReport "archivio", acViewPreview, , fff

    il filtro che il codice passa ala report è questo ... sottomarc.reparto="u200" invece dovrebbe passare reparto='u200'
  • Ho quasi risolto con il replace degli apici doppi con il ' e il nome form con il nullo... ti aggiorno se avrò altri problemi..intanto grazie
  • Per sfruttare l'argomento Condizione WHERE di OpenReport occorre la sintassi adeguata. Non chiarisci se il filtro che vuoi passare è "relativamente semplice", in questo caso puoi utilizzare Condizione WHERE, quindi l'adeguata sintassi con apici singoli.
    Invece io ho capito che tu, volta per volta, hai un filtro sempre diverso/variegato/complesso a seconda dello smanettamento precedente.
    Ho fatto un test così, dalla maschera faccio un clic di pulsante e passo una stringa in OpenArgs:
    Private Sub ReportEventi_Click()
    DoCmd.OpenReport "Eventi", acViewPreview, , , , "FiltroMaschera"
    End Sub
    Su caricamento del report ho scritto:
    Private Sub Report_Load()
    If Me.OpenArgs = "FiltroMaschera" Then
        Me.FilterOn = True
        Me.Filter = Forms!Eventi.Filter
    End If
    End Sub
    A me ha funzionato.
  • Ti ringrazio ho risolto con il replace ma ora mi si presenta un problema più serio...
    in modo del tutto random quando smanetto sulle opzioni in testa alle colonne per fare le query mi si chiude la form e anche il file di access.

    questa è dura...perche senza la form aperta in modalità "foglio dati" non posso fare le query complesse.

    E' un baco di access? è il mio accdb access che è sputtanato? le sto provando tutte ho anche creato una semplice form in modalità foglio dati ma il pèroblema mi si presenta lo stesso in modo random...

    ora provo a togliere la formattazione condizionale su 2 celle ma dubito che basterà
  • Puoi mostrare il codice completo?
    Hai provato la mia soluzione? Io ho ipotizzato il clic di un pulsante (possibile solo su maschera singola o maschera continua), ma se tu sei in maschera foglio dati, quale evento hai scatenato?
    La formattazione condizionale non centra nulla con il codice VBA.
    Fai attenzione quando scrivi codice:
    - clicca in basso al rettangolo dove si scrivono i messaggi sul tasto "Editor completo & Anteprima"
    - il codice VBA selezionalo tutto, poi clicca sul tasto in alto </> per farlo apparire con i tipici caratteri monotype più familiari ai programmatori.
  • No forse non mi sono spiegato.
    non è questione di codice... il mio primo quesito me lo hai risolto ma (già da prima che tu mi scrivessi) si presenta il problema che ti ho scirtto... ho tolto tutto il codice che avevo creato nella form precendente e creato una nuova form senza codice da aprire come foglio dati per vedere se il problema si ripresentava ma non è servito a nulla

    quando smanetto sulle opzioni di query in testa alle colonne ..dopo un po mi si chiude il progetto access
  • Non voglio cantar vittoria ma forse era proprio la formattazione condizionale che si basava su diversi dcount .
    tolte quelle il problema è fino ad ora scomparso
  • No niente da fare ..
  • Che sia il modo di popolare la sotto form che mi si chiude?

    5 Set rs2 = CurrentDb.OpenRecordset("select * from archivio where archivio <>'' order by item")
    6 Set Forms("arc").Recordset = rs2
    7 Set Me.[SottomArc].Form.Recordset = Me.Recordset
  • Questo è un altro problema? Perchè non apri una nuova discussione?
    E poi

    OsvaldoLaviosa ha scritto:


    Fai attenzione quando scrivi codice:
    - clicca in basso al rettangolo dove si scrivono i messaggi sul tasto "Editor completo & Anteprima"
    - il codice VBA selezionalo tutto, poi clicca sul tasto in alto </> per farlo apparire con i tipici caratteri monotype più familiari ai programmatori.
Devi accedere o registrarti per scrivere nel forum
15 risposte