環境:VB6.0、access2003 os:winxp
現在、フォルダ毎にPDFファイルを振分けています。ファイルは大量(約18万件)あります。すべてのフォルダ毎のファイルはfilesystemobject系でフルパスも含めてlistboxにリストアップすることができましたが、レコードに収めたものを省いてリストアップできないのでしょうか?
現在は「一旦すべてのファイル(サブフォルダも含む)をLISTBOXに表示して、SQLにてレコード内をLISTBOXの一行目のファイル名から検索し、あれば、その行は削除し、レコード内に無ければ、そのまま」みたいな事をしています。もっと効率の良い方法があればおしえてほしいです。
よろしくお願いします。
何言ってるか分かりません。
ファイル名をリストアップする前にDBに登録してSQLで抽出すれはよいのでは?
ListBoxに18万ファイルもの文字列をAddしているんですか?
無茶苦茶ですネ!
簡単にするならな、レコードを収めたものと表現されているDBの
テーブルをAとし、フォルダからファイル検索でファイル名を取得
したものを格納するテーブルBを作成します。
あとは、SQL1発
Bテーブルにあって、Aテーブルに無いレコードを抽出するSQL
文を発行すれば結果取得できます。この場合、キーはファイル名。
ほかにもいろいろ細工しないといけない要件が隠れているようには
思いますが・・・
以上。参考まで
今現在(15:00頃)LISTBOX内で検索して、該当するものがあれば、LISTBOX内で削除(List.RemoveItem)して、結果を表示させるまでこぎつけました。
ファイルは自動的に各フォルダに振り分けられて、今後も増えるので、再出さん、オショウさんの意見を受止めて、DB内で処理できるように試して見ます。
貴重な意見ありがとうございました。
また、つまづいたらよろしくお願いします。