- 締切済み
ExcelデータとAccessデータとの件数比較
【 問題となっていること 】 Excelのデータが元データですが、これをAccessで取り込む際にデータの件数が変わってしまうことがありました。 この誤差がちょっとした問題になってます。 【 聞きたいこと 】 元のExcelのデータの件数をカウントし、さらに取り込んだ先のAccessのデータの件数をカウントしたい。 何かいい方法はありませんでしょうか? 【 注意点 】 ・Excelのデータは変更できない。したがって、csvやtextなどに出力して・・・という方法が使えません。 ・データの件数は10数件の時もあれば膨大な件数(Excelで読める範囲)になることもあります。 何だかテンパってて情報が足りなかったりしたらすみません。 どなたかこんなワガママな状態のデータの件数をカウントする方法をご存知でしたら、お知恵を貸してください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17070)
エクセルもアクセスも内容の表示性と言うことでは、ほぼ完璧なソフトです。プログラムを組んだり別ソフトなしで内容が見られます。なのにアクセスと件数が違うなんて理由がわからないなんて信じられない。 両者見くらべれば、原因について、何か感想を持つでしょう。 エクセルはデータベースと言っているのは、第1行が項目見出しで2行目からが明細で、最終行数-1がレコード数でしょう。 (1)間に空白行があるのかそれをレコードとしてカウント(アクセスへ引き渡し)したいのか (2)コメント的な行はないのか (3)アクセスへ引き渡したのは、インポートか独自の プログラムか。独自のプログラムなら(2)など飛ばすなど何とでもなります。 もしインポートなどなら、そこからエクセルへ戻して、元のエクセルと、両者比べれば。 >・Excelのデータは変更できない。したがって、csvやtextなどに出力して・・・という方法が使えません テキスト形式ファイルに出力してもExcelデータはなんの影響もありません。「使えませんとは?」原因究明のためぐらいには使ったらと思いますが。 (4)いつも少数件数食い違うのか。食い違ったり食い違わなかったりするのか。 (5)なにか特徴らしきものが心当たりないのか。 プログラムミスの追及なども、この点の発見能力を磨くことにあります。 OKWEBは謎解きの場ではないのだから、質問者は出来るだけ、それらしいという情報でも上げないと、回答者の能力とは別に、適切な回答が出せないと思う。
- O_cyan
- ベストアンサー率59% (745/1260)
元のExcelをテーブルにリンクすれば良いのでは。 リンクした元のExcelのレコードをカウントし取り込んだレコードの件数もカウントし比較すれば良いと思いますが。 どういう環境かはわかりませんがAccessのテーブルに元のExcelをリンクしそのままテーブルとして使えば問題ないのではと思いますが。
お礼
O_cyanさん、ありがとうございます。 > 元のExcelをテーブルにリンクすれば良いのでは。 Accessから元のExcelをテーブルにリンクさせてみる方法も試してみましたが、結果は同じでした。 やはりカウントすると取り込む前と取り込んだあとの件数は変わってしまいます。 解決にはなりませんでしたが、ヒントをいただけて助かりました。 どうもありがとうございました。
- popesyu
- ベストアンサー率36% (1782/4883)
>データの件数が変わってしまう ということであれば、DAOなりでRecordSetを使って取り込み作業を行っているということなんでしょうかね? ということであれば何らかのエラー処理でわざと弾いているのではないかと思えるのですが。それが仕様なのかバグなのかは分かりませんが開発した人に確認を取るのが一番かと。 それ以外の事情では「データの件数が変わってしまう」ということが起きるはずはなく、まぁ操作ミスとかなら考えられますが、システムの想定が全く付かないのでも少し具体的な情報がほしいです。 そもそもどんなアプリなのか、言語は何、自作されたものなのかとか。 単純にカウントするだけならWSHでも両方のデータの件数ぐらいは数えられますけども、実際にしたいのはそのアプリ上での話なんですよね?
お礼
popesyuさん、ありがとうございます。 > DAOなりでRecordSetを使って取り込み作業を行っているということなんでしょうかね? そうです。まさにその通りです。 > そもそもどんなアプリなのか、言語は何、自作されたものなのかとか 動かしているアプリは独自のアプリケーションで開発言語は C++ というところまでは探り当てました。 わたしが初心者でいきなり担当にされ、まだシステムそのものも理解できないうちに起きた事象だったために混乱して必要な情報も何もなくて、大変すみませんでした。 Excelのデータは色々な複数の方々が報告を入力されてきます。 入力の大元はExcelで入力され、メールに添付されてこちらにやってきます。 これを自動的に1つのExcelファイルにまとめられるプログラムが組まれていて定時になるとAccessに取り込む、というものだそうです。 複数の人が入力してこちらに送られてきますが、その入力されるデータそのものに異常があることも否定できない状況です。 > 開発した人に確認を取るのが一番かと。 開発した方に連絡取る方法を模索しています。 すでに現在このシステムを使用していた会社は吸収合併され、作った方は外部の方、しかも退職されて現在どこにいるかわからないという・・・何とも困った状況です。 とりあえず、そちらから何らかの情報を得て頑張ってみようと思います。 情報も何もなくとんちんかんな質問にレスいただけただけでも幸いです。 ありがとうございました。
補足
imogasiさん、ありがとうございます。 > 第1行が項目見出しで2行目からが明細で、 Excelの件数はもちろん見出しの行は除いてカウントしております。 (1)間に空白行があるのかそれをレコードとしてカウント(アクセスへ引き渡し)したいのか 空白行はありません。 (2)コメント的な行はないのか これもありません。 (3)アクセスへ引き渡したのは、インポートか独自の プログラムか。 独自のプログラムで動かしているようです。しかし、プログラムのソースはわたしでは見ることが出来ません。 > テキスト形式ファイルに出力してもExcelデータはなんの影響もありません。「使えませんとは?」 ためしにバックアップを取った状態でテキスト形式やcsv形式で出力して試してみました。やはりどの形式に変換してもデータの件数は合いませんでした。 元のExcelとcsv、textでは件数は同じですが、Accessに取り込んだ時点で件数が変わってしまっています。 特に空白や改行などもなく、他のきちんと取り込まれるデータと同じように見えます。 (4)いつも少数件数食い違うのか。食い違ったり食い違わなかったりするのか。 今回1件のみ食い違いました。普段は食い違いの起きたことはありませんでした。 (5)なにか特徴らしきものが心当たりないのか。 色々試行錯誤してみましたが、同じ情報を手入力した場合にはキチンとカウントされることがわかりました。 しかし、該当するデータそのものをコピペした場合はカウントされませんでした。 おそらくデータそのものがおかしいのではないか、というところまでは断定できましたが、入力するのは多数の方になるので、入力した方を特定することができませんでした。 言葉足らずで申し訳ありませんでした。 > OKWEBは謎解きの場ではないのだから、 厳しいご意見ありがとうございます。 肝に銘じて今後の参考にさせていただきたいと思います。 お忙しい中、ご意見いただきましてありがとうございました。 もうしばらく試行錯誤してみたいと思います。