Condividi tramite

report da query a campi incrociati con passaggio parametro da maschera

Anonimo
2014-10-21T05:24:54+00:00

Salve a tutti,

ho un problema con la scrittura di un codice per aprire e compilare un report da una query a campi incrociati con un parametro.

Il parametro è passato alla query da una maschera (datefrm)

la query (weekptqry) nel campo giorno ha il seguente parametro:

Between ([Forms]![Datefrm]![Datainizio]) And ([Forms]![datefrm]![Datainizio]+6)

(immetto solo la data di inzio e automaticamente mi carica anche i dati dei sei giorni successivi)

sulla proprietà su apertura del report in questione (ptrpt) ho scritto ilseguente codice:

Private Sub Report_Open(Cancel As Integer)

Me.RecordSource = "weekptqry"

Dim qdf As DAO.QueryDef

Dim fld As DAO.Field

Dim rst As DAO.Recordset

Dim Ind As Long

  Set qdf = CurrentDb().QueryDefs("weekptqry")

    qdf.Parameters![Forms!datefrm!Datainizio] = Forms!datefrm!Datainizio

    Set rst = qdf.OpenRecordset

For Ind = 0 To rst.Fields.Count - 1

Me("Testo" & Trim(Ind)).ControlSource = rst.Fields(Ind).Name

Me("Etichetta" & Trim(Ind)).Caption = rst.Fields(Ind).Name

Next Ind

Set rst = Nothing

End Sub

mi riporta il seguente errore:

parametri insufficienti: previsto 1

e in altre occasioni : impossibile trovare la maschera datefrm

grazie

Microsoft 365 e Office | Accesso | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

5 risposte

Ordina per: Più utili
  1. Anonimo
    2014-10-23T13:31:44+00:00

    grazie dell'aiuto.. purtroppo non funziona... ho provato nei vari modi suggeriti ma il parametro non lo legge..... funziona solo se nel campo giorno della query tolgo il parametro e metto Between Date() And Date()+6....

    la cosa strana è che nella copia precedente quel codice funziona ... ma la query a campi incrociati di riferimento era molto diversa.

    Inoltre nella finestra immediata quando incollo il codice qdf.Parameters (0) oppure qdf. Parameters (Forms!datefrm!Datainizio) mi dice : oggetto non trovato.

    mentre il riferimento al controllo della maschera me lo restituisce corretto mettendomi ogni volta la data che di volta in volta  inserisco nel controllo maschera come data inizio.

    ho anche provato ad aggiungere dao3.6 ma mi dice che è già presente.

    grazie per l' aiuto e la pazienza!

    sara

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-10-21T14:26:13+00:00

    sto provando nei vari modi suggeriti e poi farò sapere...

    ho un dubbio

    in un backup di questo database, report maschera e query funzionano con il codice che ho postato all'inizio.

    poi ho disinstallato e reinstallato office 2010 .

    poi ho apportato delle modifiche alla query.

    prima la query caricava i risultati da una query di unione

    adesso direttamente da tabelle collegate.

    ho anche eliminato nel report l'origine dati alla query in questione e poi collegato nuovamente il report.

    ma il report non funziona più in questa nuova copia del db.

    forse le cose sono collegate?

    grazie!

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-10-21T08:34:12+00:00

    Ciao,

    visto che usi la query da codice, io proverei a cambiare il nome del parametro

    Cioè la condizione della query diventa:

    Between ([Datainizio]) And ([Datainizio]+6)

    poi nel codice:

    qdf.Parameters(0) = Forms!datefrm!Datainizio

    Se neanche così funziona e gli manca sempre un parametro , allora probabilmente non capisce [DataInizio]+6 e quindi  proverei nella query:

    Between [Datainizio]) And [DataFine]

    e nel codice

    qdf.Parameters(0) = Forms!datefrm!Datainizio

    qdf.Parameters(1) = Forms!datefrm!Datainizio +6

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2014-10-21T07:55:41+00:00

    grazie dell'aiuto! purtroppo non funziona.

    nella query era già inserito nella griglia parametri (tra l'altro all'inizio la query funzionava solo se al posto del form mettevo maschere, poi dopo vari tentativi è riuscita ad aprirsi con Forms).

    nel debug della riga

    qdf.Parameters![Forms!datefrm!Datainizio] = Forms!datefrm!Datainizio

    il Forms!datefrm!Datainizio lo trova correttamente (tanto che mi restituisce la data che inserisco nella maschera datefrm

    mentre nel

    qdf.Parameters![Forms!datefrm!Datainizio

    mi dice elemento non trovato

    lo stesso se lo sostituisco con

    qdf.parameters(0)

    .... grazie..

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2014-10-21T07:08:21+00:00

    Ciao,

    prova qdef.parameters(0) = Forms!datefrm!Datainizio

    e per maggior sicurezza definisci  nella query il tipo di dato del Parametro , click con Tasto destro del mouse in Visualizza struttura della Query, seleziona Parametri e inserisci nella  griglia che appare

    [Forms]![Datefrm]![Datainizio]    Data

    La risposta è stata utile?

    0 commenti Nessun commento