Accessのデータをkintoneに移行した話 

# はじめに
Accessのデータをkintoneに移行したのだけども、(主に勘と経験を元に)何とかたどり着いたので、記録的に残してみます。


# やりたいこと
Accessで構築されたシステムに入っているデータをkintoneに移行する


# 移行にあたってのしんどかったポイント
- **mdb形式**である
- **レプリケーション**の設定が解除されていないファイルである
- メインPCでmdb→accdbへの**単純なコンバージョンができなかった**
- ある1つのテーブルの1つのフィールド内に画像ファイルが**バイナリデータ**として格納されている
- VBAでの **バイナリファイル→画像ファイル** 変換処理が上手く行かなかった
- それをkintoneの**添付ファイル**として当該レコードに添付する必要がある
- テーブル数　トラン系：**約30個**　マスタ系：**約50個**
- 合算すると**約38万レコード**になるテーブルがある


# やったことまとめ
**Access2010でやった事**
1. mdb形式のファイルを、Access2010で開く
2. テーブルのエクスポート先となるaccdb形式のファイルを作成
3. mdb形式内のファイル内のテーブルを、ひとつずつaccdb形式のファイルにエクスポートする(一括でエクスポートするやり方知っていたら教えてくださいm(_ _)m)

**Office365 Accessでやったこと**
1. CSVとしてkintoneに取り込める形になるようにクエリを作成
2. クエリの結果をExcelにエクスポート
3. 画像データの含まれるテーブルをフォームに表示
4. フォームとして表示したものをPDFとして印刷する・・・**A**

**Excelでやったこと**
1. 備考などの改行が含まれるデータ内の改行コードを別の文字列に置換(今回は「◆◇◆」にした)
2. CSV形式で保存し直す・・・**B**

**テキストエディタ(VSCode)でやったこと**
1. **B**に対して「改行コード＋◆◇◆」を「◆◇◆」となるように全置換(改行コードを削除する)・・・**C**

**kintoneに取り込むための画像ファイルの用意**
1. **[CubePDF Image Picker](https://www.cube-soft.jp/cubepdfimagepicker/)** を使い**A**から画像ファイルだけを抽出
2. 抽出したファイルの名前をファイラーである **[As/R](https://all.undo.jp/asr/) の「ファイル名一括変換」機能**を使ってザックリと一次変換して、PowerShellスクリプトを書いて最終調整をして、kintoneに紐付けるための番号にリネームする・・・**D**

この辺りは、何を使ってもいいのだろうけども、世の中には便利なツールを作成してくれる人がいらっしゃいますから、その方々に感謝しつつ、使わせていただきましたm(_ _)m  

<img width="300" alt="cube-pdf-picker.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/f4e7fb81-889d-1f72-0c35-908a24fb83dd.png"> <img width="300" alt="2020-11-10_12h42_53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/b877e560-7174-3796-8d3a-0fb9739494ab.png">


**kintoneへデータを取り込む**
1. **C**をkintoneに読み込むと同時にアプリを作成する
2. **D**をサイボウズ謹製の **[cli-kintone](https://github.com/kintone/cli-kintone)** を使ってkintoneへ一括アップロードする(**[こちら](https://developer.cybozu.io/hc/ja/articles/202957070-kintone-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9)**を参考に)


# ちなみに、最新版のAccessで普通に開いてみると…
![2020-11-09_23h33_28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/5e146042-e3cb-5117-06f1-c2e9501154e0.png)

**はい。ダメー。全く開けません。**

レプリケーションがネックになってるみたいだし、旧バージョンのAccessでないといけないみたいだし、いきなり全然アカン…ＴＴ
mdb形式のファイルをaccdb形式で開いた時にいい感じにコンバージョンするか聞いてくるので、それに賭けてみたんですけど甘かったですな(苦笑)

なので、旧PCのAccess2010で開いてみた所、無事にファイルを開くことができて、データ移行の糸口がつかめた感じになりました(笑)


# おわり
今回、ご依頼いただいたお客さんは、元々、他のシステム屋さんに、データ移行というか、最新版のAccessへのコンバージョンを依頼したらしいのだけども、結局はそのシステム屋さんが受けられないという事で断られてしまったらしい。その間に、社内的にkintoneをしっかりと使うようになったらしく、だったらAccessではなくkintoneにデータ移行したいよねとなったようで、最終的に弊社にご相談をいただいた感じですね。

やり方考えて、データを入れて、お客さんとすり合わせて、データを入れ直してを繰り返し、なんやかんやと2ヶ月くらいでした。

kintoneへの理解や、周辺技術とアイデアで何とかここまでたどり着けたなぁと言う感じ。
一生懸命考えて、姑息な手段を思い付いた、自分を褒めてあげたい！(ｵｲ)

今回の経験で、ほとんど全てのデータベースからの移行ができそうな自信が付きました！

とは言え、まだデータを移行しただけなので、kintoneらしく、お客さんが使いやすいようにするのにはもう少しかかりそう。ここから先こそ、お客さんと二人三脚でkintoneでの開発をやっている、弊社の腕の見せ所。

楽しみながら、知恵を絞りながら、良いものに仕上げていくぞ！！

# おしらせ
弊社サービスとして、**[レスキュトーン](https://www.rescutone.com/)**、**[リノベトーン](https://www.renovatone.com/)**というkintone関連サービスをしています。
kintoneに絡んだご相談など、お気軽にお問い合わせいただければと思います！
[<img width="300" alt="2020-11-11_11h00_00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/3dd897b5-4e24-af0e-23fa-fee0cc2c1b09.png">](https://www.rescutone.com/) [<img width="300" alt="2020-11-11_11h00_13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/c76df839-ac18-95b5-e57f-baeccf911e27.png">](https://www.renovatone.com/)