実行時エラー459 withステートメント

このQ&Aのポイント
  • VBAでWithステートメントを使用する際に実行時エラー459「オブジェクトまたはクラスがこのイベントセットをサポートしていません」と表示される問題が発生します。
  • デバッグモードで問題を確認すると、再度続行するとエラーが発生しなくなりますが、ファイルを閉じて開き直すと同じエラーが再発します。
  • この問題の原因はわかりませんが、カレンダーフォームの設置が関係している可能性もあります。
回答を見る
  • ベストアンサー

実行時エラー459 withステートメント

アクセス2010をつかっています。 vbaで With Forms("Fフォーム") のように、フォームをwithステートメントでまとめているのですが この部分で、 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1369450963 と同じく、 実行時エラー459「オブジェクトまたはクラスがこのイベントセットをサポートしていません」と表示されてしまいます。 しかし、一度デバッグボタンを押し、再度続行すると、もう同じエラーは発生しません。 だけどファイルを閉じて開き直すと、また同じ部分で同じエラーが発生します。 カレンダーフォームは設置していません。 原因わかる方いらっしゃいますか?

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

>アクセス2010をつかっています。 とのことですので、こちらでしょうか? ●セキュリティ更新プログラム MS12-060 を適用すると Access データベースの機能に障害が発生する http://support.microsoft.com/kb/2748410/ja -- これより引用 ---------------------------------------- 【現象】 セキュリティ更新プログラム MS12-060 を適用した後、~~ Access データベースの問題が発生することがあります。エラー メッセージの例としては以下のものがあります エラー 459: オブジェクトまたはクラスがこのイベント セットをサポートしていません。 【原因】 セキュリティ更新プログラム MS12-060 は、既存の Access データベース内で、およびデザイン ビューでコントロールを挿入する時点で、一部の ActiveX コントロールが正常に読み込まれない原因になる場合があります。 【解決方法】 方法 1: 管理者特権を持つコマンド プロンプトから MSCOMCTL.OCX を再登録する 方法 2: レジストリを手動で更新する 方法 3: バッチ ファイルを実行してシステムを自動的に更新する この資料は以下の製品について記述したものです。 •Microsoft Access 2010 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ -- ここまで引用 ----------------------------------------  ちなみに、「更新プログラム MS12-060」が出たのが、去年の夏頃のようですので、その頃から、このエラーが発生しているのでしたら、間違いないかと存じますが、 -- これより引用 ---------------------------------------- この更新プログラムを適用した後に他の Office 製品でも問題が表面化しますが、現象は Access で確認される現象とは異なる場合があります。このな場合、上記のレジストリ キーの削除では十分ではなく、問題に対処できない場合があります。 -- ここまで引用 ---------------------------------------- とのことで、「何ともまぁ」な更新プログラムです。 ●[MS12-060] Office 2010 セキュリティ更新プログラム (2012年8月14日) について http://support.microsoft.com/kb/2597986/ja  関係なさそうだったら、スルーなさってください。

HYDCVDLWWK
質問者

お礼

ありがとうございます。

その他の回答 (1)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

直接 >With Forms("Fフォーム") とはしないで Dim Frm As Form Set Frm = Application.CurrentProject.AllForms("Fフォーム") With Frm ・・・・・・・処理 End With Set Frm = nothing としたらどうかな、 または、 With Forms("Fフォーム") → With Application.CurrentProject.AllForms("Fフォーム") だと。 怪答かもしれんが?

HYDCVDLWWK
質問者

お礼

ありがとうございます。

関連するQ&A

  • Withステートメントの列指定について

    こんばんは、VBAのWithステートメントについて質問させてください! 複数のシートの複数列に処理をするために、以下のようにVBAを記述したのですが エラーコード438「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」というものが表示され、うまくいきませんでした。 記述の方法が悪かったのかと.Columnsの部分を「.Range("A:A,C:C")」に変えたりしたのですが、同様の結果でした。インターネットで見ていると、Withステートメントで複数のシート/複数の列を選択しているものを見たことがないような気がするのですが、そもそもWithステートメントは複数シート/列を選択することはできないのでしょうか…?!うまくいく方法があればご教授お願いしたいです…!よろしくお願いいたします(T_T) With Worksheets(Array("りんご", "みかん")) .Columns("A,C").Delete Shift:=xlToLeft End With

  • IFステートの中にWithステートメントの始まり

    IFステートの中にWithステートメントの始まりだけ入れることってできないのですか? Sub j() Dim a As String a = "aaa" If a = "aaa" Then With Sheets("作業用1") Else With Sheets("作業用2") End If End With End Sub このような事をやろうとすると、Elseの部分でコンパイルエラーになります。 別の方法として、シートオブジェクトの中に入れちゃえば入れちゃえば With の分岐をしなくていいことは分かったのですが、 このような使い方をしたいことが多々あるのですが、 VBAの文法的には、IFの中にWithの始まり(先頭)だけを入れることは不可能なのでしょうか?

  • 実行時エラー2118

    アクセス2010です。 アクセスVBAのコードで Forms("フォーム1").Controls("サブフォーム").Requery を実行しようとすると 実行時エラー2118 ”Requery/再クエリ”アクションを実行する前に、 カレントフィールドを保存する必要があります。 となります。 VBA実行中に、手作業でデータを修正した事により発生したエラーなのですが そもそもVBA実行中にデータをいじる事は可能なのでしょうか? 出来る時とできない時があります。 更に、上記のエラーが発生しているときは、 VBAが中断の状態で、 そのデータを保存することができません。 データの保存が出来ないと、コードが進まないのですが こういう時はどうすればいいのでしょうか? VBAを停止して、手作業で修正したデータを保存するしかないのでしょうか?

  • 実行時エラー’2118’

    アクセスvbaで いつも問題なく動いているコードなのですが 「実行時エラー’2118’ ”Requery/再クエリ”アクションを実行する前に、カレントフィールドを保存する必要があります。」 というエラーが出ます。 エラーが発生するコードは Forms("フォーム1").Controls("SF").Requery です。 中断中のvbe画面でctrl+sで保存をしてみたのですが 変わりません。

  • access Unload ステートメント 

    Unload ステートメントじゃダメな理由を教えてください エクセルの場合は Unload UserForm1 でフォームを閉じれますが、 アクセスは このオブジェクトは、ロードまたはアンロードすることはできません。(Error 361) になります。 ヘルプには Load ステートメントまたは Unload ステートメントで参照しているオブジェクトまたはコントロールが無効です。 と記載されていますが、「オブジェクトまたはコントロールが無効」なのでしょうか? DoCmd.Close acForm, "フォーム1" これで閉じられるからいいのですが、なぜUnload ステートメント が使えないのか気になります。

  • ACCESS でCaption実行時エラーになる

    ACCESS2010 VBA にて予定表カレンダーを作成しているのですが フォームのテキストボックス(L0~L36)に日付を代入する際 captionの行のところで エラー483 オブジェクトは、このプロパティまたはメソッドをサポートしていません。 が発生してしまいます。 visibleは動作しているので入力ミスはないとおもうのですが 原因がまったくわかりません。解決策を教えてください。 Set F = Forms![予定表カレンダー] For i = 0 To 36 '曜日数値以下または月の最後の日を超えたなら表示は消す If i < fday Or i > iend Then F(i).Visible = False Else F(i).Caption = dd F(i).Visible = True dd = dd + 1 rstproduct.MoveNext End If

  • 実行時エラーについて

    お世話になっています。教えて下さい。 VBで作ったプログラムです。 デバッグ時には何の問題もなく、実行可能(完全コンパイル後に実行)で、コンパイルも問題なく通りますが、EXEにして実行すると、以下のエラーが出ます。 実行時エラー:'91' object変数、またはwithブロック変数が設定されていません。 どなたか、原因に心当たりがある方、いらっしゃったら教えて下さい。 よろしくお願いします。

  • 実行時エラー7「メモリが不足しています」

    アクセス2010なのですが たまにですが、なぜこんなところでエラーが発生するの!?ってところで、 実行時エラー7が発生します。 今も発生しました。 With Forms(strFormName) .Lb_No.Visible = False .Lb_ID.Visible = False End With の.Visible = Falseの部分です。 いつもはこんなところでエラーにならないのに、たまにここでエラーになります。 そんな複雑なコードではないと思います。 Visible = Falseするのに、大量のメモリを消費するのでしょうか? OSはwin7です。

  • 指定された引数が有効範囲にないエラー(VB.NET)

    昨日までちゃんとデバグできていたフォームにデータが ロードできなくなりました。 「System.ArgumentOutOfRangeExceptionの初回例外がSystem.windows.forms.dllで発生しました。 指定された引数は有効な範囲内にありません」 というエラーメッセージでデバッグが停止します。 でも中断後、続行とやると正常に動きます。 もう一度やっても当然おなじところで途中停止します。 どこをチェックすればいいのでしょうか? お願いします。

  • 実行時エラー-2147217900(80040e1

    アクセスVBAです。 Set cn = CurrentProject.Connection rs.Open "T_test", cn, adOpenKeyset, adLockOptimistic としたときに、T_testと言うテーブル名は存在するのに、 「実行時エラー-2147217900(80040e14) SQLステートメントが正しくありません Delete、Insert、Procedure、SelectまたはUpdateを使用して下さい。」 と言うエラーが発生します。 どうしてテーブルが存在するのにこのエラーが発生するのでしょうか?

専門家に質問してみよう