• 締切済み

以前まで動いていたMDBが突然・・・

お世話になります。 今回も、とても不思議な出来事に遭遇したので、ご質問させて 頂きます。 Win2000、ACCESS2000で開発したMDBを、WinXPで動かしています。 今までは、問題なく動作していましたが、ある日、突然、 「メソッド「「オブジェクト _Application」の CurrentDB」には、失敗しました。」 というエラーメッセージが出て、 Set Rs = CurrentDB.OpenRecordSet("Select * from A ") の行で止まってしまいました。 しらべた所、どうも http://support.microsoft.com/?scid=kb;ja;887033&spid=2509&sid=62 の症状みたいなので、サポート情報とおりに操作した所、無事動作しました。 問題は、なぜ今まで動いていたのに突然におかしくなったのか、ということです。クライアントで頻繁に起こる可能性もないとはいえません。 マイクロソフトのサポート情報では、原因はDao360.dllが正しくインストールされていないといったことらしいのですが、過去に正しく動作していたものが突然おかしくなるというのが、すごく気になっています。 動かしているPCの所有者も、特に心当たりはないそうです。 プログラムでも、レジストリ関係をいじるような事はしていないのですが、 こういう事は、起こりえることなのでしょうか? Windowsのバグとか、プログラムでこういう事をした時になる可能性がある、など、どんな些細な事でもいいので心当たりのある方がいらっしゃいましたら、アドバイス頂けましたら幸いです。

みんなの回答

回答No.2

私の場合は行き成り顧客にレビューしてる時に、簡単なマスターの入力の所で出来なくなりました。その場でまたその部分を作り直して上手く動いたのですが、Accessは信用できないです。 回答ではありませんが

takeru427
質問者

お礼

ご回答ありがとうございます。 確かに、たまにフォームが壊れる事など、ありますね。 今回もその類の一種なのでしょうか。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • gadd3
  • ベストアンサー率46% (211/451)
回答No.1

私も突然そのエラーになった経験があります。 理由は今もってわかりません。 (明確な原因がある場合もあるのでしょうけど・・・) Accessでは他にもそういったことがちょくちょくあるので そういうソフトだと割り切って使っています。

takeru427
質問者

お礼

ご回答有難うございます。 やはり、ACCESSのバグの一種っぽいですね。 最適化したら、たまに起動しなくなったりするし・・・。 ACCESSは不安定なものなんですね。 私も、割り切って使う事にします。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • テーブルのリンク(ACCESS)

    ACCESS2003で下記の記述で「実行時エラー ’3219’ 無効な処理です。」というエラーメッセージがでます。 外部mdbでテーブルをリンクさせるとこのエラーがでます。同じmdbファイルにデータテーブルを置くと問題なく処理できます。 参照設定も過去ログを見てチェックしています。 Dim dbs As DAO.Database Dim rst As DAO.Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset("テーブル名", dbOpenTable) ACCESS97では何の問題もなかったのですが, 2003ではうまくいきません。 どうかよろしくお願いします。

  • Access 外部MDBのリンクテーブルの変更

    お世話になってます。 Access2007へ移行のため、移行用のmdbを作成し、移行する既存のmdb群のMSysObjectsを変更しようとしています。 以下のようにVBAで自分のリンクテーブルの接続パスワードは変更できたのですが、同じく他のMDBを指定してリンクテーブルを変更する事は出来るでしょうか? Dim dbs As DAO.Database Dim tdf As DAO.TableDef Set dbs = CurrentDb For Each tdf In dbs.Tabledefs   If Len(tdf.Connect > 0 Then     tdf.Connect=";PWD=" & strPWD  '←リンクテーブルの接続PWDの変更     tdf.RefreshLink   End If Next よろしくお願い致します。

  • VBでAccessのMDBを参照する環境について

    VBからAccessのMDBを操作するアプリケーションを作り、Visual Studio Installerでインストーラを作成しました。 そのパッケージをWin98SEをインストールしたてのマシンにMDAC 2.7をインストールし、作ったパッケージからアプリケーションをインストールしたところ、実行時に 実行時エラー '429': ActiveXコンポーネントはオブジェクトを作成できません。 とエラーが出ます。 試しにテーブルを開き、1件目のデータを読み取るだけの簡単なプログラムを作り、対象のマシンで動作させてみても結果は同じです。 MDACのインストールだけではだめなんでしょうか。 作成したアプリケーションは配布したいので、コントロールパネルを変更するなどの手間はかけたくないのです。 アプリケーションのインストールだけで環境ができるのが理想ですが、何か言い方法はないでしょうか。 ちなみにためしで作った簡単なプログラムのコードを記述します。 ---------------------------- Private Sub Form_Load() Dim mydb As DAO.Database Dim rs As Recordset Set mydb = OpenDatabase(".\tellist.mdb") Set rs = mydb.OpenRecordset("SELECT Count_TBL.* FROM Count_TBL") Text1.Text = rs!telno rs.Close mydb.Close End Sub ---------------------------- よろしくお願いします。

  • 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のパスワードなども全てのマシンで異なります。 良いアイデアがあれば、教えてください。よろしくお願いいたします。

  • accessからsqlserverにアップサイジングしましたが,テーブ

    accessからsqlserverにアップサイジングしましたが,テーブルにデータを入力出来なくなってしまいました。 Dim rs As DAO.Recordset Dim db As DAO.Database Set db = CurrentDb() Set rs = db.OpenRecordset("確認用", dbOpenDynaset) rs.AddNew rs!品番 = Me.品番 rs.Update 上記のようにDAOを介してテーブルにデータを入れていました。 アップサイジングする前は、問題なかったのですが、どういったことが原因になりますでしょうか?

  • mdbの最適化について

    初めて投稿します。かなり初歩的な質問で申し訳ないのですが、ご存知の方おられましたら宜しくお願い致します。 Accessで作成した業務プログラムをサーバー内に前任者が構築し、それを今まで問題なく使用できていたのですが、最近データ入力ができない、フォーム(集計表?)がエラー終了してしまい、印刷できない等のトラブルが起き始め、現在全く運用ができない状態です。 私は新任でサーバー管理を担当しているものの、サーバーやAccessのプログラムについての知識はほとんどありません。プログラムを作成した前任者とは連絡が取れず全く解決方法がわかりません。 他の方の質問などを見て、mdbファイルの容量が2GBを超えていたら最適化をしなければならないようだ、と思い確認をした所、ファイルの容量は丁度2GBになっていました。最適化をすれば元通りシステムは使えるのか、最適化の方法についてもご存知の方おられましたら教えて下さい。非常に困っています。。

  • Access VBA 添付型フィールド

    Access VBAで添付型フィールドからファイル名を取りだしたいのですが、どのようにすればいいでしょうか? Private Sub Sample() Dim DB As DAO.Database Dim RS As DAO.Recordset Dim SQL As String   Set DB = CurrentDb SQL_1 = "SELECT * FROM ボランティア情報 ORDER BY 分野 & 団体名読み;" Set RS = DB.OpenRecordset(SQL_1, dbOpenDynaset) With RS   Do While Not .EOF   MsgBox (!写真.FileName)  ←ここでエラーが出ます。 .   MoveNext   Loop End With RS.Close Set RS = Nothing Set MDB = Nothing End Sub

  • accessでレコード更新直後の反映について

    アクセスのレコードの更新直後、他PCから該当レコードを読むと更新が反映されていません。回避方法をお教え下さい。 尚、アクセスの初心者です。 ”データ.mdb”をServerへ置き、複数のPCの”プログラム.mdb”から”データ.mdb”のテーブルをリンクし使用する予定です。 しかし、PC-Aの”プログラム.mdb”でテーブルを更新した直後PC-Bの”プログラム.mdb”からテーブルを読み込むと更新が反映されていません。 しかし、更新後 約2秒以上経過した後に読み込むと更新が反映されています。 試行錯誤しましたが改善しません。 以下に環境を示します。 Access2003で”データ.mdb”と”プログラム.mdb”を作成しAccess2010とAccess2003で使用 T_確認テーブルに”Yes/No型”で”アクセス中フラグ”を設定 ServerとPC-AとPC-BはLANで接続 <プログラム内容の抜粋> Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset("T_確認テーブル", dbOpenDynaset, dbDenyRead) rs.MoveFirst If rs!アクセス中フラグ = True Then ' → または”if rs!アクセス中フラグ Then”でも同じ MsgBox "既に他者が使用", vbExclamation, "入力依頼" else rs.movefirst rs.edit   rs!アクセス中フラグ=True ' フラグをセット rs.update End If db.Close Set db = Nothing

  • ExcelVBAにて外部データ(*.csv)をSQL文を使って抽出する方法

    こんにちは VBAインポート問題で日々悩んでいるものです。 CSV形式のデータをODBCのシステムDSNに登録し、それをDAOでSQL要求しデータを抽出する方法がよくわかりません。 (1)データベースの定義記述内容 (2)レコードセットにSQL命令をかける記述 (3)抽出された内容をワークシートに貼る記述 等がよくわかりません。 DAOの場合、レコードセットを定義するのに set DB=DBEngine.OpenDatabase("******")があったり、なかったりする理由がわかりません。 突然、set rs = CurrentDb.OpenRecordset("*****") しているのはなぜでしょうか。

  • 実行時エラー'13' :型が一致しません。

    Windows XPで、Access 2002を使用しています。 テーブル1のフィールド1の値を、ハイフン区切りで分割をしたいと思い、split関数を使用して、 下記、VBAを実行しましたが、「実行時エラー'13' :型が一致しません。」と言うエラーが 発生して、先に進む事ができません。 ツール→参照設定で、Microsoft DAO 3.6 Object Libraryにチェックを入れたり外したりしましたが、 全く改善されず、同じエラーが発生します。 DAO.を付けると解決するとの事で、 Dim dbs As DAO.Database Dim rs As DAO.Connection としましても、同じエラーが出ます。 デバッグしますと、 Set rs = dbs.OpenRecordset("select フィールド1 from テーブル1") の所で発生しているようです。 Private Sub コマンド0_Click() Dim dbs As DAO.Database Dim rs As DAO.Connection Set dbs = CurrentDb Set rs = dbs.OpenRecordset("select フィールド1 from テーブル1") Dim Vartemp As Variant Vartemp = Split(rs, "-") Debug.Print Vartemp(0) Debug.Print Vartemp(1) Debug.Print Vartemp(2) Debug.Print Vartemp(3) End Sub 以上、初心者で、行き詰ってしまっておりますので、どうか宜しくお願いします。

このQ&Aのポイント
  • エプソンプリンターEP-881AWを使用していますが、エプソン用互換用インクに交換したら印刷できなくなりました。
  • EPSON社製品に関する問題です。エプソンプリンターEP-881AWを使用していますが、互換用インクの交換後に印刷できなくなりました。
  • エプソンプリンターEP-881AWの印刷できない問題について質問です。エプソン用互換用インクを使用していますが、印刷ができなくなりました。
回答を見る