- ベストアンサー
Access97のインポートエラー
mnabeの回答
んとね。 TransferTextを使用しているとの事ですが、使用している方法を教えて下さい。 『On Error Goto』を使用している所を見ると、マクロではなく、VBAをしようしているのですよね。 そのソース部分を提示して下さい。試して見て解決策を考えてくれる酔狂な人がいるかもしれません。 TransferTextのヘルプの最後に、『~メソッドを使う事が出来ますが、DAOを使う事をお薦めします。~』って記述があります。 ここは素直に、DAOを使って作った方が工数はかからずに出来ると思います。よ。そうすれば、クエリも使えるし、いろいろ手法が出てきますからね。 遅いのと、仕様未達では、どちらの方が印象が悪いか考えましょう。処理時間がかかるが、仕様を達成出来る代物と、重複するキーが無い時には仕様を達成出来るが、そうでない場合には、仕様未達では、前者の方がましだと思います。よ。 出来る事は出来るんですからね。 そこで....一つ考えてみました。 条件1.現在のコードは出来る限り変えたくない。 条件2.エラーメッセージを出したい。 手順案1 1.現在のインポート先と同じ定義を持つテーブルを、キーの重複を許可して作成する。 2.そのテーブルに、TransferTextを使用して、データを取り込む 3.追加クエリー(勿論重複部分を抽出しない様にしてね)を作成して、本当のインポート先に追加する。 4.追加クエリーのときに使用した抽出条件で、抽出クエリーを作成して、データ件数を求める。 5.重複を許しているテーブルのデータ件数を求める。 6.(4)の件数と(5)の件数を比較して、(4)の方が少なかったらエラーメッセージを表示する。 → ざぁっと作ってみましたが、処理時間は単純に倍程度になります。 手順案2 1.インポート元のテキストを全部なめて、キー重複がない様なテキストとして生成する。 2.そのファイルをインポートする。 3.テキスト生成時に、重複があった場合には、フラグを立てて、メッセージを表示する。 → テキスト処理部分を、C言語等々で書けばかなりの高速で処理出来る。Accessだけでやった場合には、やはり2倍程度の速度が必要。 こんな所ですかね(^^;
関連するQ&A
- Access インポート時のエラー処理
お世話になります。 Access2010 csvファイルをインポートするツールを作成しました。 フォーム上に設置した「インポート」ボタンを押すと、所定のcsvファイル をインポートします。 ※事前にtempテーブルを作成しておき、そこにインポートします。 DoCmd.TransferText acImportDelim, , temp, 所定のパス, True <質問> インポート時に、稀にデータ変換エラーとなります。 データ変換エラーに限らず、エラーが発生した場合はエラーメッセージを 表示し、処理を中断したいのですが、どのようにすればよいのでしょうか。 ※データ変換エラーの場合、特にエラーメッセージも表示されず、普通に 処理が進んでしまうので、エラーが出ていたことすら気づきません。 インポート後、作成されたエラーテーブルの有無チェックすればいいかと 思ったのですが、それだとどのような内容のエラーなのか、そのエラー テーブルを開いてみないと分かりません。 ※当該ツールの使用者はAccess Runtimeを使っているので、エラーテーブル の中身を確認することは出来ません。 エラーコードを拾ってそれに該当するエラーメッセージを表示させることに なるかと思うのですが、その拾い方やエラーコードが分からずにいます。 ご教示の程、宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- アクセス インポートファイルの再インポートを防ぐ
アクセス2003を使用しています。 アクセスにて、エクセルファイルをインポートしています。 既にインポートしたエクセルファイルを再度インポートしないように、再取込みを行おうとした場合、 「既に取り込んでいるファイルです」とエラーメッセージを表示させて、取込み防止を行おうとしています。 クエリの重複チェックを設定していたのですが、行き詰ってしまいました。 アクセスのテーブル先頭フィールドの日付データ(yyyy/mm/dd)でチェックしたいと思っています。 教えてください。よろしくおねがいいたします。
- ベストアンサー
- オフィス系ソフト
- Access2000のテーブルのインポートについて
現在、マクロのテキスト変換を使用して5件のテーブルを、毎日インポートさせているのですが、新しいデータをインポートするたびにデータが重複してしまいます。 理想は、新しいデータをインポートするたびにすべて上書きされる様にしたいのですが、どなたか教えていただけないでしょうか。 どうぞよろしくお願いいたします。
- ベストアンサー
- その他(データベース)
- 重複データのエラー処理
アクセス2002 XPの使用環境です。 CSVファイルよりアクセスのテーブルにインポートする時に キーを設定して重複データのインポートを避けていますが アクセスのエラーを非表示にしてエラーメッセージを出したいのですが うまく動作しません ご指南ください。 Private Sub データ取込_Click() On Error GoTo myErr DoCmd.SetWarnings False DoCmd.TransferText acImportDelim, , "データ取込", "c:\データ.csv", False MsgBox "データを取り込みました" DoCmd.SetWarnings True Exit Sub myErr: MsgBox "重複していますのでデータを確認してください" End Sub 正常の場合 データを取り込みました 重複の場合 重複していますのでデータを確認してください というメッセージを出したいのです。
- ベストアンサー
- Visual Basic
- アクセスで、毎回インポートエラーが出るのはなぜ?
アクセス2003に、エクセルデータをインポートする時に、 「テーブル$_インポート エラー」というテーブルが作成されてしまいます。 取込み自体は出来ているようなのですが、どのテーブルにインポートしても、毎回同じ内容の、このエラーテーブルが別に出来てしまいます。 何か致命的な問題があるのでしょうか? 困っています。どうか宜しくおねがいします! 「テーブル$_インポート エラー」のデータシートビュー内容↓ エラー フィールド 行 データ型の変換エラー F4 11 データ型の変換エラー F9 11 データ型の変換エラー F4 22 データ型の変換エラー F9 22 データ型の変換エラー F14 22 データ型の変換エラー F4 24 データ型の変換エラー F9 24
- 締切済み
- オフィス系ソフト
- アクセス2003でインポートしようとしたら、次のエラーメッセージが出ま
アクセス2003でインポートしようとしたら、次のエラーメッセージが出ます。先日までは異常なくインポートできていたのですが。 (エラーメッセージ) Columns'メッソドは失敗しました;’IImexGrid’オブジェクト マクロでエクセルからデータのインポートをしていたのですが、どう対処したらよいのか分かりません。 メッセージの意味と対処方法を教えてください。よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- アクセスにインポートできません。
Access97を使っています。 エクセルもcsvもインポートできません。 「外部データの取りこみ」→「インポート」で進み、 「ファイルの種類」を選択しようとしたところ、 一覧にエクセルもcsvも出てきません。 「Microsoft Access」と「ODBCデータベース」 のみです。 エクセルもcsvも検索はできますが、 インポートしようとすると 「データベース形式○○○を認識できません。」 というエラーメッセージが表示されます。 どうすれば解決できるでしょうか? よろしくお願いします。
- 締切済み
- オフィス系ソフト
- Access 外部データ インポートエラー?
Access2010で外部データ(Excel2010)インポートで以下のエラーメッセージが出ます。 このプロパティは外部データソースまたは 前のバージョンのJetデータベースエンジンで作成されたデータベースではサポートされていません。 Excelのデータは特殊なものはありません。日付は空欄と日付以外は入っていません。 他のデータは問題なくインポートされています。 宜しくお願いします。
- ベストアンサー
- その他MS Office製品
- 【Access】Excelインポート時にエラー
お世話になります。 OS:XP Pro Access2003 Accessのフォーム上よりExcelをインポートするように作りました。 インポートする際にローカルにある空っぽのテーブル(データ型のみ指定有り) をコピーし、そこにExcelのデータをインポートするようにしてます。 今まで特に問題はないので、プログラム的には問題なさそうです。 で、今日Excelをインポートした際に「キー違反のため、0件のレコードが失われ、0件のレコードが削除されました」というエラーが発生しました。 フォームからではなくファイル⇒外部データの取り込み より当該Excelをインポートしても特にエラーにはならずインポートできました(A)。 エラー時に「はい」を選択すると、とりあえずインポートはされるのですが(B)、AとBを比較するとBの方が2レコード少ないことがわかりました。 その2レコードのIDを調べ、ExcelからそのID2行を削除しインポートしたところエラー発生せず。 とりあえず何かしら問題のある行は分かったのですが。。 ・その行のID以外のセルを全てまっさらにして、インポートしてもエラー。 ・この行の書式がおかしいと思い、別の行の書式をコピーしてはりつけ後インポートしてもエラー。 ・この行のリスト外のセルに余計なゴミがあるかもと思い、リスト外の列を全て削除するもエラー。 ・いったんこの2行をコピーして別シートに貼り付け。その後、リストから2行削除し、2行挿入して コピーしておいた2行を値で貼り付け。で、エラー。 ・IDが重複していないことを確認。 今までエラーが出たとしても上記対処でエラーは解消されていたのですが、今回ばかりは何が原因かわかりません。 どのようなことが考えられますでしょうか。ご教授の程よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- Accessへのインポートについて
ExcelからAccessへデータをインポートするとどうしても文字列で09と表示しているところがインポートエラーになり空欄になってしまいます。前に0(ゼロ)がついているからだと思うのですが、インポート後テーブルでデータ形式を変更し入力すればいいんですが余りにも量が多い為、正常にインポートできるようにする方法はないでしょうか?
- 締切済み
- その他(データベース)
お礼
昨日はバタバタしていてお礼も出来ずすみませんでした。 いろいろ教えていただきありがとうございました。 結局クエリで解決させてしまいましたが、いろいろ勉強になりました。 今後の参考にさせていただきます。