Jag lyckas inte använda Eval-funktionen i Visual Basic utan bara i VBA. Det är underligt. Ska man inte kunna använda den i visual basic? Jag vill evaluera ett uttryck och returnera ehuruvida det är sannt eller falskt.
Eval är en VBScript funktion som introducerades i VBScript 5.0.
Den finns alltå inte som default i VB.
Du kan ju annars använda funktionen IIF, som evaluerar och returnerar ett förutbestämtvärde utifrån resultatet.
Ex.
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
Dim strA As String
Dim strB As String
Dim blnRet As Boolean
Det blir en smula omständigt då jag har ett okänt antal variabler med olika ej förutbestämda, logiska operatorer emellan.
Jag har löst det genom att skicka det som en sql-fråga efter som att SQL har stöd för logiken.
Exempelvis: SELECT True | (False & True) AS Result
Det fungerar bra men kännas som tokigt eftersom att jag måste skicka en fråga till en databas som jag egentligen inte skulle behöva använda.
Ok, men varför inte göra en egen funktion?
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
private function blnEval(vntVal1, vntVal2) as boolean
blnEval = iif(vntVal1 = vntVal2, true, false)
end function
Det känns väldigt onödigt att behöva använda en databas...
Njah. Det skulle ju vara bra om det gick enkelt.
Det jag ska göra är att skriva en regeltolk. En funktion som returnerar sant eller falskt om en viss (användarifylld) regel uppfylls. Ex: <font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">order_no AND (datum OR agent_no)
Regeln ska bestämma vilka fält som måste vara ifyllda i ett formulär och detta skulle ju inte varit så ångestladdat om jag kunnat använda eval().