Access97のシステムがあります。
元は、Access1.0の時に作成されたもので、バージョンアップを重ねて現在97で動いています。

このシステムに機能を追加していたのですが、
ボタンのクリック時のイベントでマクロの実行を行ったところ、
「VisualBasicを再コンパイルしてください」みたいなコンパイルエラーが出たので、
このマクロを全てVBAに書き換えました。が、次に実行したら、オートメーションエラーが
出て、VBAに書き換えた部分のFUNCTIONの行が反転して実行が止まってしまいました。

そこで、バックアップしてあったmdbに同じ追加を行い、実行してみたところ、
何回かはちゃんと動作してくれたのですが、突然、同じエラーが出てきました。

いろいろと調べてみたのですが、イマイチよく分かりませんでした。

そもそも、オートメーションエラーとはなんなのでしょうか?
また、原因として考えられることは何があるのでしょうか?

ご教授願います。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

オートメーションエラーではわかりません。

エラーの後か前にエラーコードが出てると思います。
 そのエラー番号かエラーコードで、ヘルプを検索してみて下さい。

 原因
 オブジェクトの解放忘れ
 変数の解放忘れ
 レコードポインタの設定ミス
 まだまだあります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
本社に戻り次第、早速試してみます。

お礼日時:2001/05/17 13:59

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QACCESS97 実行時エラー '2455'に関して

ACCESS97のエラーに関して質問です。

下記のような状況において、
実行時エラー '2455'
「指定した式に、Form/Report プロパティに対する
 不正な参照が含まれます。」がでてしまいます。

ACCESSの画面をウインドウ表示にします。
そしてその画面を3分の1程度に小さくします。
この状態で、画面を遷移させるとエラーがでてしまいます。

エラーの原因として、おおよそ検討がついています。
1.画面を遷移させる際に、次の画面のサブフォームの
  ソースオブジェクトを変更させます。
2.画面を小さくしたせいで、サブフォームが画面上に
  表示されていません。
こういった条件で、上記のエラーがでるようです。

ちなみに全画面表示やウインドウ表示でも
サブフォームが少しでも表示されるような大きさだと
エラーにはなりません。

Forms![Form名称]![埋め込み名称].Form.RecordSource = "テーブル名称"

このソース上にてエラーとなっていますが、
何か対処方法などございませんでしょうか?

知っている方がおられましたらどうぞアドバイスお願いします。

環境:Win2K+AC97

ACCESS97のエラーに関して質問です。

下記のような状況において、
実行時エラー '2455'
「指定した式に、Form/Report プロパティに対する
 不正な参照が含まれます。」がでてしまいます。

ACCESSの画面をウインドウ表示にします。
そしてその画面を3分の1程度に小さくします。
この状態で、画面を遷移させるとエラーがでてしまいます。

エラーの原因として、おおよそ検討がついています。
1.画面を遷移させる際に、次の画面のサブフォームの
  ソースオブジェクトを変更させます。
2.画...続きを読む

Aベストアンサー

こんにちは。maruru01です。

Forms![Form名称]![埋め込み名称].Form.RecordSource = "テーブル名称"



Forms![Form名称]![埋め込み名称].RecordSource = "テーブル名称"

では?

Qエクセルでのオートメーションエラー

たびたびお世話になっております。
excel2000のVBAでユーザーフォームを作成し、ユーザーフォーム上のコマンドボタンで処理を実行しています。処理はワークシート上の計算を実行したり、メールに添付し送信したり・・・です。この実行後にもう一度ユーザーフォームを開こうとすると、(ユーザーフォーム.show)まず、パス名が無効です、のエラー。ワークブックを保存し閉じようとすると(これもユーザーフォームのコマンドボタン)、オートメーションエラーです、となります。ユーザーフォームを閉じ、excelを終了しようとすると、EXCELは終了できません。となってしまいます。
なぜ?どーして?チンプンです。
ちなみにその後、もう一度同じワークブックを開こうとすると、使用中になり、
読取専用でしか開けません。
どうか、教えてください。

Aベストアンサー

「メールに添付し送信」の段階で実行中なのにユーザーフォームにアクセスしたためエラーがでたようです。
エクセル自体は処理はおわってもリンク先の他のアプリケーションがまだ処理が終わっていないかもしれません。
強制終了すると使用していないのに使用中となってしまいます。
この状態を解除するにはWINDOWS2000だとctrl+Altでタスクマネージャを開き、プロセスでEXCEL.exeを選択してプロセスの終了。WIN95/98だと(VISUAL STUDIOがあればプロセスビューアを使って)なければ再起動するしかありません。

QACCESSのAutoKeysマクロでアクションの実行エラーが必ず出る

ACCESSのAutoKeysマクロでプロシージャを呼び出しているのですが、
そのVBAコードの中に、条件分岐を作っていて
その返り値がFalseの時だけ以降の処理を継続させようとしています。

ここでTrueの場合は警告メッセージを出した上で
処理を終えるためVBAでEndと記述しているのですが、
このTrueの際にアクションの実行エラーウィンドウが必ず出て
困っています。(格好悪い)

こちらを出ないようにするにはどうしたらいいでしょうか。
もしくはマクロ名で言うAutoKeysのような処理を、マクロを
使わずにVBAだけで記述・実行する方法はありますでしょうか?

長い質問になってしまいましたが、
ご存知のやさしい方ぜひ教えてください。
よろしくお願いします。

Aベストアンサー

VBA では、基本的に「End」は使用しません。
ランタイム環境では、End でエラーが発生します。
他にも、ヘルプに書かれていると思いますが
End はグローバル変数の初期化なども行われますので
以降の処理で、思わぬ結果になったりします。
「Exit Sub」 または 「Exit Function」で抜けるようにしてください。
これでもエラーが発生するようなら
原因は他にあるのでしょう。

QVBA マクロ実行時エラー’1004RangeクラスのPasteSpecialメソッドが失敗

マクロ実行時に、エラー’1004RangeクラスのPasteSpecialメソッドが失敗と表記され、マクロが実行されません。

マクロの内容は、任意の範囲をコピー、新規book追加し、
新規bookに(1)Paste:=xlPasteValues (2)Paste:=xlPasteColumnWidths (3)Paste:=xlPasteFormats の順に貼り付けし保存するものです。

いろいろ調べては見たのですが、当方初心者の為、わからずじまいです。お手数ではございますが、どなたかご教授願います。
下記にマクロ内容全部記載します。
よろしくお願いします。

*********************************************************
*********************************************************
Sub 日報別ファイルに保存したい1()
Worksheets("日報").Range("A3:AF36").Copy
With Workbooks.Add
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Cells.Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

ApplicationDisplayAlerts = True '同名FILEが存在する場合'
ActiveWorkbook.SaveAs Filename:= _
"c:\日報\" & ActiveSheet.Range("J2") & "年" & ActiveSheet.Range("l2") & "月" & ActiveSheet.Range("n2") & "日_日報.xls" _
, FileFormat:=xlNormal
.Close file


End With

End Sub

マクロ実行時に、エラー’1004RangeクラスのPasteSpecialメソッドが失敗と表記され、マクロが実行されません。

マクロの内容は、任意の範囲をコピー、新規book追加し、
新規bookに(1)Paste:=xlPasteValues (2)Paste:=xlPasteColumnWidths (3)Paste:=xlPasteFormats の順に貼り付けし保存するものです。

いろいろ調べては見たのですが、当方初心者の為、わからずじまいです。お手数ではございますが、どなたかご教授願います。
下記にマクロ内容全部記載します。
よろしくお願いします。

***********...続きを読む

Aベストアンサー

こんにちは。

>結果、「ThisWorkbook」上の下記のマクロを削除すると、正常に動きだしました。
それは、Copy 範囲が、消えてしまうことで、PasteSpecial が利かなくなってしまうからです。

まず、シート名の長いコードは、これだけでよいはずです。

Private Sub Workbook_Activate()
 Select Case StrConv(Trim(ActiveSheet.Name), vbNarrow)
 Case "1" To "30", "日報"
  Application.Calculation = xlCalculationManual
 End Select
End Sub


-------------------------------------------
''もし、そのままでダメでしたら、 ' Application.EnableEvents = False 'イベントの介入を阻止する のところのコメント・ブロック('コードの手前のアポストロフィ)を外して、再度試してみてください。

Sub 日報別ファイルに保存したい2()
Dim myRng As Range
Set myRng = Worksheets("日報").Range("A3:AF36")
 ' Application.EnableEvents = False 'イベントの介入を阻止する

With Workbooks.Add
  myRng.Copy
 .ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues, _
             Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  myRng.Copy
 .ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths, _
             Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  myRng.Copy
 .ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats, _
             Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 
  Application.CutCopyMode = False
 
 ApplicationDisplayAlerts = True '**これは、そのままでは必要ないはずです。'
 
 ActiveWorkbook.SaveAs Filename:="c:\日報\" & ActiveSheet.Range("J2") & "年" & _
                 ActiveSheet.Range("l2") & "月" & _
                 ActiveSheet.Range("n2") & "日_日報.xls", _
                 FileFormat:=xlNormal
 .Close file
End With
Set myRng = Nothing
'Application.EnableEvents = True 'イベントマクロの活動を戻す

End Sub

こんにちは。

>結果、「ThisWorkbook」上の下記のマクロを削除すると、正常に動きだしました。
それは、Copy 範囲が、消えてしまうことで、PasteSpecial が利かなくなってしまうからです。

まず、シート名の長いコードは、これだけでよいはずです。

Private Sub Workbook_Activate()
 Select Case StrConv(Trim(ActiveSheet.Name), vbNarrow)
 Case "1" To "30", "日報"
  Application.Calculation = xlCalculationManual
 End Select
End Sub


-----------------------------------------...続きを読む

Qaccess2003でaccess97のファイルを開けますか?

accessの初心者です。access97で作ったデターベースを開くためにaccessのソフトが必要だといわれ、とりあえずaccess2003を購入しましたが、access97で作ったファイルを開こうとしたら、中途半端にしか開けていないようなんですが、実際はどうなんでしょうか?問題なく開けるものなのでしょうか?

Aベストアンサー

まず、access2003を起動します。
「ツール」「データベースユーティリティ」「データベースの変換」
「access97形式」で、オリジナルDBを指定し、保存先を指定すること
で、access2003形式に変換することはできますが、DBの内容によって
は、100%変換できないかも。。


人気Q&Aランキング

おすすめ情報