Applies ToAccess per Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

È possibile usare la funzione Eval per valutare un'espressione che restituisce una stringa di testo o un valore numerico.

È possibile creare una stringa e quindi passarla alla funzione Eval come se fosse effettivamente un'espressione. La funzione Eval valuta l'espressione stringa e ne restituisce il valore. Ad esempio, Eval("1 + 1") restituisce 2.

Se si passa alla funzione Eval un stringa contenente il nome di una funzione, la funzione Eval restituisce il valore restituito della funzione. Ad esempio, Eval("Chr$(65)") restituisce "A".

Sintassi

Eval ( esprstringa )

L'argomento esprstringa è un'espressione che restituisce una stringa di testo alfanumerica. Ad esempio, esprstringa può essere una funzione che restituisce una stringa o un valore numerico. In alternativa, può essere un riferimento a un controllo in una maschera. L'argomento esprstringa deve restituire una stringa o un valore numerico e non può restituire un oggetto di Microsoft Access.

Nota: Gli esempi seguenti illustrano l'uso di questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per altre informazioni sull'uso di VBA, selezionare Riferimenti per sviluppatori nell'elenco a discesa accanto a Cerca e immettere uno o più termini nella casella di ricerca.

Nota: Se si passa il nome di una funzione alla funzione Eval, è necessario includere parentesi dopo il nome della funzione nell'argomento esprstringa. Ad esempio:

' ShowNames is user-defined function.Debug.Print Eval("ShowNames()")   

Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")

Debug.Print Eval("Date()")

Osservazioni

È possibile usare la funzione Eval in un controllo calcolato in una maschera o un report oppure in una macro o un modulo. La funzione Eval restituisce un valore Variant che è una stringa o un tipo numerico.

L'argomento esprstringa deve essere un'espressione archiviata in una stringa. Se si passa alla funzione Eval una stringa che non contiene un'espressione numerica o un nome di funzione, ma solo una stringa di testo semplice, viene restituito un errore di run-time. Ad esempio, Eval("Smith") restituisce un errore.

È possibile usare la funzione Eval per determinare il valore archiviato nella proprietà Valore di un controllo. L'esempio seguente passa alla funzione Eval una stringa contenente un riferimento completo a un controllo. Visualizza quindi il valore corrente del controllo in una finestra di dialogo.

Dim ctl As ControlDim strCtl As StringSet ctl = Forms!Employees!LastNamestrCtl = "Forms!Employees!LastName"MsgBox ("The current value of " & ctl.Name & _    " is " & Eval(strCtl))

È possibile usare la funzione Eval per accedere a operatori di espressione che non sono normalmente disponibili in un modulo di Visual Basic, Applications Edition (VBA). Ad esempio, non è possibile usare gli operatori SQL Between...And o In direttamente nel codice, ma è possibile usarli in un'espressione passata alla funzione Eval.

L'esempio seguente determina se il valore di un controllo ShipRegion in una maschera Orders è una delle diverse abbreviazioni di stato specificate. Se il campo contiene una delle abbreviazioni, intState conterrà True (-1). È necessario usare virgolette singole (') per racchiudere una stringa all'interno di un'altra stringa.

Dim intState As IntegerintState = Eval("Forms!Orders!ShipRegion In " _    & "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Esempi di query

Espressione

Risultati

SELECT Eval("15+3") AS Expr1 FROM ProductSales GROUP BY Eval("15+3");

Valuta il valore stringa e calcola il risultato. Risultato: 18.

SELECT Eval("Date()+month(date())") AS NewDate FROM ProductSales Group by Eval("Date()+month(date())");

Valuta il valore stringa, identifica le funzioni ed eseguile. Risultato: data di sistema corrente + mese corrente, visualizzato nella colonna "NewDate".

Esempi di VBA

L'esempio seguente presuppone una serie di 50 funzioni definite come A1, A2 e così via. Questo esempio usa la funzione Eval per chiamare ogni funzione nella serie.

Sub CallSeries()    Dim intI As Integer    For intI = 1 To 50        Eval("A" & intI & "()")    Next intIEnd Sub

L'esempio seguente attiva un evento Click come se l'utente avesse fatto clic su un pulsante in una maschera. Se il valore della proprietà .SuClic del pulsante inizia con un segno di uguale (=), specificando che è il nome di una funzione, la funzione Eval chiama la funzione e questa operazione equivale all'attivazione dell'evento Click. Se il valore non inizia con un segno di uguale, il valore deve denominare una macro. Il metodo RunMacro dell'oggetto DoCmd esegue la macro denominata.

Dim ctl As ControlDim varTemp As VariantSet ctl = Forms!Contacts!HelpButtonIf (Left(ctl.OnClick, 1) = "=") Then    varTemp = Eval(Mid(ctl.OnClick,2))Else    DoCmd.RunMacro ctl.OnClickEnd If

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.