Kontakt
DSVGO
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 FunctionMan 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 FunctionDiese 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