Messaggi molesti dopo avvio codice

di il
16 risposte

Messaggi molesti dopo avvio codice

Buon giorno,
ho una mascehra con un pulsante che su clic fa partire una serie di codici. Mi compaiono sempre due messaggi in questo ordine:
-Immettere valore parametro (relativo ad una query)
-avviso di informazione su oggetto OLE (grafico)

la mia intenzione era di impedire che questi due maledetti compaiono, perchè tutto funziona... ma questi messaggi non devono apparire.

A tal proposito , proprio perchè non ho idea del perchè compaiono, posto il db nel link seguente:



Grazie...

16 Risposte

  • Re: Messaggi molesti dopo avvio codice

    Mostra la query ... ci sarà qualche campo che non è indicato correttamente
  • Re: Messaggi molesti dopo avvio codice

    jibi ha scritto:


    -Immettere valore parametro (relativo ad una query)
    Puoi scrivere la scritta completa del messaggio?
  • Re: Messaggi molesti dopo avvio codice

    La query credo sia questa:
    
    SELECT Misurazioni.ID, Misurazioni.numero, Misurazioni.assenza_sorgente, Misurazioni.con_sorgente, Misurazioni.ditta, Misurazioni.oggetto, Misurazioni.documento, Misurazioni.anno, Misurazioni.data, Misurazioni.meteo, Parametri.indirizzo, Parametri.strumento_portatile, Parametri.portali, Parametri.unita_strumento, Parametri.unita_portali, Parametri.sorgente_prova, Parametri.strumento_p_plus, Parametri.portali_plus
    FROM Parametri INNER JOIN Misurazioni ON Parametri.nome = Misurazioni.ditta
    WHERE (((Misurazioni.ditta)=[Maschere]![mDati]![cmbDitta]) AND ((Misurazioni.oggetto)=[Maschere]![mDati]![cmbOggetto]) AND ((Misurazioni.documento)="Carta di controllo") AND ((Misurazioni.anno)=[Maschere]![mDati]![cmbAnno]) AND ((Misurazioni.data)=IIf(IsNull([maschere]![mDati]![cmbData]),[data],[maschere]![mDati]![cmbData])))
    ORDER BY Misurazioni.numero;
    di seguito trovate la foto dell'errore della query

    grazie mille
    Allegati:
    21008_02a277cc36a137ed770bfa3d7b2c462a.jpg
    21008_02a277cc36a137ed770bfa3d7b2c462a.jpg
  • Re: Messaggi molesti dopo avvio codice

    L'apparizione della finestra "Immettere valore parametro" con la scritta Maschere!mDati!smRiepTitolo!TestoDitta ti sta dicendo che la query vuole prelevare un valore da una maschera/sottomaschera mDati/smRiepTitolo sul valore del campo TestoDitta. Se la maschera/sottomaschera non è aperta, la query non sa da dove andare a prendere questo valore, quindi te lo chiede con quella finestra. Mie proposte di risoluzione:
    A) Devi accertarti che la maschera/sottomaschera mDati/smRiepTitolo sia aperta.
    B) Elimina dalla query il filtro di questo parametro.
  • Re: Messaggi molesti dopo avvio codice

    Ti ringrazio molto per la risposta
    La sottomaschera è aperta in quanto la maschera principale è la stessa che possiede il pulsante dal quale parte il codice che genera il messaggio. Tuttavia tale sottomaschera è resa talvolta invisibile. Può essere quello? Oppure, potrebbe essere l'espressione del criterio a dare errore?
    Ecco l espressione:
    IIf(IsNull([Maschere]![mDati]![smRiepTitolo]![TestoDitta])=Vero;[Maschere]![mDati]![cmbDitta];[Maschere]![mDati]![smRiepTitolo]![TestoDitta])
    Magari dà errore "IsNull" o come ho costruito l iif ?
    In ogni caso, non posso fare a meno di questo criterio...
    Che cosa intendi per "Elimina dalla query il filtro di questo parametro" ?

    Ringrazio molto per la gentilezza
  • Re: Messaggi molesti dopo avvio codice

    Da QBE, Queries Builder, la sintassi secondo me potrebbe non essere corretta..., ma potrebbe essere un Baco di MS... in quanto inseriti i criteri nel Generatore vengono Tradotti, mentre nel QBE devono essere in Inglese...
    Potresti modificare il predicato SQL rimpiazzando alla parola [Maschere] la parola [Forms]
    
    IIf(IsNull([Forms]![mDati]![smRiepTitolo]![TestoDitta])=Vero;[Forms]![mDati]![cmbDitta];[Forms]![mDati]![smRiepTitolo]![TestoDitta])
    ecc...
  • Re: Messaggi molesti dopo avvio codice

    jibi ha scritto:


    La sottomaschera è aperta in quanto la maschera principale è la stessa che possiede il pulsante dal quale parte il codice che genera il messaggio...In ogni caso, non posso fare a meno di questo criterio...
    Che cosa intendi per "Elimina dalla query il filtro di questo parametro" ?
    La mia B) era solo una ipotesi di soluzione. Adesso che hai dato questa spiegazione, puoi scartarla.
  • Re: Messaggi molesti dopo avvio codice

    jibi ha scritto:


    Magari dà errore "IsNull" o come ho costruito l iif ?
    Prova a fare qualche test senza usare la IIf con valori Non Null. Se funziona, prova magari a gestire i valori Null da codice VBA e non nell'espressione della query.
  • Re: Messaggi molesti dopo avvio codice

    Allora... ora vi racconto dell'impossibile...
    Ho fatto quanto ha detto Alex, ho sostituito "Maschere" con "Forms", ma non solo il problema persiste, ma compare lo stesso messaggio, con scritto nuovamente : "[Maschere]![mDati]![smRiepTitolo]![TestoDitta] ecc.."

    Credo proprio che il problema sia questo... ma non ho idea del perchè e di come fare a risolverlo...

    Grazie a tutti per la disponibilità dimostratami

    jibi
  • Re: Messaggi molesti dopo avvio codice

    Per rispondere a Osvaldo,
    ti posso assicurare che fino a una settimana fa , gli stessi criteri funzionavano benissimo... ora no e non capisco perchè. Credo proprio che il problema sia dato dal fatto che ancora mi compare il messaggio con la parola "maschere" quando in realtà c'è scritto "Forms" nei criteri. Provato anche con un compatta e ripristina ma niente da fare
  • Re: Messaggi molesti dopo avvio codice

    In ogni caso, non sarebbe possibile bloccare l avvio di questi messaggi non appena faccio clic sul suddetto pulsante che mi fa partire i codici? Così impedisco anche che venga visualizzato il messaggio info dell oggetto OLE....
    Ho provato a mettere DoCmd.SetWarnings False come prima riga del codice su clic del pulsante... ma non va.
    In tal caso questo codice, se usato a modo (non è il mio caso), può impedire anche la comparsa del riquadro "Immetti valore parametro" ?

    Ringrazio per l 'ascolto e buona serata

    Jibi
  • Re: Messaggi molesti dopo avvio codice

    La soluzione è risolvere il problema non mettere il bavaglio... peraltro non gestibile.

    Secondo me, commetti qualche errore banale di cui non ti rendi conto, se vuoi provare a creare un File di Esempio MINIMAL ed allegare tramite FileSharing possiamo provare a vedere, altrimenti possiamo solo dire che non ti rendi conto in modo adeguato.
    Il Baco di cui ti parlavo esisteva, ma si risolve come ti ho esposto... se fatto correttamente su tutti gli elementi.
    Tieni presente anche che esistono le Query Parametriche nel caso....

    Con questi estremi di più non si puòà fare.
  • Re: Messaggi molesti dopo avvio codice

    Ti rigrazio molto per l'aiuto datomi,
    ho creato un nuovo file minimal per meglio mostare il problema.
    l'errore si evoca in tal modo:
    aprire mDati,
    selezionare l unico valore dalle cmb in alto a sinistra, e nella cmbAnno selezionare 2017
    premere il tasto adiacente che riesegue la query (e fa poco altro)

    Ecco il file:

    Ringrazio molto per l'attenzione e per l'aiuto

    Jibi

    PS: ci sono parecchie query, perchè il criterio di cui vi ho parlato è contentuto in tutte quelle, quindi ho lasciato tutte le potenziali "colpevoli".
  • Re: Messaggi molesti dopo avvio codice

    Premesso che non esce alcun ERRORE... passiamo all'analisi.
    Quel pulsante di Aggiornamento che Query riaggiorna secondo te...?

    Secondo me non hai letto la GUIDA... e questo già non pone proprio a tuo favore...!

    Questo è quanto MSDN ti spiega relativamente all'uso di Requery membro del Metodo Docmd, come lo hai usato tu, ed è molto chiaro del perchè non fa nulla.

    Il Metodo Requery è un metodo che appartiene a diverse Classi...

    Tuttavia ho provato a scrivere il REQUERY in modo corretto, ovvero sugli Oggetti che devono essere aggiornati... ma nulla accade... e quì nasce il problema...
    Hai strutturato il tutto in modo molto confusionale, query su query su query su query... ma nessuna delle query che hai scritto Restituisce un Record... e questo è dovuto al fatto che hai dei riferimenti incrociati sparsi ovunque...

    Personalmente mi devo fermare in quanto la logica strutturale del tuo lavoro non è standard, anzi... e ti suggerirei, di fare un passo alla volta rivedendo la gestione delle Query.

    La Tabella Parametri e la Tabella Misurazioni oltretutto non sono relazionate, le unisci in JOIN su campi non indicizzati... e questo contribuisce a dimostrare che alla fonte di tutto c'è qualche mancanza di BASI che rende il tuo lavoro formalmente incomprensibile a noi, e sicuramente a te poco o per nulla comprensibile il nostro feedback.
Devi accedere o registrarti per scrivere nel forum
16 risposte