Applies ToAccess för Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Du kan använda funktionen Utvärdera för att beräkna ett uttryck som resulterar i en textsträng eller ett numeriskt värde.

Du kan skapa en sträng och sedan skicka den till funktionen Utvärdera som om strängen vore ett uttryck. Funktionen Utvärdera beräknar motsvarande stränguttryck och returnerar värdet. Till exempel returnerar Eval("1 + 1") värdet 2.

Om du skickar en sträng som innehåller namnet på en funktion till funktionen Utvärdera, returnerar funktionen Utvärdera resultatet av funktionen. Till exempel returnerar Eval("Chr$(65)") värdet ”A”.

Syntax

Utvärdera ( stränguttryck )

Argumentet stränguttryck är ett uttryck som utvärderas till en alfanumerisk textsträng. Stringexpr kan till exempel vara en funktion som returnerar en sträng eller ett numeriskt värde. Eller så kan det vara en referens till en kontroll i ett formulär. Argumentet strängutexpr måste utvärderas till en sträng eller ett numeriskt värde. det kan inte utvärderas till en Microsoft Access-objekt.

Obs!: I exemplen nedan visar vi hur du använder den här funktionen i en Visual Basic for Applications-modul (VBA). Om du vill läsa mer om hur man använder VBA, kan du välja Info för utvecklare i listrutan bredvid Sök och sedan skriva en eller flera söktermer i sökrutan.

Obs!: Om du skickar namnet på en funktion till funktionen Utvärdera, måste du använda parenteser efter namnet på funktionen i argumentet stränguttryck. Till exempel:

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

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

Debug.Print Eval("Date()")

Anmärkningar

Du kan använda funktionen Utvärdera i en beräknad kontroll i ett formulär eller en rapport eller i ett makro eller en modul. Funktionen Utvärdera returnerar en Variant som är av typen sträng eller numerisk.

Argumentet stränguttryck måste vara ett uttryck som lagras i en sträng. Om du skickar till en sträng som inte innehåller ett numeriskt uttryck till funktionen Utvärdera, utan bara en enkel textsträng, uppstår ett körningsfel. Till exempel resulterar Eval("Smith") i ett fel.

Du kan använda funktionen Utvärdera till att bestämma vilket värde som lagras i egenskapen Värde för en kontroll. Följande exempel skickar en sträng som innehåller en fullständig referens till en kontroll till funktionen Utvärdera. Sedan visas det aktuella värdet på kontrollen i en dialogruta.

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

Du kan använda funktionen Utvärdera för att komma åt uttrycksoperatorer som inte vanligtvis är tillgängliga i en VBA-modul (Visual Basic for Applications). Du kan till exempel inte använda SQL-operatorerna Between...And eller In direkt i koden, men du kan använda dem i ett uttryck som skickas till funktionen Utvärdera.

I nästa exempel avgör om värdet för kontrollen ShipRegion i formuläret Orders är en av flera angivna förkortningar för delstater i USA. Om fältet innehåller någon av förkortningarna, får intState värdet Sand (-1). Observera att du använder enkla citattecken (') för att placera en sträng inuti en annan sträng.

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

Frågeexempel

Uttryck

Resultat

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

Utvärderar strängvärdet och beräknar resultatet. Resultat: 18.

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

Utvärderar strängvärdet, identifierar funktionerna och kör dem. Resultat: aktuellt systemdatum + aktuell månad, visas i kolumnen "NewDate".

VBA-exempel

Det här exemplet förutsätter att du har en serie på 50 funktioner som definierats som A1, A2 och så vidare. Det här exemplet använder funktionen Utvärdera för att anropa varje funktion i serien.

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

I nästa exempel utlöses en Klickning-händelse som om användaren hade klickat på en knapp i ett formulär. Om värdet för knappens egenskap VidKlickning börjar med ett likhetstecken (=), vilket betyder att det är namnet på en funktion, anropar funktionen Utvärdera denna funktion, vilket motsvarar att utlösa händelsen Klickning. Om värdet inte börjar med ett likhetstecken måste värdet ge namnet på ett makro. Metoden KörMakro för objektet DoCmd kör det angivna makrot.

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

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.