• ベストアンサー

Access2003でファイルを検索したい

Access2003にて指定したフォルダのファイル名を検索して、その名前をテーブルに保存することは、可能なのでしょうか?

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

  • ベストアンサー
  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.3

No2の方の答えとかなりかぶるけど、せっかく書いたからとりあえず載せておく。 こっちは、FSOとADOを使っているので参照設定で Microsoft ActiveX Data Objects Library のひとつと Microsoft Scripting Runtime にチェックを入れる必要がある。 サブフォルダを検索ということになると再起処理を行うことによって可能。 Private Sub コマンド0_Click() Dim strPath As String Dim FSO As New FileSystemObject Dim objFLD As Folder Dim objFLS As File Dim CON As ADODB.Connection Dim strSQL As String Set CON = CurrentProject.Connection strPath = "C:\Documents and Settings\Administrator\My Documents" Set objFLD = FSO.GetFolder(strPath) For Each objFLS In objFLD.Files If Right(objFLS.Name, 4) = ".mdb" Then strSQL = "INSERT INTO TABLE1 VALUES ('" & objFLS.Name & "')" CON.Execute strSQL End If Next Set CON = Nothing Set objFLS = Nothing Set objFLD = Nothing Set FSO = Nothing End Sub

その他の回答 (2)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

http://oshiete1.watch.impress.co.jp/qa6994409.html のNo1を少し改良して。 フォルダ名を「マイフォルダ」とします。 テーブル名を「Tファイル」とし、フィールド名を「ファイル名」とします。 フィールドはフルパスを格納する場合はメモ型にしないとデータがあふれて、 エラーがでる可能性があります。 以下はDAOを使っているのでDAOにチェックをいれてください。 Sub test() Dim db As DAO.Database Dim rs As DAO.Recordset Dim strPath As String Dim myFile As String 'strPath = "C:\Documents and Settings\user\デスクトップ\マイフォルダ" strPath = CurrentProject.Path & "\マイフォルダ" Set db = CurrentDb Set rs = db.OpenRecordset("Tファイル", dbOpenDynaset) myFile = Dir(strPath & "\*.*", vbNormal) 'ファイルの検索、取り出し Do While myFile <> "" rs.AddNew rs!ファイル名 = strPath & myFile rs.Update myFile = Dir() Loop rs.Close: Set rs = Nothing db.Close: Set db = Nothing End Sub Acceeファイルを置いている同じフォルダにフォルダが 存在する場合は、フォルダまでのパスは、 strPath = CurrentProject.Path & "\マイフォルダ" フルパスで指定する場合は、その上の方法で。

  • ShowMeHow
  • ベストアンサー率28% (1424/5027)
回答No.1

vbaで書けば可能です。 ファイル検索 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_130.html こういう方法もあるみたいだけど、2007以降では動かないということで地道に FSOを使って全件検索したほうが良いかもしれない。 テーブルに書き込む いろいろな方法があるけ ・フォームをつくりテキストボックスなどに対象ファイル名をVBAで書き込んでおいて 追加クエリを走らせる ・ADOなどでSQLを実行させる。 私だったら、全件検索+ADOでついかを書くかな。 多分15行から30行の間でできると思う。

関連するQ&A

  • ファイルの検索方法

    自分で作成した普通のワードのファイルなのですが、保存した数が多くなってくると、何処へ保存したのか見当がつかなくなります。 その際、スタートボタン→ファイル名を指定して実行・・・で、保存したファイルの一部分の名称を入力し、自分のパソコン内のファイルの検索を開始するのですが、エラーメッセージのような物が出てきて見当たりません。 でも、私がファイルを保存したのは間違いなく、このワードの文章は、何の細工もしていない、ただのワードの文章なのです・・・。 試しにスタートボタン→ファイル名を指定して実行の機能で、フォルダの検索をした所、フォルダの検索は、保存したフォルダの一部分を入力しただけでも見つけられました。 スタートボタン→ファイル名を指定して実行という機能は、その名の通りファイルを見つけられる所ですよね? でも、実際使うとフォルダの検索にしか使えないのですが・・・こういうものなのでしょうか? ファイル名を指定して実行という機能は、ファイルの検索には使えないんですか?フォルダの検索機能の事なのですか? それとも他に、ソフト等を使わずに、保存したファイルの検索方法は有るのでしょうか? 保存したファイルはワードで何の変哲もない、たわいない文章です。 文章が長くなり、大変申し訳有りません。

  • アクセスでフォルダー内のデータ検索の仕方

    お世話になります。 アクセス(エクセルからのインポート)のテーブルにxxxxxx.tifという6桁(xはすべて数字)の画像ファイル名を保存したレコードがあるとします。 また、Aというフォルダ内に、レコードに対応した、xxxxxx1.tif~xxxxxx5.tifと言う7桁の名前のファイルが保存されています。 アクセスの6桁のファイル名とAフォルダ内にある7桁中の上6桁は同じ数字で、下1桁で別ファイルとしてあります。 このたびアクセスを利用して、上6桁が合致したファイルを候補としてリストアップし、さらにそこからファイル名をクリックすると対象ファイルを閲覧することができるシステムを作ろうと考えています。 つきましては、アクセスで特定フォルダ内のファイルを検索し、候補を表示する方法をご教示いただければありがたいのですが。

  • AccessでのCSVファイル取り込みの自動化をしたいのですが。

    AccessでのCSVファイル取り込みの自動化をしたいのですが。 D:\DATA\というフォルダの下に「01」~「99」という99個のフォルダがあり、すべてのフォルダの中に「item.csv」「kaku.csv」,「kumi.csv」,「time.csv」,「total.csv」という存在します。 毎日01-99に順番にデータが格納されていきます。そのデータを毎日、Accessのテーブルに保存する作業を自動化(「01」~「99」のフォルダ指定)にしたいのですが出来ません。 どなたかご教授ください。ちなみにAccessのテーブルはCSVのファイル名と同じです。

  • ファイルの検索

    Windowsの検索機能でファイル名を指定あるいは、拡張子を指定することでファイルを検索することができますが、 複数のフォルダのみって訳にはいきません。 複数のフォルダのみを指定してその中を検索させる ソフトはないでしょうか?

  • ファイルアクセスについて

    Windowsの「ファイル名を指定して実行」から他ホストの下記フォルダにアクセス使しようと考えています。アクセスするにはどのような文字列を入力すればよいのでしょうか。 他ホストの情報 ホスト名:aaa アクセス先フォルダ名:C:\test\siken また、「ファイル名を指定して実行」からアクセスするに当たり、入力方法の定義についても教えていただけませんでしょか。

  • AccessからExcelの操作

    Accessのテーブルデータをエクスポートし、そのExcelを名前をつけて保存したいのですが、どのようにすれば良いのでしょうか。 このとき規定の保存するフォルダ、名前の設定はどのようにすれば良いでしょうか。 また、AccessからExcelを操作することで時間がかかるようなことはありますか。 ※指定したExcelにテーブルデータをエクスポートでも可です。

  • アクセス97のファイルをアクセス2007で開くには

    はじめまして。 手元にAccess97で作成したmdbファイルがるのでが、Windows7環境のAccess2007で開くことができません。 エラーメッセージは、「オブジェクト 'テーブル1'が見つかれませんでした。オブジェクトが存在していること、名前やパス名が正しいことを確認してください。」となっています。 このファイルをAccess2007で開くためには、いったんAccess2000~Access2003で保存し直したうえで、Access2007で開く必要があるという情報をMSのページで見ました。 しかし私はAccess2000~Access2003環境を持っておりません。 そのような中で、このAccess97で作成したmdbファイルを開かなければならないのですが、何か方法はないでしょうか。 ご教示いただけると誠に幸いです。 どうぞよろしくお願いいたします。

  • Accessのデータベースのファイル名

    AccessのADODBを用いたデータベースの接続するコードについて教えてください。 Access内で保管しているテーブルに接続したく、やり方を調べてみたのですがいまいち分かりません。ウィンドウでは開いておらず、Currentのデータベースではないのでファイル名を指定しなければいけないのですが、Access内で保管されているのでファイル名が分かりません。どうやってウィンドウで開かれていないAccess内のテーブルに接続するようにすればいいのか分かりません。 Access内のデータベース(テーブル)のファイル名の調べ方も知ってる方いらっしゃいましたらお願いします

  • OSでのファイル検索について

    みなさん、はじめまして。 今、メールマガジン等の文字主体のファイルを整理しております。 後からWindowsの「検索-ファイルやフォルダ」で検索を かけて必要な情報を抜き出そうと考えておりました。 整理方法としては、関連のある文字情報を一つのファイルの中にコピー&ペーストして 保存し、それに関したファイル名で保存しております。 ここまでは順調だったのですが・・・ 試しに「検索-ファイルやフォルダ」で、 「含まれる文字列」の項目にファイルの中身にある文字列を入力し、 検索してみると、思った結果が出ないのです。 例えば・・・ ファイル名「コンピュータ用語」 ファイルの中身にある単語「Access」 ファイルの形式「.doc」 含まれる文字列「Access」 検索結果・・・見つかりません という感じになってしまうということです。 明らかにファイル内では使われていることはわかっているのですが、 それが検索結果に表示されないというのは、 なんとももどかしく・・・(^_^;) 検索の使い方はあっていると思うのですが、 このような際に原因として考えられることは何かないでしょうか? どうかご助言お願いいたします。m(__)m

  • Excelのファイルが保存できません。

    仕事先のサイトからExcelで作られた納品書をダウンロードしいったんは保存できるのですが、入力して保存が出来ません。入力しなくても他の場所に別名で保存できません。 「テンポラリドキュメントに保存されたので、新しい名前を付けて保存してください」と出ます。 名前は「納品書」もしくは「納品書2」、または「nouhin」「nouhin.xls」と試しましたが駄目でした。 又は「ファイルにアクセス出来ませんでした。次のいずれかを行ってみてください。 ・指定したフォルダがあることを確認します。 ・ファイルを含むフォルダが読み取り専用になっていないことを確認します。 ・指定したファイルの名前に次のいずれかの文字も含まれていないことを確認します。:<>?[]:|* ・ファイル名及びパス名が半角で218文字より長くないことを確認します。」と出ます。 どなたか保存方法を教えてください。 よろしくお願いします。

専門家に質問してみよう