• 締切済み

再起動しないとADOが使えなくなるのを回避したい

アクセスのモジュールを編集すると 再起動しないとADOが使えなくなるのを回避したいです。 アクセス2003を使っています。 アクセスのモジュールをいじるとADOを実行しようとした時に 「マシン'ユーザー名'のユーザー'admin'がデーターベースを開けない状態、 またはロックできない状態にしています」 になってしまいます。 これを回避する方法はありますか? 面倒だけどいちいちアクセスの再起動をしないとだめですか? ご回答よろしくお願いします。

みんなの回答

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

私は、DAOばかりでADOは使っていないのですが(汗) > これを回避する方法はありますか? こちらの環境(Windows XP Pro+Access2003)で同様の 現象が発生した場合に、私がとっている対応です。 そちらと全く同じ原因かは不明ですので、これで解決するかは わかりませんが、参考までに、ということで・・・(汗) 1)Visual Basic Editor(VBE)の画面を開く 2)「Ctrlキー+Sキー」の同時押しなどで、変更を保存 3)メニューから「デバッグ(D)→○○ のコンパイル(L)」を選択  するなどして、コンパイルを実行  (「○○」は、開いているMDBのプロジェクト名) ・・・以上です。 この現象は、恐らく「ユーザーによる直接編集」と「ADO等の プログラムからのアクセス」とが競合していることによる・・・の ではないかと思っています。 (エラーメッセージの内容から考えても:  ユーザーによって編集モードにされているため、ADO等による  実行モードに移行できない、と) ※ただ、保存のみでは解決せず、コンパイルまで実行すると解消  することが多かったので、この推測が正しいかは不明です(汗) なお、「○○ のコンパイル(L)」がグレーアウトしている場合は、 既にコンパイル済みなので、この手法は通用しない、という ことになります(汗) また、まれに、上記の操作を行っても同じエラーが発生した 場合に、もう一度上記のメニューを表示すると、1回目で グレーアウトしたはずの「○○ のコンパイル(L)」が再び使用 可能になっていることがあり、その際はもう一度同じ操作を すると、エラーにならなくなる、という現象がありましたので、 ご注意下さい。

  • goold-man
  • ベストアンサー率37% (8365/22183)
回答No.1

>マシン'ユーザー名'のユーザー'admin'がデーターベースを開けない状態、 またはロックできない状態にしています OSは?(XP,Vista,Windows 7?) 権限の異なるユーザが同じmdbにアクセスしようとすると.ldbが更新出来ないので、データベースを開けられません。 参考URL レコードロック http://www.accessclub.jp/bbs3/0015/superbeg6431.html 「□排他」にチェック http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1145389941 修正はありませんか? 例: http://support.microsoft.com/default.aspx?scid=kb;ja;248936 フォームをエクスポート、レポートをインポート http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1257044462

参考URL:
http://www.accessclub.jp/bbs6/0004/das705.html
n8y6fgfd
質問者

お礼

よく読んでみます。、 ありがとうございました。

関連するQ&A

  • vbaを修正するとADOが実行できなくなる。

    アクセス2003、vistaを使用しています。 vbaを使っていて、ADOを使っています。 アクセスを使っている間に いくつか修正したいところがあり、vbaコードをいじって保存し、 vbaを実行すると、 CN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.FullName ←の部分で RS.Open "Qタイトル", CN, adOpenStatic, adLockPessimistic 実行時エラー '-2147467259(80004005)' 「マシン '<マシン名>' のユーザー 'Admin' が データベースを開けない状態、またはロックできない状態にしています。」 となります。 一度ファイルを閉じて再度開くと問題なく作業できますが これは何故起こるのでしょうか? 一応調べてみましたが http://www.accessclub.jp/bbs/0017/beginers7727.html http://okwave.jp/qa4388870.html 解決には至りませんでした。 よろしくお願いします。

  • 保存をすると再開できる時とできない時がある

    VBAコードを編集し保存せずに フォームビューでコマンドボタンを押しADOを含むコードを実行しようとすると 「マシン '<マシン名>' のユーザー 'Admin' が データベースを開けない状態、またはロックできない状態にしています。」 のエラーが出ます。 その時保存をすると再開できる時とできない時があるのですが どういう場合ができないときなのかわかりません。 ただ、フォームのデザインをいじると 確実に保存しただけでは再開できずファイルを一度閉じなければいけないのですが VBAコードだけをいじっても再起動しなければいけない場合があります。 このファイルは自分しか使ってないです。 わかりづらくてすいません。 宜しくお願い致します。

  • 実行時エラー'-2147467259(80004005)':

    エクセルからADOでアクセスに繋ごうとしたときに 実行時エラー'-2147467259(80004005)': マシン'マシン名'のユーザー'Admin'がデータベースを開けない状態、またはロックできない状態にしています。 というエラーが出てしまいます。 書いているコードは以下です。 Public cn As ADOdb.Connection Set cn = New ADOdb.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb" test.mdb自体はテーブルもクエリもフォームも何も開いていない状態です。 一度アクセスを終了させて再起動させればうまくできるのですが、何が原因でこのメッセージが出るのでしょうか? もしわかれば教えてください。 よろしくお願いします。

  • ADOを使えます。どのくらいのレベルでしょうか。

    Accessの一つのmdbファイルをデータベースとして、Excelをインターフェイスとして、システムを作れます。具体的には、成績データベースを作り、ADOによってExcelのシートにデータベースのデータを抽出して取り出し、そこで入力・編集を行い、ADOによってデータベースのデータ変更を確定させるという方法で、一つのmdbファイルを複数の端末におけるExcelによって書き込んでいます。 こういうことができるレベルってどのくらいのレベルなのでしょうか。

  • ACCESSでレコード数の数え方(ADO,DAOなしで)

    ACCESS2000でデータベースを作っています。ADOやDAOは使っていません。 質問はタイトル通りなのですが、ADOやDAOなら簡単なのですが、訳あって それらは使えません。 色々調べてみたのですが・・・。 どなたかお知恵を貸していただけないでしょうか? P.S. 質問No.689217"ACCESSで実行時エラー3008"を質問しましたが、解決しました。 フォームの定義でロックをかけていました。(⌒ ⌒; いつもはVBで作っているのですが・・・、はやとちりのようでした。お騒がせ しました。

  • Access2000、これはいったい・・・・

    ある処理をしようとすると以下のようなエラーが出たり出なかったりします。 マシン"kintaro987"のユーザー'Admin'がデータベースを開けない状態、またはロックできない状態にしています。 これはなにが原因でこういうエラーが出てしまうのでしょうか? 宜しくお願いします!

  • Access起動中にエクセルからADOでデータの更新ができない

    こんばんは。原因がわからないので質問させてください。 SQLサーバーのデータをAccessのmdbへリンクテーブルしています。 (SQLサーバー → Access) 全て一つのパソコンで行なっています。(LANには接続していません) Accessのmdbファイルを起動している時に ExcelからSQLサーバーのAccessにリンクしている上記のテーブルへ ADOを使ってデータを追加しています。 (Excel → Access)  しかし、「rs.Update」の部分で  「ODBC--リンク テーブル'テーブル1'での更新に失敗しました。」 となってしまいます。 なので、一度mdbファイルを落として、コードを再開すると通るので ADOでExcel → Accessにデータを追加し終わってから再度mdbファイルを立ち上げています。 また同じ状態(mdbファイルを起動)で Excel → SQLサーバー へ更新クエリをしようとすると「時間切れになりました」となります。 (こちらもmdbファイルを落とすと再開できます。) いちいちmdbファイルを落とすのめんどうなのですが 回避する方法はありますか? cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\Users\Documents.test.mdb" rs.Open "テーブル", cn, adOpenStatic, adLockPessimistic rs("フィールド") = True rs.Update '保存 rs.Close: Set rs = Nothing というコードを書いています。 Accessを落とせば正常に動きます。 ご教授よろしくお願い致します。

  • ADOで排他ロックがうまくいかない

    VB6.0+access98で開発してます。 ADOを使ったレコード単位の排他ロックについて教えてください。 rs.Open時に,adLockPessimisticを指定しても,ロックされません。 rs.Update のところで一瞬ロックされているようです。 あるレコードの編集中は登録またはキャンセルされるまで、 ずっとロックしていたいのです。 他端末からそのレコードにアクセスした際にエラーが返るように したいのです。 上手く出来る方法ありませんか?

  • 起動時のログオンを回避する方法を

    WINDOWS XP professional で、管理者=ユーザーで自分一人専用のマシンなんですが、起動のときにいちいちユーザーリストが出てきて、そこでストップしていて、ユーザー名(インストールしたときに登録したユーザー名です、自分一人なんですがこのユーザー名の登録もインストール時に必須でした)をクリックしないと次に進まないんです。home edition や 2000 の場合は電源を入れれば(パスワードを回避してあれば)どんどん画面が進んでいきますよね。あんな風に XP professional でも出来る方法をお教え下さい。

  • エラーの回避方法を教えてください

    PCを立ち上げたら、WindowsLiveメールが起動できなくなりました。(昨日までは問題なし) イベントログを見ると、立ち上げエラーが多発しています。 何度、再立ち上げしても直る気配もありません。 画面右下に、「Windows All-User Install Agent のサービスが起動できませんでした。 標準ユーザーではアクセスできません。…」  意味が分からない表示も出てしまいます。 ユーザーは1人でAdmin権限です。 どうしたらいいのか全くわからないので、ぜひ回避方法を教えてください。 この程度では説明不足だとは思いますが、エラーのログも添付しておきます。 どうかよろしくお願いいたします。 OS:Windows8です。

専門家に質問してみよう