Access引越し中小企業のAI導入支援|古い業務システムの作り直しからAccess・オフコンの引越し 専門

コラムやり方・手順

Accessのデータ型は、移行先でどう変わる?17種を書き出して変換表にした

Accessのデータ型は、見本の17種のうち7種がそのままCSVに入り、10種は変換が要ります。内訳は、値が変わる・消えるのが6種、値は残るが形を直すのが4種です。主宰が全型を1つずつ入れた見本テーブル(3行・51セル)を書き出して数えると、19セルが変わりました。通貨の小数、Yes/Noの-1、日付の書き方などの直し方を、値の例と件数つきの表にしました。(2026年10月時点)

全体の流れと費用はAccess・オフコンの引越しのページにまとめています。

要点

  • Accessの見本17型のうち、そのままCSVに入るのは7種で、10種は変換が要ります。
  • 見本テーブル(3行・51セル)を書き出して突き合わせると、変わったセルは19でした。
  • 通貨は1234.5678が「¥1235」になり、0.0001は0になります。単精度の3.14159274は3.14に丸まりました。
  • OLEオブジェクトの40バイトは空になり、添付ファイルは名前だけが出ます。
  • 日付は「2026/10/17 9:30:00」、Yes/Noは-1が1になり、ルックアップは名前でなく番号が出ます。
目次
  1. Accessのデータ型は、移行先でどう変わりますか?
  2. どの型が、そのまま入りますか?
  3. どの型で、値が変わったり消えたりしますか?
  4. どの型は、値が残るが形を直しますか?
  5. 移す前に、何を数えればよいですか?
  6. このサイトで相談するには?
  7. よくある質問

Accessのデータ型は、移行先でどう変わりますか?

見本の17種のうち7種はそのまま入り、10種は変換が要りました。10種のうち、値が変わる・消えるのは6種、値は残るが形を直すのは4種です。

見本は、主宰が作った架空のテーブルです。短いテキストから集計まで、各型の列を1つずつ作り、3行入れました。Accessで書き出しの指定を付けずにCSVへ出し、DAOで読んだ元の値と1セルずつ比べました。

17型×3行で51セルのうち、変わったのは19セルです。日本語のWindowsで、Accessは16.0の版を使いました。

Accessの見本17型をCSVに書き出して突き合わせた結果。そのまま入る7型は変わったセル0/21、値が変わる・消える6型は10/18、値は残るが形を直す4型は9/12Accessの見本17型を、CSVに書き出して突き合わせた結果そのまま入る 7型変わったセル 0/21オートナンバー0/3短いテキスト0/3長いテキスト0/3数値・バイト型0/3数値・整数型0/3数値・長整数型0/3数値・十進型0/3値が変わる・消える 6型変わったセル 10/18数値・単精度2/3数値・倍精度1/3通貨3/3OLEオブジェクト1/3添付ファイル1/3集計2/3値は残るが形を直す 4型変わったセル 9/12日付/時刻3/3Yes/No1/3ハイパーリンク3/3ルックアップ2/3計算値:Accessで作った見本テーブル(3行)を DoCmd.TransferText の既定で書き出し、DAO で読んだ値と1セルずつ比べた(日本語のWindows、2026年10月、Access引越し 主宰)
図1 17型を3つに分けた結果。右の数字は、3行のうち変わった行の数です(計算値、2026年10月)。
分け方 型 値の例(Accessの値 → CSVの値) 変わったセル
そのまま入る オートナンバー、短い・長いテキスト、バイト・整数・長整数、十進 12345678.1234 → 12345678.1234 0/21
値が変わる・消える 通貨 1234.5678 → ¥1235 3/3
単精度 3.14159274 → 3.14 2/3
倍精度 0.333333333333333 → 0.33 1/3
集計 空 → 6 2/3
OLEオブジェクト 40バイト → 空 1/3
添付ファイル 本体 → memo.txt(名前だけ) 1/3
値は残るが形を直す 日付/時刻 2026-10-17 09:30:00 → 2026/10/17 9:30:00 3/3
Yes/No -1 → 1 1/3
ハイパーリンク 表示#URL#の1つの文字列 3/3
ルックアップ 東京本店 → 1 2/3

どの型が、そのまま入りますか?

値を変えずに入ったのは7種です。長いテキストは、改行と引用符を含む1件でも、CSVの引用の規則どおりに読めば元に戻りました。ただし、その1件は物理的に34行に分かれるので、1行1件と決めて読むツールは壊れます。

十進型の99999999999999.9999も、桁を落とさず出ました。文字そのものの化けは別の話で、文字コードの記事に書いています。

オフコンのパック10進との違いも、ここで押さえます。パック10進はファイルの中のバイトの並びで、読み直しが要ります。Accessの十進型はデータベースが持つ型で、CSVには普通の数字の文字列で出るので、同じ読み直しは要りません。

オートナンバーも、1・2・3の値は変わりませんでした。

どの型で、値が変わったり消えたりしますか?

通貨・単精度・倍精度・集計・OLE・添付の6種です。

通貨は、Accessの中では小数4桁まで持ちます。書き出すと円記号つきで整数に丸まり、0.0001は0、922337203685477.5807は922337203685478でした。この円記号のバイトは0x5Cなので、UTF-8に直すと「\」になります。

単精度と倍精度は、元から桁が限られます。Microsoftの資料では、有効数字は単精度が7桁、倍精度が15桁です。それでも書き出しでは小数2桁に丸まり、1/3は「0.33」になりました。

0.1のように短い値は無事で、桁の多い値だけが変わります。移行先では、PostgreSQLのrealが6桁、double precisionが15桁で、正確に持つにはnumericを選びます。

集計は、[c05_Long]*2の結果が長整数型の範囲を超えた2行で、Access側は空なのにCSVに「6」が出ました。式のある列は、書き出す前に結果が空の行を数えておきます。OLEは40バイトを入れた行が空、添付は名前しか出ません。この2つは、本体のファイルを別に取り出して、移行先へ置き直します。

どの型は、値が残るが形を直しますか?

日付/時刻・Yes/No・ハイパーリンク・ルックアップの4種です。

日付は「2026/10/17 9:30:00」と、斜線で時が1桁の形で出ます。SQLiteのdatetime関数にそのまま渡すとNULLが返り、「2026-10-17 09:30:00」なら通りました。時刻だけを入れた行は、日付が1899/12/30になります。

Yes/Noは、Accessの中では-1です。CSVには1が出ました。PostgreSQLのbooleanが受け付けるのは1・0・true・yesなどで、-1は一覧にありません。他の数字が混じっていないかを数えてから、変換の規則を決めます。

ハイパーリンクは、表示する文字とURLを「#」でつないだ1つの文字列です。ルックアップは、画面では名前でも、中身は番号です。名前を引く元のテーブルを先に移します。

移す前に、何を数えればよいですか?

テーブルごとに、列の型を17種のどれかに分けて数えます。次の3つの順で進めます。

  1. 列の型を数え、上の表の「直す型」に当たる列を拾う
  2. 通貨・単精度・倍精度・日付・Yes/Noの列は、元と移した後の合計と件数を見比べる
  3. OLEと添付は、本体のファイルを別に取り出し、移行先に置き直す

見本の作り方は scripts/figs/access_types_make.ps1 にあります。数えた結果は、そのまま変換表の下書きになります。移行全体の進め方はAccess引越しの流れにまとめています。

このサイトで相談するには?

どの型が入っているか分からなくても、お見せいただかなくて構いません。何をどう頼むか決まっていなくても大丈夫です。

Access引越しが今の仕組みをうかがい、御社のやり方に合わせて、進め方を一緒に考えます。準備は要りません。無料で相談するからお声がけください。

よくある質問

Accessのデータ型は、移行先でそのまま使えますか?
半分弱です。見本17種では、短いテキスト・長いテキスト・整数系・十進型・オートナンバーの7種が値を変えずに入りました。
通貨型は、どの型へ移すのがよいですか?
小数4桁まで持つので、移行先も正確に持てる十進の型(numeric など)を選びます。単精度や倍精度にすると誤差が出ます。
添付ファイルやOLEオブジェクトは、CSVで移せますか?
移せません。見本ではOLEが空、添付は名前だけでした。ファイルの本体は別に取り出して、移行先に置き直します。
ルックアップの名前は、CSVに出ますか?
見本では番号だけが出ました。名前は元のテーブルから引き直すので、移行先でも元のテーブルを先に移します。

この数字の出し方

この記事の自前の数字は、次の見本・条件・回数で出しました。主宰が確かめ、更新日は2026年10月17日です。スクリプトの名前から、同じ手順を自分のファイルで再現できます。

  • Access引越しの計測(2026年10月17日、Microsoft 365 の64bit版 Access。全型を入れた見本テーブル17型・3行・51セルをCSVに書き出して突き合わせた)。scripts/figs/access_types_make.ps1・access_types_analyze.py

出典

  1. Microsoft サポート「Introduction to data types and field properties」(Single は有効数字7桁、Double は15桁、Decimal の範囲、添付・集計・ルックアップ・ハイパーリンクの説明)(2026年10月17日確認)
  2. PostgreSQL 文書 8.1「Numeric Types」(real は10進6桁、double precision は15桁、numeric は正確)(2026年10月17日確認)
  3. PostgreSQL 文書 8.6「Boolean Type」(true の入力は true・yes・on・1)(2026年10月17日確認)
  4. SQLite「Datatypes In SQLite」(論理型と日付型の専用の型は無い、日付は ISO 8601 の文字列などで持つ)(2026年10月17日確認)