FileMakerGOとiPod touchで「なんちゃってハンディーターミナル」が作れないかと勉強を始めて数か月・・・
当初、MS-Accessプログラマーの私には謎だらけだったFileMaker開発が、最近ようやく分かってきたような・・・
そこで、勉強の成果をご披露しちゃいます。
と言っても、慣れた人ならすぐに作れる簡単なもの。
基幹業務システムから商品マスタをCSVファイルで書き出すと3つ文字化けが起きるんです。
「ml=」「kg=」「L=」
これをFileMakerではどうやって文字列置換するんだろうかと1週間試行錯誤:-)
そして完成したスクリプトはAccessのものとは全く違いうもの!(当たり前か)
(※作りながら覚えていく我流プログラマなので、もっと簡潔な書き方があるのかも・・・)
FileMakerの場合
置換前の商品マスタには文字化けがこん感じで混ざってます。

FileMakerのスクリプトステップはこんなに長いんですよ!

LOOP用のレコードフィルタを「検索条件を指定」画面で3文字分作る

文字列置換を「検索/置換を実行」画面で3文字分作る

スクリプトを実行すると文字化けが無くなりました

FileMakerだとかなり面倒ですよね 😮
ちなみに、Accessならスクリプトは3行だけ、とてもシンプル:-)
Accessの文字化けした商品マスタはこんな感じ

まず、更新クエリを3個作る
Accessの便利なところは更新クエリの中でVBA関数が使えること。
「→ml」「→L」「→kg」の置換をしてくれるReplace関数を埋め込んだ更新クエリを3文字分作る。クエリー名は「Q更新クエリ外字」「Q更新クエリ外字」「Q更新クエリ外字」

次に、ボタンのClickイベントに下のVBAスクリプトを埋め込み実行。
Private Sub btn外字変換_Click() DoCmd.OpenQuery "Q更新クエリ外字" DoCmd.OpenQuery "Q更新クエリ外字" DoCmd.OpenQuery "Q更新クエリ外字" End Sub
置換すると文字化けが無くなりました。

ちなみにSQL文をクエリのGUI無しで書ける人ならクエリーを作る必要もなく、VBAに直接UPDATE文を3行書くだけです。
DoCmd.RunSQL "update 商品マスタ set 商品マスタ.規格=replace([規格],’’,’ml’)" DoCmd.RunSQL "update 商品マスタ set 商品マスタ.規格=replace([規格],’’,’L’)" DoCmd.RunSQL "update 商品マスタ set 商品マスタ.規格=replace([規格],’’,’kg’)"
「AccessとFileMakerどっちが良いの?」と質問してるネットの掲示板をよく見かけます。
どうでしょう、どっちが作業効率がいいと思います?
個人的な感想ですが、動作環境でMacOSとiOSを考慮しなければMS-AccessはFileMakerより100複雑なことができます。
FileMakerの歌い文句は「FileMakerServerにFileMakerクライアントでデータ共有すればとても便利」
しかし、実際の現場でFileMakerServerを見ることはまず無いです。
得意先ごとで個別のシステムを持ち、それぞれから個別の要求が来て、それに合わせてプログラムをガリガリ書いていかないと取引先の幅を広げることはできません。
FileMakerかAccessのどちらを導入すべきか思案中の方は、まず検討すべきは社内ではなく社外からの要求です。取引先から来る千差万別のシステム連携の要請に対応できるのはどっちなんだろうかと考えるべきです 🙂
逆に、得意先との情報共有なぞ考える必要のない業界、個人経営の美容院、外食産業等はFileMakerの方がいいかも・・・
コメントを残す