ACCESSのフォームにはまる

今週から、派遣先の大学で MS-ACCESS で動作する仕組みを作成しています。MS-ACCESS は、使ってきた経験があるものの、知っているのは一部の機能だけで使いこなしてきたとはいえません。(もっぱらパススルーで使ってました。)特に、フォームに関しては、素人といっしょ。こういうの作って、と言われても初心者向けサイトを見ながら、ちょこちょこと作っていくしかできません。そのため、今回のは、かなり苦労しています。

やりたいことは、単純です。先週まで Excelに書かれたリストと、それにリンクする予定の Excel のリストを整備してきました。まだまだ整備には時間がかかるものの、リンクのしかたを確認しようと、MS-ACCESSの仕組みに予定より早めに着手したところです。フォームのイメージは、Webページです。紙の申請書の内容を画面に打ち込むのですが、プルダウンメニューからマウス操作である程度選べ、必要な箇所は何かからコピペできるようなテキストボックスを並べます。そして、ボタンを押すとデータベースに格納できます。

MS-ACCESS のフォームは、まるで VisualBasic の画面エディタだと思った時期がありました。まあ、それ以来苦手意識があります。Excelならセル単位でデータを処理したり、セルとは違う意味を持たせるためにテキストボックスを貼り付けたりと、VBAでいろいろ組んだ経験があります。しかし、MS-ACCESS にする意義が見出せず複数で使うような仕組みは、PHP で組んでWebで使えるようにしてきました。今更、MS-ACCESSS か、という気分ですが、数人でファイル共有しながら使うならまあ、ありかもしれません。

さて、フォームの作成ですが、今回はコンボボックスを多様しました。しかし、ここにリストを表示する方法ではまり、違うコンボボックスから参照するのではまり、VBAからの参照ではまり、と簡単なフォームのはずがかなり時間がかかってます。使った経験がなかったというのもありますが、これは難しい機能ですね。だいたい、SQLから複数の項目が出力されているはずなのに、ちゃんと文字列が表示されているのが理解できません。それを参照すると、やっぱり違う情報を取得してきます。

SQLでリストを表示するとちゃんとデータがあるのに、空白のプルダウンメニューが表示されてしまいます。また、いじっているうちに最初のコンボボックスが表示されたとても、次のコンボボックスでは何も表示してくれません。SQLやクエリーをデバックできる機能があれば利用したかったのですが、見つけられませんでした。

MS-ACCESSのフォームは、難しいのでプロにお願いするのがいい、という記事は何度か見たことがあるのですが、こんなに難しいとは思いませんでした。思いついたことをちょっと試してみよう、とするとVBAで組むことになります。VBAは難しい言語ではありませんが、同じ工数をかけるなら、Webシステム上に実装した方がいいなと思いますね。

当面の評価環境として、目標とするユーザーインターフェースはできたのですが、作りかけやのクエリーとかが幾つもできてしまい、かなり見難い。なんかもっとすっきりしたものが作れないものだろうか、と気になってしまう。