• ベストアンサー

VBAによってAccessが壊れた!

AccessのVBAでプログラムを組んでたらあるフォームの操作処理をしたらいきなりAccessに異変が起こり、フォームのデザイン等の編集・コーディングが一切できなくなりました(VBEが開かない)。 強引にフォームを呼んでも読み取り専用になっていて操作ができなくなってしまいました。フォームを開いても実行画面しか出なくなりました。新規作成もできません。(ボタンが全てイネイブルになってます) こういう場合どうしたらいいのでしょうか? ちなみにAccessのフォームは、現在のフォームから他のフォーム(開いている)を閉じる命令をすることはできるのでしょうか?(それをしたいがためにいろいろな方法を試していたらこうなってしまいました。そのコードをうかつにも保存した私にも責任はあるのですが・・・ちなみにDocmd.closeで墓穴を掘りました。やはり自分のフォームしか消せないんでしょうか?) バージョンはAccess2003を使っています。

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

  • ベストアンサー
  • MS2000
  • ベストアンサー率33% (1/3)
回答No.1

>ちなみにAccessのフォームは、現在のフォームから他 >のフォーム(開いている)を閉じる命令をすることは >できるのでしょうか? ちょっと詳細事情を把握できない部分があるのですが、(ごめんなさい。)  現在のフォームから他のフォームを閉じるのって、普通にマクロで処理できませんか?  フォーム上にボタンを置いて、クリック時にフォームを閉じるマクロを組んでおく。(Docmd.close)  そこで、閉じたいフォームを指定してやればいけると思いますが。。。私もACCESS2003を使っています。  読み取り専用になるという件は、よくわかりません。そのデータって、CDRに保存されていたとかいうことは、ないですよね?

saimon296
質問者

補足

それはないです。 マクロで処理できるんですか? VBAはマクロ自体使ったことがないのでよくわかりません。Accessのマクロってエクセルのマクロみたいに簡単に作れるのでしょうか?

その他の回答 (3)

  • MS2000
  • ベストアンサー率33% (1/3)
回答No.4

ANo.#3につづき、ANo.#1についてですが、 アクセスのマクロは便利です。VBAを知らない人でも、マクロである程度のことは出来ます。 ただ、処理によってクエリーの数が増えたりすることがありますけど、マクロで次々と処理を自動化していき、最後にそれら一連の処理をVBAに自動変換してやれば、VBAの分かる人なら、のちのち便利かもしれません。 ※もし、支障なければ、その部分のコードを掲載されてはいかがでしょうか?(でもVBEが立ち上がらないのですよね?コードはもう、わからないでしょうか?)

saimon296
質問者

補足

すいません、もうコードは見れないのです。

  • MS2000
  • ベストアンサー率33% (1/3)
回答No.3

念のためお聴きしますが、VBAでプログラムを組んで、実行時にそうなられたのでしょうか? それとも、間を置いて、何か別のソフトをインストールしたとか、そういったことをした後に、別の時間や、別の日に、VBAプログラム作業の続きをし、そして、その日初めて実行したときに、そのようになったのでしょうか? 要は、前回実行時は大丈夫だったのに、その後、すぐにプログラム修正した後、実行したら、そうなったか?ということですが、いかがでしょう?

saimon296
質問者

補足

VBAでプログラムを組んで実行時です。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

Access97しか解からないのですが、、、 MDEファイル(拡張子 .mde)に変換後、それを開いているって事は無いですか? もしそうなら元ファイル(拡張子 .mdb)があるハズですが、、、

saimon296
質問者

補足

それはないです。 ldbもありませんでした。 mdeって拡張子自体見たことないのですが・・・ どのmdbも全て同じ状態に陥ってしまいました。(関係ないアクセスまでもが)

関連するQ&A

  • ACCESS VBA ウィンドウを閉じる

    ACCESS VBA の初心者です。 前に進まず困っておりまして申し訳ありませんが教えてください。 フォーム1にボタンをつけそのボタンを押すとフォーム2に画面遷移するように、作っています。 フォーム2に画面遷移した場合、フォーム1は不要になるので、画面遷移と同時にフォーム1を閉じたいのですが、うまく行きません。 docmd.close と言う命令を使うとフォーム1のボタンを押すと画面遷移先のフォーム2の方が一瞬表示されてすぐに閉じてしまいます。 どうしたら、フォーム2が表示されてフォーム1が同時に閉じる事ができるでしょうか?

  • Access2003 をVBAで動かしています。。

    Access2003 をVBAで動かしています。。 あるフォーム( Aフォーム)を開いたときに DoCmd.Maxmise つまり全画面(フルサイズ) になるようにしています。 このフォームは表示したまま、別のフォーム(12cm×15cm Bフォーム)をその上に 重ねて表示したいのですが、どうやっても Bフォームもフルサイズになってしまい、 Aフォームが隠れてしまいます。 Bフォームの大きさ指定をどうすればできるのか教えてください。

  • AccessマクロをVBAを使ってデザインビューで開きたい

    いつも楽しく勉強させていただいております。 Access2000でVBAを使ってマクロをデザインビューで開くことはできますか。 たとえばフォームなら、イミディエイトウィンドウで下記のように打てばデザインビューで開きます。 docmd.OpenForm "フォーム1",acDesign これをマクロに対して行いたいのです。 「フォームを開く」や「モジュールを開く」アクションがあるのだから、「マクロを開く」もあってもいいと思うのですが、見当たりません。 あるシステムのバージョンアップをしようとしているのですが、マクロの数が非常に多く、さらに似た名前のものもあって、いちいちデータベースウィンドウから探していると目が疲れて作業が進まず、非常に難儀しております。 どなたかご存知の方、よろしくお願いいたします。

  • トグルスイッチをVBAでコントロール

    マイクロソフトアクセス2000で作成しています。 メインフォームとサブフォームを使っています。 メインフォームにあるトグルスイッチを押した時に、サブフォームの最新レコードに移動したいと 考えています。 ボタンを押したときに、VBAの命令は動くのですがトグルスイッチが押した状態になりません。 VBAで押した状態にしようとしても命令言語がわかりません。 ご教授をお願い致します。 Me.トグルスイッチ1=true <- ここが動きません。 DoCmd.GoToControl "サブフォーム名" DoCmd.GoToRecord , , acNewRec

  • Access VBAによるフォームの色変更。

    個人での捜索に行き詰ってしまいましたので、ご相談させていただきます。 ○使用環境 WindowsXP Access2007 VBAで色変更する、Accessのフォームについて質問させていただきます。 下記の記述で「フォーム名」というフォームをボタンで開こうとしています。 Private Sub コマンド2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)   DoCmd.OpenForm Form_フォーム名.Name   Form_フォーム名.Section(0).BackColor = "12349952" End Sub Private Sub コマンド3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)   DoCmd.OpenForm Form_フォーム名.Name   Form_フォーム名.Section(0).BackColor = "1643706" End Sub その際、ボタンによって背景色を変更して表示しようとしています。 デザインビューで「フォーム名」のプロパティを変更した直後はボタンの操作で背景色が変わりますが、 一度、「フォーム名」をクローズして、再度ボタンの操作でオープン するときには反映されなくなっています。 もしかしたら、自身の方で何か見落としがあるかもしれませんが、同様の事象をご存知の方がおられましたら、ご指南いただきたいです。 宜しくお願い致します。

  • アクセス2007 VBA 並べ替え

    テーブル1のフィールド1にデータを入れ それを元に帳票フォームを作成しました。 フォームヘッダー部分に 昇順ボタンと降順ボタンを作り、 ボタンを押すごとに並び替えを行いたいのですが どのようなVBAコードを書けばいいのかわかりません。 命令分としては、 「フォームに表示されるテーブル1のフィールド1データの 昇順に並べ替える」です。 SQLを使う方法ではなく、 DocmdかacCmdを使う方法が希望です。 アクセスのヘルプの ----------------------------------------- Access 開発者用リファレンス Form."OrderBy/並べ替え" プロパティ ----------------------------------------- を見ると、 ----------------------------------------- 構文 式.OrderBy 式 Form オブジェクトを表す変数です。 ----------------------------------------- と書いてありますがこの式がわからないのでご教授よろしくお願いします。

  • アクセス2013 フォームが開かない

    お世話になります。 アクセス2013で、フォームを作成したのですが、 突然フォームが、レイアウトビューもしくはデザインビューでしか 開かなくなりました。 デザインビューで起動してから、表示ボタンを押すとフォームは 表示されます。 再起動等はしましたが、状況かわらず。最適化修復も、状況変わらず。 問題のフォームのFORMLOADでSTOP記載し、docmd.openform で 起動しても、そこまで行きません。 VBAのコンパイルをしてもエラーは出ません。 正直、まったく原因が想像できなくて、悩んでいます。 どなたかご存知ではありませんか? よろしくお願いします。

  • AccessのVBAの記述について

    たびたびお世話になります AccessのVBAで、フォーム上にあるテキストボックス(CadrDate)のデータを同一フォーム内の別のテキストボックスに貼り付ける操作はできるのでしょうか? 出来るのであれば記述文を教えてください。

  • access2000 メッセージボックスについて

    access2000のvbaでつまづいています。 フォームを閉じるために設定したvbaです。 以下のように入力し、メッセージボックスで「いいえ」を選んだときは何もさせたくないのですが、「はい」でも「いいえ」でもフォームを閉じてしまいます。「いいえ」のときは何もさせないためにはどこを訂正すればよろしいでしょうか?ご教示ください。 Select Case KeyCode Case vbKeyF9 '閉じる response = MsgBox("フォームを閉じますか?", vbYesNo + vbQuestion + vbDefaultButton1, "メインフォーム") If response <> vbYes Then DoCmd.Close acForm, "メインフォーム", acSavePrompt Else End If .........(以下case構文がいくつか続きます)

  • Access VBA ・Formについて

    Access VBA及び、フォームのデザインについてお尋ねいたします。 Access VBAを活用したフォーム画面の作成を予定しています。 フォーム画面は、Excelのような表形式とし、1マスごとに表示させる内容を指定したり、処理で使用する行だけを表示してフォームの高さを変更したりしたいです。 フォームで表示した内容や入力した内容は配列型変数で取り扱い、テーブルとは非連結のフォームにしたいです。 どなたかどのようなフォーム画面を作成すればいいかお分かりの方いますでしょうか? 11列×50行の表を作成したいです。

専門家に質問してみよう