Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Errore con openrecordset query "parametri insufficienti previsto 1"

  1. #1
    angelo_dima non  in linea Novello
    Salve, non riesco a risolvere il seguente problema: ho una query in cui tra i criteri c' questa condizione:

    [Maschere]![mensile]![datareport]

    ' datareport una data all'interno di una casella di testo in maschera aperta chiamata "mensile"

    la query viene eseguita correttamente infatti gi la utilizzo per un docmd.outputTo, ma se tento di aprirla come recordset con l'istruzione :

    Set rs = db.OpenRecordset("MENS_PFSPDARIVEDERE", 2)

    mi restituisce l'errore di cui al titolo del messaggio

    grazie anticipatamente per la pazienza
    saluti

  2. #2
    Quote Originariamente inviato da angelo_dima Visualizza il messaggio
    Set rs = db.OpenRecordset("MENS_PFSPDARIVEDERE", 2)
    mi restituisce l'errore di cui al titolo del messaggio
    Pubblica l'inter query in SQL

  3. #3
    angelo_dima non  in linea Novello
    eccola

    Mask = Forms![mensile]![datareport]

    SQLSTR = "SELECT [NEW PF1].[Port Tag] AS PORTO, [NEW PF1].[Nome Port Facilty] AS [NOME IMPIANTO],"
    SQLSTR = SQLSTR & "[NEW PF1].id_imo AS UNILOCODE, [NEW PF1].DT_REV_PFSA AS [DATA ULTIMO PFSA], "
    SQLSTR = SQLSTR & "data_ass([DT_APP_PFSP],[DT_REV_PFSP]) AS [DATA ULTIMO PFSP], [NEW PF1].sitmensile AS SITUAZIONE, "
    SQLSTR = SQLSTR & "DateAdd('d',90,[DT_REV_PFSA]) AS [DATA PRESUNTA APPROVAZ NUOVO PFSP] FROM PORTI RIGHT JOIN [NEW PF1] "
    SQLSTR = SQLSTR & "ON PORTI.ID = [NEW PF1].ID_PORTO WHERE [NEW PF1].DT_REV_PFSA Is Not Null And "
    SQLSTR = SQLSTR & "[NEW PF1].DT_REV_PFSA <= " & Mask & " And data_ass([DT_APP_PFSP], [DT_REV_PFSP]) < [NEW PF1]![DT_REV_PFSA] ORDER BY PORTI.IDDIREZ, [NEW PF1].[Port Tag]"

    'Debug.Print db.QueryDefs(SQLSTR).sql

    Set rs = db.OpenRecordset(SQLSTR, 2)

    ora mi da nessun record corrente all'istruzione rs.movefirst

  4. #4
    angelo_dima non  in linea Novello
    la cosa strana che se metto al posto di :

    [NEW PF1].DT_REV_PFSA <= " & Mask ' mask la variabile a cui assegno il valore della data presente in maschera

    nuova istruzione

    [NEW PF1].DT_REV_PFSA <= #31/05/2021#

    funziona bene

    quindi immagino sia dovuto ad un problema di assegnazione della data alla variabile mask

  5. #5
    Sei partito da
    Quote Originariamente inviato da angelo_dima Visualizza il messaggio
    Set rs = db.OpenRecordset("MENS_PFSPDARIVEDERE", 2)
    con errore per mancanza di un parametro e sei passato a
    Quote Originariamente inviato da angelo_dima Visualizza il messaggio
    SQLSTR = "SELECT ...
    Set rs = db.OpenRecordset(SQLSTR, 2)
    che non contiene record.

    1) decidi qual il problema che vuoi affrontare
    2) usa i tag code quando scrivi il codice.

  6. #6
    angelo_dima non  in linea Novello
    ho visto che richimando la query all'interno del openrecordset NON funziona, poi ho provato a inserire la select costruendola con concatenamenti in una variabile SQLSTR, l'errore stava nel confronto con la data che ho corretto inserendo il confronto con clng() cosi:

    [NEW PF1].DT_REV_PFSA <= " & CLng(Mask)

    ora funziona bene ma rimango nel dubbio come mai la stessa istruzione richiamata come query non funzioni

    mi scuso se non sono stato chiaro

    sluti

  7. #7
    L'avatar di @Alex
    @Alex non  in linea Moderatore Globale
    Perch la variabile [Mask] non era valorizzata correttamente, sicuro che non avevi tenuto contro dell'accezione anglosassone della Data che richiede l'inversione gg/mm... cosa che con il cLong(...) fa dal momento che converte in numero...!

    Purtroppo non avendo, come ti avevo suggerito, pubblicato la stringa SQL dopo la costruzione, quindi con la valorizzazione ESPLICITA... si perso del tempo..!!!!
    ℹ️ Leggi di pi su @Alex ...

  8. #8
    angelo_dima non  in linea Novello
    grazie, alla fine ci sono arrivato, ma rimane il dubbio come mai richiamando la query in
    Set rs = db.OpenRecordset(nomequery, 2) non funziona eppure la query eseguendola separatamente funziona bene
    saluti e grazie ancora

  9. #9
    L'avatar di @Alex
    @Alex non  in linea Moderatore Globale
    Quote Originariamente inviato da angelo_dima Visualizza il messaggio
    grazie, alla fine ci sono arrivato, ma rimane il dubbio come mai richiamando la query in
    Set rs = db.OpenRecordset(nomequery, 2) non funziona eppure la query eseguendola separatamente funziona bene
    saluti e grazie ancora
    Se la Query la apri da QBE la risoluzione passa per l'editor... che applica la conversione.
    Se lo fai da codice, no, per questo solitamente si preferisce usare i Parametri quando si aprono Query Parametriche da codice... perch almeno ci si rende conto di quello che si fa.

    Cerca in relazione all'uso di Query Parametriche... che non sono le query con la WHERE condition semplicemente...!
    ℹ️ Leggi di pi su @Alex ...

  10. #10
    angelo_dima non  in linea Novello
    ok grazie mille, ho trovato un tuo vecchio articolo in cui descrivi con un esempio la query parametrica, comunque tornando al mio esempio c' il modo di usare la query anzich usare l'istruzione select da codice?
    ciao e grazie ancora

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. errore di run-time 3061 parametri insufficienti previsto 1
    Da Aleandro nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 22-11-2020, 09:10
  2. Risposte: 6
    Ultimo Post: 08-07-2019, 23:54
  3. Risposte: 9
    Ultimo Post: 25-09-2015, 10:54
  4. [Access] - Parametri insufficienti . Previsto 2
    Da Fabio63 nel forum Microsoft Access
    Risposte: 6
    Ultimo Post: 05-03-2009, 10:01
  5. [ASP]Parametri insufficienti. Previsto 1.
    Da jonny75 nel forum ASP 3, ASP .Net
    Risposte: 7
    Ultimo Post: 23-01-2007, 18:30