Generatore di espressioni e riferimento a maschera

di il
12 risposte

Generatore di espressioni e riferimento a maschera

Ciao a tutti. 

Avrei bisogno di inserire in una query due campi calcolati, che riportino i valori contenuti in una casella di testo (con una data, nome “Testo6”) e la colonna 3 di una casella combinata ("CasellaCombinata0"), presenti in una maschera ("mask_corsi"), aperta al momento dell'apertura della query.

Ho tentato di utilizzare il generatore di espressioni, richiamando i campi della mschera, ma purtroppo access mi restituisce sempre errore di sintassi, 

Potreste cortesemente darmi una mano ?

Grazie mille, ciao !!

12 Risposte

  • Re: Generatore di espressioni e riferimento a maschera

    Il generatore a volte si comporta da “geneRRatore”. Cosa hai scritto che restituisce errore di sintassi?

  • Re: Generatore di espressioni e riferimento a maschera

    Ciao ! Ad esempio, per il campo data ho tentato:

    Espr1: DateValue([Maschere]![aggiungi_in_calendario_2]![Testo6])

    Purtroppo ho scarsissime conoscenze di sintassi.

  • Re: Generatore di espressioni e riferimento a maschera

    11/07/2023 - saxmax73 ha scritto:


    Espr1: DateValue([Maschere]![aggiungi_in_calendario_2]![Testo6])

    Boh… a me funziona. Che tipo di casella di testo è? è già preimpostata per contenere una data? Sicuro che l'errore di sintassi sia su quello? Pubblica l'intera SQL della query, forse l'errore di sintassi è altrove.

  • Re: Generatore di espressioni e riferimento a maschera

    La casella di testo è configurata con formato “data”.

    La query funziona, se elimino l'espressione.

    La query è la seguente: 

    SELECT qu_vecchi_corsi.id_corso, qu_vecchi_corsi.id_partecipante, qu_vecchi_corsi.stato, qu_vecchi_corsi.nome_corso, qu_vecchi_corsi.nome_completo, qu_vecchi_corsi.email, qu_vecchi_corsi.cellulare, DateValue([Maschere]![aggiungi_in_calendario_2]![Testo6]) AS Espr1
    FROM qu_vecchi_corsi
    WHERE (((qu_vecchi_corsi.id_corso)=[Maschere]![mask_vecchi_corsi]![id_corso]));

  • Re: Generatore di espressioni e riferimento a maschera

    Proviamo con una cosa che sembra avere poco a che fare con questa: i Riferimenti.

    Apri l'editor di VBA (ALT + F11), Menù Strumenti - Riferimenti…

    Verifica che tra le voci con la spunta (le prime dell'elenco) non ce ne sia qualcuna marcata con (MANCA). In quel caso togli il segno di spunta, deselezionando il riferimento, e premi OK. Poi torna sulla query e guarda se va. Poi eventualmente si vede se quel riferimento alla libreria serviva davvero o no.

    Altro non mi viene in mente.

  • Re: Generatore di espressioni e riferimento a maschera

    Quindi deduco che tu ritieni corretta la sintassi della query.

    Ho fatto quel controllo, nulla di anomalo :-(

  • Re: Generatore di espressioni e riferimento a maschera

    11/07/2023 - saxmax73 ha scritto:


    Quindi deduco che tu ritieni corretta la sintassi della query.

    Ho fatto quel controllo, nulla di anomalo :-(

    Bohhhhh (l'ho già scritto). A questo punto, se nessuno ha un'illuminazione, l'unica è dare un'occhiata al database. Se puoi pubblicare un file ridotto all'osso, senza dati personali, in cui il problema si verifica, quindi sia riproducibile, ci do (ci diamo) un'occhiata.

    Credo che tu debba appoggiarti ad un file host esterno (google drive, onedrive, quello che ti pare, purché non serva nome utente e password)

  • Re: Generatore di espressioni e riferimento a maschera

    Ho voluto fare un'altra prova, per scrupolo.

    Ho inserito nella maschera un campo solo testo ("Testo26") e nella query, al posto della precedente espressione, ho inserito 

    Espr1: [Maschere]![aggiungi_in_calendario_2]![Testo23]

    In questo caso, non mi dà errore, ma non appare nessun dato nella query

  • Re: Generatore di espressioni e riferimento a maschera

    11/07/2023 - saxmax73 ha scritto:


    Ciao a tutti. 

    Avrei bisogno di inserire in una query due campi calcolati, che riportino i valori contenuti in una casella di testo (con una data, nome “Testo6”) e la colonna 3 di una casella combinata ("CasellaCombinata0"), presenti in una maschera ("mask_corsi"), aperta al momento dell'apertura della query.

    Ho tentato di utilizzare il generatore di espressioni, richiamando i campi della mschera, ma purtroppo access mi restituisce sempre errore di sintassi, 

    Potreste cortesemente darmi una mano ?

    Grazie mille, ciao !!

    Non puoi usare una Query Parametrica…? Non come hai fatto ma con i Parameter…?
    La Colonna 3 poi della Combo per leggerla dalla Query direttamente richiede un passaggio dal Valutatore di Espressioni, altrimenti di Default legge solo la DefaultColumn e non è in grado di risolvere la sintassi Column(2)…

  • Re: Generatore di espressioni e riferimento a maschera

    11/07/2023 - @Alex ha scritto:

    Ciao Alex, 

    sicuramente dico una fesseria, ma con i parametri filtro i dati nella query, mentre io vorrei che ad ogni record che emerge dalla query sia aggiunto un ulteriore campo (con riporta il contenuto del campo nella maschera).

    Spero di essere stato chiaro.

  • Re: Generatore di espressioni e riferimento a maschera

    Ok allora avevo frainteso inizialmente.

    Se il valore è costante, devi analizzare la cosa in modo diverso… come vuoi fare tu le performance della Query vengono meno… perchè ad ogni riga deve andare ad interrogare la Maschera e risolvere il valore… cosa assurda.

    Ipotiziamo la tua Query, che chiamiamo per comodità [Q1], avente questo predicato SQL:

    SELECT * FROM T1

    Ora a questa Query devi aggiungere 2 campi Calcolati ricavati dalla TextBox e dalla Combo…?

    Dim sSQL 	As 	String
    Dim qdf		As	DAO.QueryDef
    
    Set qdf=DbEngine(0)(0).QueryDefs("Q1")
    
    sSQL="SELECT *, " & DateValue(NomeForm!NomeControllo.Value) & " AS DataRif, " & NomeForm!NomeCombo.Column(2) & " As ComboRef "
    sSQL= sSQL & "FROM T1 ORDER BY Quello che vuoi"
    
    qdf.SQL=sSQL
    qdf.Close
    Set qdf=Nothing

    Ora se apri la Query da QBE e sarà valorizzata con 2 Campi Fissi per ogni Record, Performance massima in quanto abbiamo usato la risoluzione esplicita dei valori e non devono essere risolti per ogni riga.

    Nel mio esempio ho messo cose da valutare, come l'uso di DateValue di cui non comprendo il senso… mi spiego meglio, se la tua TextBox contiene “01/12/2023”, se fai DateValue o cDate cosa pensi di ottenere…?

    Sempre  “01/12/2023” e sarà sempre stringa in quanto concatenata ad una stringa… quindi serve avere un quadro di insieme più chiaro per alcune cose che dici di cui ho perplessità…

  • Re: Generatore di espressioni e riferimento a maschera

    Grazie mille Alex !!

    Ciao !

Devi accedere o registrarti per scrivere nel forum
12 risposte