• ベストアンサー

Accessでmdbが開いているかのチェック

Access97/2000で、特定のフォルダにあるmdbを順に最適化しようと思います。 dir や ファイルオブジェクトで一覧を作り、順に処理していこうと思います。その場合、一覧に開いているmdbがあると、そこでエラーになります。 この際、開いているmdbだけをとばしたいのですが、このチェックはどのようにすれいいでしょうか? よろしくお願いします。

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

  • ベストアンサー
noname#7749
noname#7749
回答No.1

> このチェックはどのように *.LDBが存在し、かつ削除できない場合は「開いている」と判断できます。 条件文を「削除できない場合」としたのは、Access が異常終了した場合に *.LDBが残存する点を考慮したものです。

abcxyz3000
質問者

お礼

ありがとうございました。 *.ldb の存在を忘れていました。 それを、キーにしてみます。 また、よろしくお願いします。

関連するQ&A

  • ACCESSのmdbファイルが壊れました・・・

    アクセスでmdbファイルを起動中にPCがフリーズしてしまい,再起動をさせました。 その後,mdbファイルを起動させようとしたところ, 「修復が必要であるか,データベースファイルではありません。データベースを開いているときに,いずれかのユーザーがACCESSを終了しました。修復しますか?」 というエラーメッセージが出ます。 当然修復を選択したのですが,すると修復中にAccessが強制終了してしまいます。 なお,そのmdbファイルと同一フォルダー上にmdbファイルと同一名のaccess.lockfile.9という形式のファイルが1つ存在します。 このような状況の場合,修復は可能なのでしょうか? ファイルの一部分でも復活させたいのですが・・・。 よろしくお願いします。 なお,OSはwin2000 pro,ACCESSは2000です。 よろしくお願いします。

  • AccessのMDBファイルを開く際に、”オブジェクト”XX"が見つかりません”と表示される。

    Access2003で作成したMDBファイルを他のPCのAccess2003または2007で開く際に、”オブジェクト”XX"が見つかりません・・・・”と表示されて開けない場合があります。 ”場合がある”というのは必ずしもファイルが壊れている訳では無い様で、複数のPCにおいて開けたり開けなかったりします。Access2007でも開けたり2003でも開けなかったりすることから、Ver.によるものではない様なのですが、何が原因か?教えていただけませんでしょうか?

  • VBからmdbファイル(Access2000)の特定のフォームを開きたい?

    VisualBasicのフォームに配置したコマンドボタンをクリックすることで、特定のmdbファイルをAccess2000で開き、開くと同時に特定のフォームが表示されるようにしたいのですが、こんなことできますか?できるとすればどのようにすればよいのですか? 例えば、C:\商品管理\在庫一覧.mdbにフォーム商品があるとしたとき、 Form1のcommand1をクリックすると、C:\商品管理\在庫一覧.mdbがAccess2000で開き、フォーム商品が最初に表示されるようにしたいのですが・・・ ちなみに、Access2000の起動時の設定では他のフォームが最初に開くようになっています。 よろしくお願いします。

  • Access2000のMDBファイルをVBScriptやWSH?で

    Access2000のmdbファイルがあります。 VBScriptでテーブル名の一覧をテキストに落としたり、 特定のテーブルのレコードにあるデータに1.05を掛けて テキストにcsvの形で出力させたいのですが、何か良いサンプルはあるのでしょうか?

  • MDBのアクセス権

    VB6で、MDBファイルを操作しています。 Set myws = DBEngine.Workspaces(0) Set mydb = myws.OpenDataBase("xxx.MDB")で MDBを開いています。 インストールがadministratorで行うとなんら問題が無いのですが、それ以外のユーザーの権限でアクセスするとエラーになります。EXEは実行しているようです。 1:そのユーザーのMyDocumentにインストール 2:ProguramFilesにそのユーザーの権限を与える。 3:他のユーザーで実行 のいずれも動作しますが、先方の要求はあくまでもインストーラでなんら操作せずとも実行できるとの事です。もしくはバッチファイルを組む。 というものです。 インストーラは、VisualStudioInstallerを用いてます。 MDBファイルさえアクセスできれば良いのですが、adminiのパスワードなども全てのマシンで異なります。 良いアイデアがあれば、教えてください。よろしくお願いいたします。

  • Microsoft Accessのデータが、別々のmdbファイルとして

    Microsoft Accessのデータが、別々のmdbファイルとして2つあります。Accessを持っていないので、OpenOfficeで開いています。このmdbファイルにあるテーブルをまとめてOpenOfficのBaseで開くことはできないでしょうか? 具体的には、Microsoft Accessのデータ、「aaa.mdb」「bbb.mdb」というファイルがあります。 「既存のデータベースに接続」>「Microsoft Access」で、「aaa.mdb」や「bbb.mdb」に、個別に接続して新規データベースを作成することはできたのですが、どちらのmdbファイル内にあるテーブルも参照してクエリを作りたいんです・・・。 また、過去に無理矢理「bbb.mdb」のテーブルをCtrl+c>Ctrl+vで「aaa.mdb」にコピー&ペーストしていたこともありましたが、今回はテーブルサイズが大きいせいか、エラーになります(メッセージ:エラーが発生しました。コピー処理を続行しますか)。 データベースに関する基礎知識が足りないので、そもそもそれができるかどうかも分かりません。 Webで検索しても参考になるサイトを見つけられませんでした。 よろしくお願いいたします。

  • mdbの最適化

    mdbの最適化をVB6、またはExcelVBAで行っています。 DBEngine.CompactDatabase "最適化対象mdbのフルパス", "最適化後mdb一時ファイルのフルパス" Kill "最適化対象mdbのフルパス" Name "最適化後mdb一時ファイルのフルパス" As "最適化対象mdbのフルパス" 処理できていたのですが、パスワードつきのmdbの場合DBEngine.CompactDatabaseでエラーになります。 エラーは「パスワードが違います」です。 パスワードはどのように指定するのでしょうか? Database Password=abcの場合、 DBEngine.CompactDatabase "最適化対象mdbのフルパス", "最適化後mdb一時ファイルのフルパス","Database Password=abc"などいくつか試してみましたがダメでした。 どなたかお教えいただけませんか。

  • EXCELのVBAでWORDが開いてあるかチェック

    EXCELのVBAで特定のWORDが開いてあるかチェックしたいのですが、 あるフォルダにWORD文章があるかチェック      set appWord=GetObject(,"Word.Application")      Msgbox appWord.Documents.count なければエラー処理で終了 そのWORD文章の名前を取得      docFile=....    (仮にABC.docxという名前だとしますと) そのWORD文章が誰かが使っている(開いているか)チェックしたいのですが.. 1.使われているなら、-$ABC.docxが作られているはずだから    dir(-$ABC.docx)として、あれば使われていると判断したいのですが、    実験するとdir(-$ABC.docx)は、使われて実際にそのファイルがあっても    falseになってしまいます。dir関数でなくてもいいので、このファイルの    有無を調べる方法はないでしょうか? 2.その他、読み取り属性とかをみて判断する方法はないでしょうか?    ただし、使われている場合は、10秒ごとにチェックをいれて、    使われていない場合に、初めて開くので、エラー処理で逃げるのは    ダメなのですが。

  • Access VBA で フォルダ権限をチェックする

    フォルダの有無を以下のようにチェックして フォルダがあった場合はフォルダの権限をチェックしてそのフォルダ内にmdbを作成するという事を行いたいのですが、 フォルダのアクセス権限かあるかどうかのチェックの仕方がわかりません。 Dim ExtDirName1 AS String ExtDirName1 = "C:\TEMP If (objFileSys.FolderExists(ExtDirName1) = True) Then   'ここでフォルダのアクセス権限をチェック 'フォルダがあった場合はこのフォルダにmdbを作成 End IF よろしくお願いします。

  • Accessのセキュリティ対策

    Accessで業務用のアプリケーションを作成し サーバ上の特定のフォルダに置いてあります。 ファイルはmdbファイルです。 テーブルもクエリもフォームもレポートも 何もかも一つのmdbファイルの中にあります。 そして、各クライアント(約15台)のデスクトップに サーバ上に置いてあるmdbファイルのショートカットを 配置し、各自に利用してもらっています。 サーバ上の特定のフォルダは 言ってしまえば社員であれば誰でも見れることが できるフォルダなので、mdbファイルを削除または コピーすることが可能です。 同じようにAccessで業務アプリケーションを作成し その中に重要なデータを格納してある場合、 どのような対策を講じていますか アドバイス宜しくお願いします。