• ベストアンサー

ACCESS2000でEXCELデータのインポート

IBM AS/400のデータ転送でファイルタイプBIFFでEXCELファイルに落としたものをACCESS2000でインポートすると外部フォーマットが正しくないとなります。以前はACCESS VER.2.0では出来たのですが。どなたかご存知の方、お教えねがえないでしょうか

  • saiz
  • お礼率62% (66/106)

質問者が選んだベストアンサー

  • ベストアンサー
  • oribeyaki
  • ベストアンサー率45% (18/40)
回答No.1

エクセルのバージョンはどれをお使いになっていますか? エクセルのバージョンが古いとひょっとしてAccess2000では読めない可能性があります。 また、一手間かかりますが、エクセルからCSV形式に出力して、Accessで取り込む回避策も考えられます。

saiz
質問者

補足

oribeyakiさんアドバイス有難うございます。 EXCELLは2000です。 IBMAS/400でEXCELLにデータ転送するとEXCELLの中は下の様になってます。 A B C D E F G H I J K L M 1 TSUKI HI KINGAKU 2 09 29 \3,000 3 4 上記の様に一行目にフィールド名が必ず入ってしまうのです。 たぶんACCESS2000ないでEXCELLの一行目を削除してからインポートすれば良いと思いますが、やりかたが解かりません 引き続きアドバイス願えればありがたいのですがお願い致します。

その他の回答 (2)

  • oribeyaki
  • ベストアンサー率45% (18/40)
回答No.3

返答が遅くなりすいません。 推測のレベルでしかないのですが・・・複数の原因があるように思えます。 AS400側の「BIFF」作成部分というのは旧来のままですか? そうであるとすると、「BIFF」のバージョン違いによるエラーが考えられます。 (Excel2000対応:BIFF,BIFF3,BIFF4,BIFF5,BIFF8) また、「BIFF8」になって、かなり機能拡張がありました。 また、別の事例で「CSV」形式のファイルをExcel取り込み→Accessインポートの過程で同様のエラーが出ているものがありました。 これは、Access97とAccess2000のテキストドライバの違いでこのエラーが起こるとの事でした。 推測1 ExcelではそのBIFF形式は問題なく読み込めるが、Accessではそのバージョンの形式を認識できない。もしくは「xls」にひもついているExcel2000(BIFF8)の形式と判断して読み込もうとして失敗している。 推測2 Excel2000ではそのBIFF形式を認識していない。また、開いた時は入っているように見えても内部コードがおかしい。 (開いてみると何かメッセージが出るかも?手がかりになりそうならめっけもん) 対処方法(これも推測) 場あたり的対処 一度その「xls」ファイルを開いて、「最新のバージョンに変換しますか?」が出たら変換してセーブ、出なかったら一度テキスト形式(CSVとか)に落として、それを新規のExcelに取り込み。 その後、Accessで取り込み。 (ようは、力押しで最新のExcel形式にしてしまってから取り込み。) 抜本的対処 AS400のファイル作成プログラムを「BIFF8」の形式で作成しなおす。 ※ただし、AS400側の「BIFF」作成部分が旧来のままという前提に立ったコメントにつき、おおはずしの可能性大(爆) まあ、ドライバのバージョン違いと形式のバージョン違いに起因するエラーには間違いないとは思いますが・・・^^; (BIFFは扱ったこと無いので良く判らないんです。すいません。) 原因個所が絞り込めてきましたので、問題解決まで後少しってとこですかね。 また、補足、私の勘違い、意味がわからないなどありましたら、ご返答ください。

saiz
質問者

お礼

色々長々と質問してすみませんでした。 とりあえず場あたり対処でやっていきます。 ありがとうございました。

saiz
質問者

補足

こんにちわ、oribeyakiさん 返答有難うございます。 場あたり的対処やってみました。最新のバージョンに変換したら出来ました。 有難うございます。 あと、出来ればEXCELLを開いて、最新のバージョンに変換しますか?を ACCESS2000のマクロ又は、モジュールを使って出来ないでしょうか。 しつこくてすみません。 宜しくお願いします。

  • oribeyaki
  • ベストアンサー率45% (18/40)
回答No.2

おはようございます。 AccessにExcelからデータを取り込むのには、「インポートウィザード」を使われてますか? (「テーブル」の「インポート」を選択してExcelブックを選ぶと自動的に出てくるものですが・・・) 「インポートウィザード」を使用していれば、補足していただいた内容を実現する事は簡単にできます。 流れを書きます。 1・「テーブル」で「新規作成」→「テーブルのインポート」を選択。 2・インポートダイアログの「ファイルの種類」を「MicroSoft Excel(*.xls)」にして、指定のエクセルブックを選択。 3・「ワークシートインポートウィザード」画面が開きます。 4・画面1ページ目は取り込むシートの選択。「次へ」を押して2ページ目がご要望の設定です。「先頭行をフィールド名として使う」チェックボックスをONにすれば、これで先頭のフィールド名がデータとして扱われません。 5・新規に作成するのであれば、次ページから新規作成のプロセスで「フィールド名」を変更したりして取り込みます。 6・既存のテーブルにデータを追加する場合1つ問題があり、4で先頭行をフィールド名として扱う設定にしてありますので、取り込み先のテーブルのフィールド名と、Excelのフィールド名が一致している必要があります。これと取り込むデータが、テーブルのデータ型と一致していれば問題ないはず。 「ウィザード」を使ってやる場合はこのような流れになると思います。 もし、既存テーブルに取り込みでフィールド名が違う場合、一度別に新規にテーブルを作成してから、元テーブルにインサートするとか、前のデータはすべて要らない場合は、新規作成後リネームするなどいろいろ回避はできます。 「ウィザード」を使用していなくて、マクロの「ワークシート変換」や、VBAで「TransferSpreadSheet」を使用しているのであれば、「フィールド名の設定」を「YES/はい」にすれば、先頭行がフィールド名として扱われます。 「範囲/Range」を先頭行無しで選択して既存のテーブルにインポートすることはできないようです。(やれると思ったのですが・・・、融通きかねーなぁ^^;) ただ、この場合も、「ウィザード」の6と同じ問題に引っかかるので、同じように回避策が必要になります。 すいません、取り留めの無い文章になってしまい、判りづらいかと思います。 補足、私の勘違い、意味がわからないなどありましたら、ご返答ください。 (朝はどうにもダメなんですよ。)

saiz
質問者

補足

おはようございます。 流れとても判り易いです。 さっそく試みてみましたが流れ3へ行く前に"外部テーブルのフォーマットが正しくありません。"とエラーが出てしまいます。 (:_;)エーン

関連するQ&A

  • 【Excel2000】Access2000からのデータインポートについて

    Access2000のデータをExcel2000にインポートしたいのですが、 条件を付けてインポートする方法についてお教えください。 (Access2000のクエリデータ) 依頼No(順不同):内容 3:aaaaa 5:bbbbb 1:ccccc (Excel2000のデータ) 依頼No:内容(空白) 1: 2: 3: 4:  5: ※スペースが使用できませんので区切りは:とさせて頂いております。 ExcelデータとAccessデータをマッチングさせ Excelデータの依頼Noに対応するAccessデータの内容を Accessデータから取ってくるというようなイメージです。 外部データの取り込み-新しいデータベースクエリから行おうとしましたが どのように条件を指定して良いのかわかりません。 VBAでないとできないのでしょうか。 お分かりになられる方、ぜひお教えくださいませ。 よろしくお願い致します。

  • AccessでExcelデータをインポート

    お世話になります。  Access2003/2010  Excel2003/2010 10年程前より、Access2003で作成したツール(Excel2003形式のファイルを インポート)を利用しております。 Excelファイルは毎日追加/更新しているのですが、先日、とうとうExcel2003 の行の上限である65,536行を超えてしまいました。 今後はExcel2010形式のファイル(行の上限は1,048,546行)とし、かつ、 2010形式のファイルをインポートできるようツールの修正をしなければならなく なりました。 ツールの修正というよりは、今までAccess2003上で使用していたので、そのまま Access2010上で使用したいだけなので、修正が必要がどうかも分からない 状況です。 そこで2点質問ですが、  1.現状インポートする際は、   DoCmd.TransferSpreadsheet acImport, 8, "temp", strFile, True   としておりますが、「8」の箇所は2010形式のExcelをインポートする場合   どのように修正すればよいでしょうか。   ヘルプを見ても8(Excel2000形式)までの記載しかありません。   とりあえず8のままExce2010形式で、かつ2003の行の上限を超えている   ファイルを(66000行)インポートしてみましたが、行は削れることなく   インポートできました。  2.インポート時の文字数制限について   インポートするExcelファイルの「備考」フィールドは文字数が多いのですが、   Access2003上で使用すると全ての文字列(750文字程度)をインポート   できておりました。   しかしAccess2010上で使用すると、文字列が途中で切れる(255文字)   不具合が発生しました   インポートする際は、あらかじめテーブルを作成しておき、そこに対して   Excelのデータをインポートしております。なお、「備考」のデータ型は   メモ型です。   (255文字で切れることから)恐らくAccessがインポートする時点で「備考は   テキスト型」と判断しているから255で切れてしまうのではないか、で、切れた   文字列をメモ型に入れてるだけのように見受けられるのですが。。   2003から仕様が変わってしまったのでしょうか。   上記のことから、インポートするExcelの先頭行の「備考」に、適当な文字列   (750文字)を入力し、それをインポートすると途切れることなくインポート   できました。   ※Accessがメモ型と認識したから? ※いずれもツールをAccess2010上で使用した状況です。 ご教示の程、宜しくお願い致します。

  • Access97 Excelデータインポート

    Access97でエクセルファイルのインポートができません。 http://www.okweb.ne.jp/kotaeru.php3?q=88632 のご質問でほぼ同様のQAがありましたが、レジストリの 知識が薄く、触るのも怖いため詳しく教えてくれる方が おいででしたらお願いいたします。 現象は…  ・インポートのファイルの種類でエクセルを   選択できません(ありません)  ・インストール時に   データアクセス>データベースドライバ   では、エクセルにチェックがついており、   セットアップ済みとなっています。  ・削除→インストールしても、次に開くとまたセット   アップ済みとなってます。  ・チェックボックスが灰色で「インストール済み」と   なっており、何をやってもチェックできず、削除も   できません。 どなたかよい方法をご存知ではないでしょうか? 環境はWin95+Office97proです。 お願いします。

  • AccessへのExcelデータインポート

    お世話になります。 Accessのテーブルデータの更新をExcelからのインポートで行いたいと試していますが「上書きできません」とエラーが表示されます。 データ型などの設定変更を回避するため、一旦元データをEXCELにダウンロードし、見出しのみを残しデータを削除、2行目以降に最新データを値貼り付けで保存しています。Accessのインポート作業に於いて、一応データ型や主キーの設定確認していますが、同様のファイル3つとも同じ現象です。 なお、3つのファイルはリレーションを張り、クエリを作成しています。リレーションを外さないと更新が出来ないのであれば、複数のリレーションが絡んでおり、とても外すのは危険とも思っています。 どうぞ宜しくお願い致します、

  • アクセスにインポートできません。

    Access97を使っています。 エクセルもcsvもインポートできません。 「外部データの取りこみ」→「インポート」で進み、 「ファイルの種類」を選択しようとしたところ、 一覧にエクセルもcsvも出てきません。 「Microsoft Access」と「ODBCデータベース」 のみです。 エクセルもcsvも検索はできますが、 インポートしようとすると 「データベース形式○○○を認識できません。」 というエラーメッセージが表示されます。 どうすれば解決できるでしょうか? よろしくお願いします。

  • excel→accessへのインポートがうまくいきません。

    access2000を使っています。 excel2002のデータをaccessへインポートしようとしているのですが、ブランクのフィールド(セル)を1つでも含むレコード(行)はインポートされません。言い換えれば、全てデータの満たされている行しかインポートされないのです。何故でしょうか?

  • ACCESSへエクセルデータのインポートについて

    お世話になります。 ACCESSのデータとしてエクセルをインポートしたいのですが、エクセルのデータ は、11行目がフィールド名になり、13行目からデータが始まっている状態です。 このようなファイルはACCESSにインポートすることが可能でしょうか 可能であれば、定期的にインポートをしたく、情報の信憑性を保ちたいと考えております。 宜しくお願い致します。

  • アクセスへのデータインポートが上手くいきません。。。

     アクセスへのデータインポートで知恵をおかし下さい! <現象>エクセルからアクセスへデータインポートをしようとしたところ、エクセルで【01】のものがインポートすると【1】になってしまいます。 エクセル上での【01】の表示形式は、分類:ユーザー定義、種類:00、になっております。 文字列に変えようとすると、してみましたが、【1】になってしまいます。。。。  どのように、したら、【01】としてインポートできるのでしょうか。教えて下さい。

  • ACCESSでの大容量データインポート

    2.6Gもある大きなデータベースをテキストファイルでもらったので、エクセルでは開けないのでACCESSを使おうと思い、ファイル-外部データの取り込み-インポート で取り込もうとしたら、「ファイル<ファイル名>にはデータが含まれていません。」とエラーメッセージが出てしまいます。それで、テキストエディタでこのファイルを先頭の容量の限界まで読める分だけ読み込んでそれをそのまま保存して、同様にACCESSで読み込もうとすると今度は成功します。だけど、これでは元のデータの1%くらいしか読めません。何で、データは確かに存在しているのにこのようなエラーメッセージが出るのでしょうか。どなたかわかる方がいらっしゃったら教えてください。

  • accessへのexcelデータのインポート

    友人からもらったaccess(2000)の管理表にEXCEL2003で作ったデータをインポートしたいのですが、類似質問も調べてみたのですがわからないので、教えてください。 管理表にはすでに、テーブル、クエリ、フォームが作られています。 テーブルの既存データをすべて削除して、新しいexcelデータをインポートしたいのです。 1.既存のテーブAを開き外部データの取り込みからexcelデータをウィザードに従って進めていくと、テーブルAはすでに開いていますとなり、インポートできません。 2.次に開かない状態で同様に進めて、インポート先のテーブルAを指定して完了をクリックするとインポートするときにエラーが発生し、インポートできませんとメッセージが出ます。 3.excelのシート名での新規データインポートは出来るのですが、既存のテーブルAに新しいデータのみインポートするにはどのようにすればいいのか?教えてください。 4.既存の管理表にはテーブルが20、クエリが50、レポートが13で構成されていて、その中の2つのテーブルに新規データ(約2000件)をインポートしたいのです。 まったくの素人に毛が生えた程度で思い違いもあるかと思いますが、データのみ変更してソフト自体はそのまま使用したいので、よろしくお願いいたします。 質問の内容に不足がありましたら補足しますのでよろしくお願いいたします。