5 ms·
Friendly reminder for MS Access fiends: It's ok to store code in tables and then pass it to VBA for evaluation via Eval, or to ASF via the engine.Compile
by blargthorwars 9mo ago
Friendly reminder for MS Access fiends:
It's ok to store code in tables and then pass it to VBA for evaluation via Eval, or to ASF via the engine.Compile
- cyanydeez 9mo agoBut what if i want to debug my code?
- blargthorwars 9mo agoGreat question! Programmatically copy your snippet to a module, then call it: Public Sub AppendCode() Dim cm As Object Set cm = Application.VBE.VBProjects(1).VBComponents("GeneratedLogic").CodeModule cm.InsertLines cm.CountOfLines + 1, _ "Public Sub NewProc()" & vbCrLf & _ " MsgBox ""Dynamically added""" & vbCrLf & _ "End Sub" End Sub
- mschuster91 9mo agoI've written my fair share of evil shit in VBA. But... what is effectively eval() just in VB? Yikes.
- moron4hire 9mo agoFor the people who would be using this, they would almost never even have other people's code, say nothing of whether it's untrusted.
- n013 9mo agoHonestly, ASF is literally sandboxed. Objects cannot be injected in the runtime. Also, VBA Expressions is intentionally limited to receive and return VBA strings. So, the system is safe for execute code from (almost) anyone.
- n013 9mo agoYou can inspect the AST in order to debug your code. For syntax highlighting, use tools like Notepad++ (ASF shares most of the syntax with Javascript). Each piece of code is commented, no obscure machine code.