VB-Tec.de Visual Basic - Technik, FAQ, Tricks, BeispieleHome / Allgemein / Mathe / Eval Ausdrücke berechnen mit Eval |
Function MyEval(Expression As String) As Variant
Static ap As Access.Application
'Ggf. Access-Instanz erzeugen:
If ap Is Nothing Then
Set ap = New Access.Application
End If
'Ausdruck berechnen:
MyEval = ap.Eval(Expression)
End Function
Man beachte, dass auf dem Rechner MS-Access installiert sein muß! Zur Optimierung wird übrigens nur beim ersten Aufruf der Funktion eine Access-Instanz erzeugt. Diese wird dann immer weiter wiederverwendet, bis das VB-Programm beendet wird.
Function MyEval(Expression As String) As Variant
Static db As DAO.Database
Dim ds As DAO.Recordset
Const MDB = "C:\Tmp\TmpDB.MDB" 'ggf. anpassen!!!
'Ggf. DB initialisieren:
If db Is Nothing Then
On Error Resume Next
Kill MDB
On Error GoTo 0
Set db = DAO.CreateDatabase(MDB, dbLangGeneral)
db.Execute "create table TmpTab(TmpField long)"
db.Execute "insert into TmpTab values(1)"
End If
'Ausdruck berechnen:
Set ds = db.OpenRecordset( _
"select " & Expression & " from TmpTab where TmpField=1")
MyEval = ds(0)
ds.Close
End Function
Diese Methode benötigt keinerlei VB-fremden Mittel. Auch hier wurde wieder optimiert: Die Hilfs-Datenbank wird nur beim ersten Aufruf der Funktion erzeugt und ein Database-Object damit instanziiert. Dieses "lebt" bis zur Beendigung des VB-Programms. © Jost Schwider, 30.04.2000-02.05.2000 - http://vb-tec.de/eval.htm