LV2 LiteView2
Try LiteView2
Modern UI in VBA

Modern HTML5 Dashboards Inside VBA UserForms

Works in Excel, Access, Word, Outlook, PowerPoint, VB6, and any COM host.

LiteView2 embeds a full Chromium browser inside a VBA UserForm or Access form. Any HTML5 library — Chart.js, D3, Plotly, Bootstrap — renders inside the form exactly as it does in a browser. VBA pushes data to the page via PushRecordset or ExecuteScript. The page sends user interactions back to VBA via WebMessageReceived. Your forms, business logic, and data layer stay in VBA.

30-day commercial trial · DAO PushRecordset built in · Local HTML files work offline

HTML5 libraries that work inside VBA

Chart.jsBar, line, pie, doughnut, radar — all chart types
D3.jsCustom SVG visualisations, force graphs, maps
PlotlyScientific charts, 3D plots, financial charts
ApexChartsModern charts with animation and interactivity
BootstrapResponsive forms, tables, cards, modals
AG GridVirtual-scroll data grid — 100k+ rows, instant scroll
TabulatorInteractive tables, filtering, grouping, inline edit
LeafletInteractive maps, markers, layers

If it runs in a browser, it runs inside LiteView2. Use CDN links or bundle libraries locally alongside your .accdb or .xlsm — all served via the https://lv2.local/ virtual hostname.

How data flows

1

VBA runs the query

Access or Excel VBA executes a DAO/ADO query. Business logic, SQL, and data layer stay in VBA.

2

LiteView2 pushes data

PushRecordset sends all rows to a JavaScript callback as a JSON array. No manual serialization.

3

JS renders the dashboard

Chart.js, D3, or any library renders the data. Filtering, sorting, drill-down — zero database round-trips.

Code sample — push DAO data to Chart.js

' VBA side (Access form module)
Private Sub m_lv_NavigationCompleted(ByVal url As String, ByVal success As Boolean)
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset( _
        "SELECT Month, SUM(Revenue) AS Total FROM tblSales GROUP BY Month", _
        dbOpenSnapshot)
    rs.MoveLast : rs.MoveFirst   ' materialise all rows
    m_lv.PushRecordset rs, "onChartData"
    rs.Close
End Sub

' ---

// JavaScript side (dashboard.html)
function onChartData(rows) {
    const labels = rows.map(r => r.Month);
    const data   = rows.map(r => r.Total);
    new Chart(document.getElementById('myChart'), {
        type: 'bar',
        data: { labels, datasets: [{ label: 'Revenue', data }] }
    });
}

// Send user action back to VBA
document.getElementById('btnExport').onclick = function() {
    window.chrome.webview.postMessage(JSON.stringify({action: 'export'}));
};

Why HTML5 UI instead of native VBA forms

Native Access and Excel form controls (text boxes, list boxes, subforms) are limited by the VBA rendering engine — no animations, no charts, no real-time updating without complete redraws. HTML5 running in Chromium gives you GPU-accelerated rendering, CSS transitions, SVG charts, and a modern layout engine. The data still comes from VBA and DAO — only the rendering layer changes.

The migration scope is also minimal: your forms, business logic, queries, and data layer stay exactly as they are. Only the browser-interaction code path (what to show, not how the data is stored or computed) moves to HTML/JS.

FAQ

Can I render Chart.js inside a VBA UserForm?

Yes. LiteView2 embeds a full Chromium browser. Chart.js renders exactly as it would in a browser — animations, tooltips, responsiveness all work. Load Chart.js from a local file next to your .accdb or via CDN if internet access is available.

Do the HTML files need to be on a web server?

No. Call SetLocalContentRoot to map a local folder to https://lv2.local/. Your HTML, CSS, and JavaScript files are served from disk — no web server needed, works fully offline.

Can the dashboard send events back to VBA?

Yes. In the page, call window.chrome.webview.postMessage(JSON.stringify({action:'filter',value:'Q1'})). In VBA, the WebMessageReceived event fires. Parse the JSON using LiteView2's JSON engine in a Form_Timer handler (50ms delay) to avoid re-entrancy issues.

Modern dashboards inside your VBA form — no rewrite

HTML5, Chart.js, Bootstrap — powered by DAO data from VBA. Free 30-day trial.

Download free 30-day trial
30-day commercial trial · DAO PushRecordset built in · No telemetry

Embed Chromium in Excel · WebView2 in Access VBA · Reg-Free Mode · Full API reference