Newsgroup: it.comp.appl.access
Titolo: Report filtrati

    Ciao a tutti, ho seguito le indicazioni di 
sitocomune.com
 per
visualizzare un'anteprima di stampa di un report filtrato ma non funziona...
    In pratica io ho semplicemente una tabella e un report che mi fa
visualizzare tutti i record in ordine di ID, vorrei pero' fare una ricerca
per nome e visualizzare solo i report che soddisfano le mie caratteristiche.
Come posso fare?
grazie
p.s. non sono un granche' con vba :p

 wrote in message
news:fPPQ7.2286$7v6....@twister1.libero.it...

L'esempio del SC che hai utilizzato credo sia quello di ROBERTO, ma si basa
se non ricordo male su i dati provenienti da una FORM(Filtrata)....!
Se vuoi effettuare un filtro dati solo per visualizzare un Report la cosa
è differente...!
Puoi utilizzare una Form di Controlli non associati e una QRY.
NElla QRY inserisci nella riga Criteri il riferimento ai CONTROLLI della
form.
Il REPORT avrà come origine dati la QRY e non la Tabella, e, su evento
dopo aggiornamento dei controlli esegui il REQUERY del REPORT.
@Alex 
-- 
Posted from  [62.98.108.160] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Io mi riferisco a questo:
(D)
Come ottenere un report pronto per la stampa con i record filtrati da una
maschera.
(R)
Ingredienti: Due pulsanti, una casella di testo non associata e qualche
linea di codice.
Inserire il codice seguente a fronte dell'evento su clic di uno dei
pulsanti; servirą per filtrare i dati in base alla parola chiave scritta
nella casella di testo qui chiamata "MioControlloNonAssociato" il controllo
dove andrą a pescare il dato cercato č "MioControllo"
DoCmd.ApplyFilter "",
"[MioControllo]=[Forms]![MiaMaschera]![MioControlloNonAssociato]"
If IsNull(Numero.Value) Then
   MsgBox ("Non esistono Record!"), vbOKOnly
   DoCmd.ShowAllRecords
   Me.Seleziona.SetFocus
   Exit Sub
End If
Inserire il codice seguente a fronte dell'evento su clic del secondo
pulsante:
Dim strFilter As String
If Me.FilterOn Then
   strFilter = Me.Filter
End If
DoCmd.OpenReport ReportName:="MIOREPORT", View:=acPreview,
WhereCondition:=strFilter
ExitHere:
   Exit Sub
HandleErrors:
   Select Case Err.Number
      Case 2501
         MsgBox "There are no rows to display!"
      Case Else
         MsgBox Err.Description
   End Select
   Resume ExitHere

 maschera.
Questo codice che hai POSTATO è perfetto, solo che serve una FORM(Maschera) che
abbia la stessa fonte dati del REPORT, sulla quale applichi il FILTRO indicato
dai CONTROLLI non ASSOCIATI, e il PULSANTE che apre il REPORT non fa altro che
trasferire il FILTRO sul REPORT.
PROBLEMA:
Se non hai la FORM di base non può funzionare...!!!
@ALEX
-- 
Posted from  [146.133.1.30] 


 Se non hai la FORM di base non può funzionare...!!!
ehm... scusa se rompo ancora :-p
purtroppo non sono pratico di access ne' di vba :-p quindi ti scriverei qui
come e' fatto il database che ho creato [mannaggia a me quando ho detto di
si a mio zio che mi ha chiesto di farne uno]:
Ho una maschera [M_GestPers] che uso per inserire i dati in una tabella
[T_GestPers] e poi ho un report [R_GestPers] che mi fa l'anteprima di stampa
di tutti i record. Fin qui sono riuscito ad andare da solo seguendo la guida
in linea e mi va bene.
Ora io vorrei fare l'anteprima di stampa solo di alcuni record ma mantenendo
le stesse impostazioni del report. Ho creato un'altra maschera [M_IntCog]
con una casella di testo non associata [IntCog] e due pulsanti ai quali ho
applicato il codice come spiegato nel post precedente. Io nella casella di
testo inserisco un cognome e lui dovrebbe visualizzarmi i report che
contengono lo stesso cognome giusto?
grazie

 grazie
Non proprio, o meglio si, ma il risultato passa per un metodo differente:
è la FORM(M_GestPers) che viene FILTRATA, il REPORT viene aperto utilizzando
nella condizione WHERE i criteri di Filtro della FORM.
In sostanza il Risultato è quello che serve a te...!
@Alex


 In sostanza il Risultato è quello che serve a te...!
ok, ma allora credo che ci sia qualcosa che non va :-(, perche' io ho
modificato il record come scritto in calce al post e se premo il primo
pulsante viene fuori il seguente errore:
"Errore di compilazione, impossibile trovare il metodo o il membro dei dati"
e mi evidenzia nel codice
.Seleziona
Se premo il secondo pulsante l'errore e' "di sintassi" e mi evidenzia
DoCmd.OpenReport ReportName:="R_GestPers", View:=acPreview,
mi daresti una mano a compilarlo? te ne sarei grato.
p.s. ho access2000
Private Sub Comando5_Click()
DoCmd.ApplyFilter "", "[Cognome]=[Forms]![M_IntCog]![IntCog]"
If IsNull(Numero.Value) Then
   MsgBox ("Non esistono Record!"), vbOKOnly
   DoCmd.ShowAllRecords
   Me.Seleziona.SetFocus
   Exit Sub
End If
End Sub
Private Sub comando4_Click()
Dim strFilter As String
If Me.FilterOn Then
   strFilter = Me.Filter
End If
DoCmd.OpenReport ReportName:="R_GestPers", View:=acPreview,
WhereCondition:=strFilter
ExitHere:
   Exit Sub
HandleErrors:
   Select Case Err.Number
      Case 2501
         MsgBox "There are no rows to display!"
      Case Else
         MsgBox Err.Description
   End Select
   Resume ExitHere
End Sub