メールを受信。
引き継ぎファイルを読み込んだら、フォーマットエラーになりました。 該当レコードの、配送先名が1バイト多いか、配送先住所の前にスペースが入っているようです。 調査願います。
引き継ぎファイルは、固定長のテキストファイル。 それに合うように、わざわざ Access2000 上にテーブルを定義して、そこにデータを書き込み、TransferText で書き出したものだ。 フォーマットがずれることは無いはずなんだけどな。 そう思いながらも、現地から送ってもらったデータを使って、引き継ぎファイルを作ってみたら …ずれてるよ、おい。
問題のレコードを眺めてみる。 ローマ数字の2が入っている。 ひょっとして、こいつのせいか? と、ローマ数字の2を、普通の2に置き換えてやってみる。 上手くいく。 いろいろ試してみるに、 機種依存文字が入っていると、固定長テキスト出力したときに桁ずれが起きる らしい。 本来は、元データを作る方で、機種依存文字を入れないのがルール。 つまり、ここにこんな文字が入っていることが間違いなのだな。 とりあえず俺のせいじゃないことは判った。
機種依存文字って言うけど、こいつら、Windows 独自の文字のはずだよな。
何でそんなものがちゃんと扱えないんだ?
と、Microsoft のサイトを検索したら、該当する不具合情報があった。
それによると、
ギリシャ文字,ロシア文字,罫線素片,囲み英数字,アラビア数字,単位記号,省略文字,囲み文字,年号,数学記号が入っていると駄目
らしい。
原因不明で調査中らしい。
Access97 では発生しないらしい。
何の解決にもならんな。
すみませんの一言ぐらい載せとけよ。