おっす。おら、MS Accessを現代Hackすっぞ。
日本では長年にわたり、社内の小規模業務システムや departmental apps(部門アプリ)の裏方として Microsoft Access が稼働し続けてきました。
しかし令和の今、サポートの不透明感やアーキテクチャの老朽化により、現場は頭を抱えています。
「Web アプリに全面移行」と一口に言っても、サーバー構築、インフラ運用コスト、ネットワーク遅延、専門のフロントエンド部隊が必要となり、Access が持っていた「1ファイル渡せば誰の PC でも動く」という手軽さは完全に失われてしまいます。
そこで、「枯れた本命技術」を組み合わせ、今後 20〜30 年安心して現場で使い倒せる 1 ファイル・アプリケーションフレームワーク 「Knuckle(ナックル)」 を構築しました。
現場を苦しめてきた「MS Access の 5 大罪」
Access がなぜ現代の開発標準(モダンエンジニアリング)に耐えられなくなったのか? 理由は明確です。
-
VBA の密結合と Git 管理の完全崩壊
コードが.accdbバイナリの内部に保存されるため、Git での差分管理、プルリク、CI/CD が不可能。複数人開発は破綻します。 -
恐怖の「2GB 制限」とデータベース破損
ファイルサイズが 2GB に達した瞬間に書き込み不可となり、最悪クラッシュして復旧不能になります。 -
連結フォームによる「暗黙のブラックボックス I/O」
画面のフォーム自体が裏で勝手に DB へ書き込むため、ソースコードを読んでも業務ロジックの全貌が追えず、仕様書も作れないまま属人化します。 -
独自ランタイムと環境依存
Office のビット数(32bit / 64bit)不一致や Access Runtime のバージョン競合で動かなくなるトラブルが頻発します。 -
肥大化する移行コスト
画面・ロジック・クエリが密結合しているため、移行=「ゼロからの全面作り直し(数千万円)」になりがちです。
Knuckle のアーキテクチャ:枯れた技術の最強ハイブリッド
Knuckle は、Electron のような重厚な Chromium エンジンに頼らず、以下の 3 つの堅牢なテクノロジーで Access の良さだけを現代に蘇らせました。
| レイヤー | 採用技術 | 選定理由と Access からの進化 |
|---|---|---|
| Storage / Container | SQLite (WAL mode) | 30 年の歴史を持つ世界一堅牢な DB。**2GB 制限を撤廃(最大 140TB)**し、クラッシュフリーを実現。 |
| UI Engine |
Slint |
Qt のコア開発陣が手掛ける マルチプラットフォーム GUI。わずか 77MB の省メモリで、VS Code 上でのリアルタイムプレビューに対応。 |
| Logic / Runtime |
Bun / Node.js (TS) |
現代の標準言語 TypeScript で記述。型安全性、npm エコシステム、VS Code による快適な補完環境。 |
Knuckle が提供する「新時代の 1 ファイル体験」
1. アプリとデータが 1 つにまとまる .knuckleApp
ビルドツールを実行すると、UI マークアップ(Slint DSL)、ロジック(ESM)、クエリ定義、そして実データが 1 つの SQLite ファイル(.knuckleApp)にパッキングされます。
インストーラー導入済みの PC なら、ダブルクリックするだけでコンソールも出ずミリ秒で起動します。
環境を一切汚さず、USB メモリや社内共有フォルダで渡すだけで動く「FileMaker や Access のポータビリティ」を完全再現しています。
2. 「queries.yaml」によるブラックボックスの完全撲滅
フォームによる暗黙の書き込みを全廃しました。
すべての SQL は宣言型の queries.yaml に明記され、ビジネスロジック・UI・DB アクセスが完全に分離されます。
コードレビューが可能になり、将来 PostgreSQL 等のエンタープライズ DB へ移行する際も、YAML 内の接続定義とクエリを差し替えるだけで UI やロジックを 1 行も弄る必要がありません。
3. VS Code で完結する Git ネイティブな開発環境
コードはすべてプレーンテキスト(.slint, .ts, .yaml)。
GitHub で普通に Pull Request を投げ、コードレビューを行い、ブランチを切って安全にチーム開発ができます。Slint 拡張機能により、UI の仕上がりをエディタ横でリアルタイム確認しながらマークアップできます。
仮に他のIDEがデファクトになったとしても、アプリとソースコードが分離しているので、引っ越しは簡単です。
今後の展望:デスクトップからスマホ・タブレットへ
Slint のマルチプラットフォーム性能を活かし、同じコードベースのまま将来的に iOS / Android / 現場用タッチ端末あるいはウェブサービスへの展開も視野に入れています。
オフィスの PC で叩いていた業務アプリコンテナを、そのままタブレットで現場へ持ち出す世界線を作ります。