Newsgroup: it.comp.appl.access
Titolo: Visualizzare date di inizio e fine ricerca in report da filtro maschera

Per A97.
Ho creato una maschera di ricerca collegata ad una query, con la quale
filtro e apro il report con tutti i dati filtrati.
Tutto funziona perfettamente, ma a pié di pagina del report ho inserito una
casella di testo contenente
="Ricerca effettuata dal  " & [Forms]![S:RicVoli]![DataP] & "   Al  " &
[Forms]![S:RicVoli]![DataA], al fine di far visualizzare la "data di
partenza" e la "data di arrivo", purtroppo mi visualizza solamente la data
di partenza e arrivo dei record trovati. Quindi se io effettuo la ricerca
dal 01/01/03 al 30/06/03 e vengono trovati record solo fino al 28/02/03, mi
visualizza
Ricerca effettuata dal  " 01/01/03   Al   30/06/03, mentre io vorrei la data
Minima di ricerca e la data Massima di ricerca.
Ho provato anche con DMin() e DMax e ancora con Dlookup insieme a DMin() e
DMax , ma ho fatto un casotto. Inoltre ho provato anche a mettere la query
anzichè la Form, ma niente è apparso; solo pernacchie.
La necessità di avere le date di ricerca nasce dal fatto di poter verificare
le date anche se i record trovati non coprono tutto il periodo.
Qualcuno può aiutarmi ed eventualmente formulare l'espressione corretta con
Dmin() e Dlookup, perché mi sonperso.
Mille grazie a tutti ..Bruno


Probabilmente ti sei perso da qualche parte. Questa stringa funziona:
="Dal " & [Forms]![ElencoEffetti]![DaData] & " al " &
[Forms]![ElencoEffetti]![DaData]
e di conseguenza anche la tua:
="Ricerca effettuata dal  " & [Forms]![S:RicVoli]![DataP] & "   Al  " &
[Forms]![S:RicVoli]![DataA]
se i riferimenti al form sono corretti.
Ciao
Ever

 con Dmin() e Dlookup, perché mi sonperso.
Ciao, Bruno.
    Se il report produce come risultato i record che effettivamente vuoi
ottenere allora usa la clausola WHERE della query di origine (senza la
parola WHERE) come terzo argomento (criteri) delle funzioni DMin e DMAx.
-- 
    (Facci sapere se ed eventualmente come hai risolto. Grazie.)
Ciao :o)
Maurizio Borrelli, Microsoft MVP Access
--------
?SPQR(C)
 X
--------

 ha scritto nel messaggio
news:L24Db.16671$i_5....@news.edisontel.com...

    Scusami ma non ho ben capito. Puoi farmi un piccolo esempio ?
Intendi anche con un dlookup o come, perché non sono riuscito ad ottenere
altri risultati oltre a quelli summenzionati.
    Inoltre, riprovrando, ho scoperto che dopo aver filtrato i record per un
dato periodo, nella formula mi restituisce, fra quelli filtrati, le date del
"record corrente", cioč quello a vista.
Sarebbe interessante risolvere questo problemaccio, prima che mi vengano i
complessi.
Ciao... Bruno
Grazie .. Bruno

 complessi.
Ciao, Bruno.
    Se la query di origine del report e':
        Query: Query1
        SELECT ..., Data, ...
        FROM Tabella
        WHERE <condizioni>
allora le date min e max saranno:
        DMin("[Data]", "Tabella", "<condizioni>")
        DMax("[Data]", "Tabella", "<condizioni>")
    Probabilmente pero' l'origine del report e' costituita da dati
provenienti da piu' tabelle pertanto potresti ottenere le date limite dalla
stessa query di origine del report:
        DMin("[Data]", "Query1")
        DMax("[Data]", "Query1")
oppure da:
        Query: Query2
        SELECT Data
        FROM ...
        DMin("[Data]", "Query2", "<condizioni>")
        DMax("[Data]", "Query2", "<condizioni>")


 Mille grazie a tutti ..Bruno
 Data1 = Format(Nz([Forms]![S:RicVoli]![DataP], "01/01/1900"), "mm/dd/yy")
 Data2 = Format(Nz([Forms]![S:RicVoli]![DataA]l, Now()), "mm/dd/yy")
  s = s & "[CampoData] Between #" & Data1 & "# And #" & Data2 & "#"
In s hai la struttura corretta da applicare a qualsiasi funzione di
aggregazione sui domini
oppure alla clausola WHERE si un costrutto SQL
Ciao.
@Alex.

 ha scritto nel messaggio
news:ke3Db.93458$AX1.3...@news1.tin.it...

------------------
Ho risolto il problema che mi faceva disperare nel seguente modo:
1) Maschera collegata a query per effettuare il filtro e apertura report
(con scelta da casella combinata non associata) con tutti i record trovati;
2) Codice su pulsante in maschera:
    Private Sub Apri_report_Click()
    Dim str As String
    Dim rptName As String
    If Me.NomeCombo <> "" Then
    str = Me.Filter
    rptName = Me.NomeCombo
    DoCmd.OpenReport rptName, acViewPreview, , wherecondition:=str
    Me.Filter = ""
ElseIf Me.FilterOn Then
    MsgBox ("Riproporre il filtro e selezionare un report da aprire")
    Me.NomeCombo.SetFocus
    Me.Filter = ""
Else
    MsgBox ("Selezionare un report da aprire")
    Me.NomeCombo.SetFocus
    Me.Filter = ""
End If
    Me.Filter = ""
End Sub
-------------------
Private Sub Form_ApplyFilter(Cancel As Integer, ApplyType As Integer)
    Me.DataP1 = DataP ' DataP1 è un campo nascosto in maschera e non
associato
    Me.DataA1 = DataA ' DataA1 è un campo nascosto in maschera e non
associato
End Sub
---------------------------
3) Nel report:
    Nella casella di testo interessata, inserire la seguente espressione:
 =IIf([Forms]![S:RicVoli]![DataP1] Is Not Null;"Ricerca effettuata dal  " &
Mid([Forms]![S:RicVoli]![DataP1];4;10) & "       Al  " &
Mid([Forms]![S:RicVoli]![DataA1];4;10);"Non è stata impostata alcuna data di
ricerca")
Nota: il Mid() è stato usato per troncare le date dagli operatori e
cancelletto, memorizzate temporaneamente in [DataP1] e [DataP2]; esempio
<=#01/01/2003# diventerà 01/01/2003.
Funziona benissimo.
Spero possa essere utile a tutti.
Ciao da Bruno