ファイルメーカーの使い方を覚えたいあなたの為のブログ【データをインポートする機能】
2017年04月27日 12:28 PM
はじめの一歩
FileMaker Pro(ファイルメーカー)の使い方5回目。
この記事はFileMaker 15 対応です。
最新バージョン FileMaker 19 対応版はこちら
今回は、「データをインポートする機能」ということで、
・FileMaker Pro 15でインポートできるファイルの拡張子
・インポートの方法:ファイル
・インポートの方法:フォルダ
・エクセルからインポートする際の注意点
・ファイルメーカーファイルからインポートする際の注意点
の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 15でインポートできるファイルの拡張子
FileMaker Pro 15 でインポートできるファイルの拡張子は以下の通りです。
.csv
.txt
.dbf
.fmp12
.mer
.xlsx
.tab
.txt
.xml
■FileMaker ヘルプ【サポートされているインポートおよびエクスポートファイルフォーマット】
インポートとエクスポートの形式は基本的に共通ですが、「.htm」のみ、エクスポートしかできない点に注意してください。
また、フォルダ単位で一括インポートする際の対応拡張子については後述します。
◇インポートの方法:ファイル
インポートは、メニューバーの「ファイル」→「レコードのインポート」で実施することができます。
インポートの種類は全部で4つありますが、まずはファイルからのインポートを見ていきたいと思います。
ファイルからのインポートの際にインポートできる形式は、先ほどご紹介した
「.csv/.txt/.dbf/.fmp12/.mer/.xlsx/.tab/.txt/.xml」
の9種類です。
メニューバーの「ファイル」→「レコードのインポート」→「ファイル」を選択すると、「ファイルを開く」のウインドウが表示されます。
ここで、インポートしたいファイルを選択し、「開く」を押すことでインポートすることができます。
インポートするファイルを指定したら、フィールドデータのインポート順を設定します。
まず、インポート先のテーブルに注目してください。
この指定を間違えてしまうと、全然関係のないテーブルにデータが作成されてしまった…ということになってしまいます。
上の図のように、インポートすることによって新しいテーブルを作成することも可能です。
次に、インポート方法を指定します。
それぞれ、次のような動作をします。
- 新規レコードとして追加
インポートされたレコードを、全て新規レコードとして登録します。
- 対象レコード内の既存のレコードを更新
インポートするデータで、既存のデータを上書きします。その際、ファイル内のデータの確認や比較は行われず、元データの1行目がインポート先のファイルの1レコード目を、2行目が、2レコード目を…というイメージで更新されます。※1
「一致しないデータを新規レコードとして追加する」オプションを指定すると、インポート元のデータがインポート先のデータより行数が多かった場合、溢れたデータが新規レコードとして登録されます。
- 対象レコード内で一致するレコードを更新
インポート元のデータとインポート先のデータを照合し、データを上書きします。※1
このインポート方法で確定する為には、1つ以上の「照合フィールド」を指定する必要があります。照合フィールドは、インポート元のフィールドとインポート先のフィールドの間にある記号をクリックすることで、指定することができます。(先に「対象レコード内で一致するレコードを更新」を選んでいないと指定ができない点に注意します)
記号のそれぞれの意味は、フィールドデータのインポート順の画面の下部に「記号」として説明のある通りです。
※1 インポート先にレコードがない場合、この設定を選ぶことができませんので、設定前にレコードを1つ以上作成しておく必要があります。
各オプションの詳細については、FileMaker Pro 15のヘルプを参照してください。
■FileMaker ヘルプ【既存のファイルへのデータのインポート方法】
https://fmhelp.filemaker.com/help/15/fmp/ja/#page/FMP_Help%2Fmethods-importing-data.html
◇インポートの方法:フォルダ
FileMaker Pro 15 では、フォルダ単位でデータを一括インポートすることも可能です。
一括インポートに対応した拡張子は次の通りです。
ピクチャ | Encapsulated Postscript (.eps)
GIF (.gif) JPEG/JFIF (.jpg) JPEG 2000 (.jp2) (OS X) MacPaint (.mac) (OS X) PDF (.pdf) (OS X) Photoshop (.psd) (OS X) PNG (.png) SGI (.sgi)(OS X) Targa (.tga) (OSX) 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 などの形式はサポートされていません。
- OS X の場合: Windows Media Video (.wmv) 形式には、Flip4Mac をインストールする必要があります。
指定したフォルダに、対応していないファイルタイプのファイルが存在した場合、次のようなエラーメッセージが表示されます。
ファイルのフォルダの一括インポートでは、指定したフォルダの下位フォルダをインポート対象に指定するかどうかを選択することができます。
一括インポートの際にインポートできるデータは次の通りです。
■ファイルタイプが【ピクチャ】の場合
・イメージ
・ファイル名
・ファイルパス
・イメージのサムネール
■ファイルタイプが【テキストファイル】の場合
・テキストの内容
・ファイル名
・ファイルパス
その為、「対象レコード内で一致するレコードを更新」がしたい、というような場合、ファイル名を照合フィールドにするか、ファイルパスを照合フィールドにするか…いうように選択肢があまりありません。
例えば「顧客IDで照合したい」というような場合は、ファイル名やフォルダ名の一部を顧客にしておき、インポートするファイルに、照合する為のフィールドを用意しておくなど、色々な工夫が必要になってきます。
◇エクセルからインポートする際の注意点
過去のイエスウィキャンのブログ【ExcelからのFileMakerにインポート、しかし空白レコードが出来てしまう。】(https://ywc.xbiz.jp/filemaker/?p=1942)にも詳しく乗っているのですが、エクセルなどからインポートする場合、意図せず大量の空レコードが作成されてしまう…という事があり得ます。
これは、エクセルファイルが内部で保存している作成行数と、データが入力されている行数の違いによって起こります。
インポート後に、必ず値が入力されているフィールドで検索して、空欄のレコードを一括削除するなどの処理をすることで、このような望ましくない事態を回避することができますので、エクセルからインポートをする際はご注意ください。
■FileMaker ヘルプ【ファイルのフォルダの一括インポート】
https://fmhelp.filemaker.com/help/15/fmp/ja/#page/FMP_Help%2Fimporting-folder.html
◇FileMakerファイルからインポートする際の注意点
ファイルメーカーのインポート機能では、テーブルからテーブルへ、データをインポートすることなども可能です。
その際に、注意点がいくつかありますのでお伝えします。
- インポートされるレコードは、「対象レコードのみ」
- サーバーサイドスクリプトで実行させる場合、.fmp12から.fmp12への直接のインポートはできない
いかがでしたでしょうか。インポート機能には「XML」「ODBC」といった方法でのインポートも存在しますが、こちらは応用編のため、今回は割愛させて頂きたいと思います。