新・ファイルメーカーの使い方を覚えたいあなたの為のブログ【データをインポートする機能】
2019年03月08日 02:54 PM
FileMaker 17
こちらは大人気記事「ファイルメーカーの使い方を覚えたいあなたの為のブログ」のリニューアル版(Ver.17)です!
最新バージョン FileMaker 19 対応版はこちら
FileMaker Pro Advanced(ファイルメーカー)の使い方5回目。
今回は、「データをインポートする機能」ということで、
・FileMaker Pro 17 Advanced でインポートできるファイルの拡張子
・インポートの方法:ファイル
・インポートの方法:フォルダ
・エクセルからインポートする際の注意点
・ファイルメーカーファイルからインポートする際の注意点
の5つをご紹介したいと思います。
これはシリーズで連載しています。
①データを入力する器を作成する機能 V15|V17|V18|V19
④データを変更する機能 V15|V17|V18|V19(入力を補助する機能をプラス)
⑤データをインポートする機能 V15|V17|V18|V19 ←今回はここです
⑥データをエクスポートする機能 V16|V17,18|V19
⑧データを表示する画面を作成する機能 V16|V17,18|続編(V19)
⑪処理を自動化する機能 V17,18|スクリプトトリガ編(V19)
⑫セキュリティに関する機能 V17,18|FileMakerファイルの暗号化/通信の暗号化(V19)
◇FileMaker Pro 17 Advanced でインポートできるファイルの拡張子
FileMaker Pro 17 Advanced でインポートできるファイルの拡張子は以下の通りです。
.csv
.txt
.dbf
.fmp12
.mer
.xlsx
.tab
.xml
■FileMaker ヘルプ【サポートされているインポートおよびエクスポートファイルフォーマット】
https://fmhelp.filemaker.com/help/17/fmp/ja/#page/FMP_Help%2Fimport-export-formats.html%23ww1046089
インポートとエクスポートの形式は基本的に共通ですが、「.htm」のみ、エクスポートしかできない点に注意してください。
また、フォルダ単位で一括インポートする際の対応拡張子については後述します。
◇インポートの方法:ファイル
インポートは、メニューバーの「ファイル」→「レコードのインポート」で実施することができます。
インポートの種類は全部で4つありますが、まずはファイルからのインポートを見ていきたいと思います。
ファイルからのインポートの際にインポートできる形式は、先ほどご紹介した
「.csv/.txt/.dbf/.fmp12/.mer/.xlsx/.tab/.txt/.xml」
の9種類です。
メニューバーの「ファイル」→「レコードのインポート」→「ファイル」を選択すると、「ファイルを開く」のウインドウが表示されます。
ここで、インポートしたいファイルを選択し、「開く」を押すことでインポートすることができます。
インポートするファイルを指定したら、フィールドデータのインポート順を設定します。
まず、インポート先のテーブルに注目してください。
この指定を間違えてしまうと、全然関係のないテーブルにデータが作成されてしまった…ということになってしまいます。
上の図のように、インポートすることによって新しいテーブルを作成することも可能です。
次に、インポート方法を指定します。
それぞれ、次のような動作をします。
- 新規レコードとして追加
インポートされたレコードを、全て新規レコードとして登録します。
- 対象レコード内の既存のレコードを更新
インポートするデータで、既存のデータを上書きします。その際、ファイル内のデータの確認や比較は行われず、元データの1行目がインポート先のファイルの1レコード目を、2行目が、2レコード目を…というイメージで更新されます。※1
「一致しないデータを新規レコードとして追加する」オプションを指定すると、インポート元のデータがインポート先のデータより行数が多かった場合、溢れたデータが新規レコードとして登録されます。
- 対象レコード内で一致するレコードを更新
インポート元のデータとインポート先のデータを照合し、データを上書きします。※1
このインポート方法で確定する為には、1つ以上の「照合フィールド」を指定する必要があります。照合フィールドは、インポート元のフィールドとインポート先のフィールドの間にある記号をクリックし、【=】の記号にすることで、指定することができます。(先にインポート方法「対象レコード内で一致するレコードを更新」を選んでいないと指定ができない点に注意します)
下の図のようにインポート元とインポート先があっていない場合は、
(windows)インポート先のフィールド名の左にある上下矢印の位置でドラッグすると、動かすことができます(移動できるのは1フィールドずつです)。
(macOS) インポート先フィールドをそのままドラッグすることで動かすことができます。
記号のそれぞれの意味は、フィールドデータのインポート順の画面の下部に「記号」として説明のある通りです。
この「対象レコードで一致するレコードを更新」は、設定した照合フィールドがすべて一致した場合、そのレコードを上書きします。
「一致しないデータを新規レコードとして追加する」オプションを指定すると、インポート元のデータがインポート先のデータと一致しなかった場合、新規レコードとして登録されます。
※1 インポート先にレコードがない場合、この設定を選ぶことができませんので、設定前にレコードを1つ以上作成しておく必要があります。
また、フィールドデータのインポート順オプションでは【<<】【>>】でインポート元データをプレビュー表示できますので、参考にしてください。
各オプションの詳細については、FileMaker Pro Advanced 17のヘルプを参照してください。
■FileMaker ヘルプ【FileMaker Pro Advanced へのデータのインポート】
https://fmhelp.filemaker.com/help/17/fmp/ja/#page/FMP_Help%2Fimporting-data.html%23
■FileMaker ヘルプ【インポート時のインポート方法と割り当てるフィールドの設定】
https://fmhelp.filemaker.com/help/17/fmp/ja/#page/FMP_Help%2Fimport-action-field-mapping.html%23
◇インポートの方法:フォルダ
FileMaker Pro Advanced 17 では、フォルダ単位でデータを一括インポートすることも可能です。
一括インポートに対応した拡張子は次の通りです。
ピクチャ | Encapsulated Postscript (.eps)
GIF (.gif) JPEG/JFIF (.jpg) PDF (.pdf) (OS X) PNG (.png) TIFF (.tif) Windows ビットマップ (.bmp) Windows メタファイル/拡張メタファイル (.wmf/.emf) (Windows) |
オーディオ/ビデオ | AIFF オーディオファイル (aif、.aiff)
AVI ムービー (.avi) MP3 オーディオファイル (mp3) MPEG-4 オーディオファイル (.m4a) MPEG-4 ムービー (.mp4) MPEG ムービー (.mpg、.mpeg) MPEG-4 ビデオファイル (.m4v) QuickTime ムービー (.mov、.qt) ( 下記のメモを参照) Sun オーディオファイル (.au) WAVE オーディオファイル (wav) Windows Media Audio (.wma) Windows Media Video (.wmv) |
テキスト | .txt (またはファイルタイプがテキスト) |
メモ
- オーディオまたはビデオとして挿入された QuickTime ムービー (.mov、.qt) では、QuickTime VR などの形式はサポートされていません。
指定したフォルダに、対応していないファイルタイプのファイルが存在した場合、次のようなエラーメッセージが表示されます。
ファイルのフォルダの一括インポートでは、指定したフォルダの下位フォルダをインポート対象に指定するかどうかを選択することができます。
一括インポートの際にインポートできるデータは次の通りです。
■ファイルタイプが【ピクチャ】の場合
・イメージ
・ファイル名
・ファイルパス
・イメージのサムネール
■ファイルタイプが【テキストファイル】の場合
・テキストの内容
・ファイル名
・ファイルパス
その為、「対象レコード内で一致するレコードを更新」がしたい、というような場合、ファイル名を照合フィールドにするか、ファイルパスを照合フィールドにするか…というように選択肢があまりありません(オブジェクトフィールドを照合フィールドに設定することはできません)。
例えば「顧客IDで照合したい」というような場合は、ファイル名やフォルダ名の一部を顧客にしておき、インポートするファイルに、照合する為のフィールドを用意しておくなど、色々な工夫が必要になってきます。
◇エクセルからインポートする際の注意点
過去のイエスウィキャンのブログ【ExcelからのFileMakerにインポート、しかし空白レコードが出来てしまう。】(https://ywc.xbiz.jp/filemaker/?p=1942)にも詳しく載っているのですが、エクセルなどからインポートする場合、意図せず大量の空レコードが作成されてしまう…という事があり得ます。
これは、エクセルファイルが内部で保存している作成行数と、データが入力されている行数の違いによって起こります。
インポート後に、必ず値が入力されているフィールドで検索して、空欄のレコードを一括削除するなどの処理をすることで、このような望ましくない事態を回避することができますので、エクセルからインポートをする際はご注意ください。
■FileMaker ヘルプ【ファイルのフォルダの一括インポート】
https://fmhelp.filemaker.com/help/17/fmp/ja/#page/FMP_Help%2Fimporting-folder.html%23
◇FileMakerファイルからFileMakerファイルへインポートする際の注意点
ファイルメーカーのインポート機能では、テーブルからテーブルへ、データをインポートすることなども可能です。
その際に、注意点がいくつかありますのでお伝えします。
- インポートされるレコードは、インポート元ファイルの「対象レコードのみ」
- サーバーサイドスクリプトで実行させる場合、.fmp12から.fmp12への直接のインポートはできない(一度CSVなどにエクスポートしてインポートさせる等をしなければならない)
いかがでしたでしょうか。インポート機能には「XML」「ODBC」といった方法でのインポートも存在しますが、こちらは応用編のため、今回は割愛させて頂きたいと思います。