• ベストアンサー

Access97でのエラー

フォームを開くときに次のVBAを実行します。 Private Sub Form_Open(Cancel As Integer) Dim db As DAO.DATABASE Dim rs As DAO.Recordset Set db = CurrentDb ところが、Set db = CurrentDb の行で次のエラーが出ます。 実行時エラー '429' ActiveXコンポーネントはオブジェクトを作成できません。 ちなみに、これを作成したのは他のパソコンで、そのパソコンでは問題なく実行します。 Windows2000のパソコンにコピーして実行しようとするとダメです。 どなたかおわかりの方、いらっしゃいましたら、教えていただけないでしょうか?

  • tiga-
  • お礼率77% (170/219)

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

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

こんにちは。 Access97とWindowsNT、2000は結構問題多いです。 下記はNTだけと書いてありますが、MSに確認してみては? JP416355 - [OFF2000]NT上で「ActiveXコンポーネントはオブジェクトを作成できません」 http://support.microsoft.com/default.aspx?scid=kb;ja;JP416355 http://support.microsoft.com/default.aspx?scid=kb;ja;JP417896

tiga-
質問者

お礼

ありがとうございます。 マイクロソフトのHPで調べるのがいいのかもしれませんね。 しかし、どのように調べればいいのかわからないのも実情です。 ご指摘のHPを見ましたが、私の環境と合っているかも知れません。 (デュアルブートにしているのでC:とD:に同じフォルダーがあります。 以前はWindows98とWindows2000だったんですが、今はどちらもWindows2000です) Office97をインストールしている方をアンインストールして、別のフォルダーにインストールしてみます。 (しかし、MSのHPを見たんですが、ちょっと専門用語が多くて理解できない部分もありました。) 本当にありがとうございます。

その他の回答 (1)

  • oka123
  • ベストアンサー率31% (69/219)
回答No.1

こんにちわ モジュール作成のところの「環境設定」で MICROSOFT DOA 3.6 OBJECT LIBRARY にチェックマークをつけていますか ?

tiga-
質問者

お礼

ありがとうございます。 「環境設定」というメニューを見つけることができませんでした。 「参照設定」というのがあったので見たのですが、 MICROSOFT DOA 3.6 OBJECT LIBRARY にはチェックマークはついていました。 私の環境は、基本的にはOffice2000を使っているのですが、 昔、Office97を使っていて、その時作ったプログラムのメンテナンスのためOffice97も使わなくてはなりません。 そこでOSを二つインストールして、切り替えています。 それが原因かと思います。 私の環境を詳しく説明しませんで申し訳ありません。 (それが原因とは考えられなかったものですから)

関連するQ&A

  • Access2002 VB がエラー

    Access2002 VBで以下のコーディングをしてます Dim db As Database Dim rs As Recordset Dim fld As Field Set db = CurrentDb Set rs = db.OpenRecordset("ConvertChar") これを実行するとdb宣言行で以下のエラーが表示されます。 コンパイルエラー: ユーザ定義型は定義されていません。 これは何が原因でエラーとなるのでしょうか? 宜しくお願いします。

  • 空欄を含む項目のレコードセット

    Access 2003 DAO.Recordsetにてデータを取得しようと思うのですが テーブル項目に空欄がある場合はどのように書けばよろしいのでしょうか? Dim DB As DAO.Database Dim RS As DAO.Recordset Set DB = CurrentDb Set RS = daoDB.OpenRecordset("Aテーブル", dbOpenDynaset) RS.AddNew daoRS!ああ ああ = xx RS!Update ・・・ とするとエラーになります。 項目名"ああ ああ"はどのように書けばいいのでしょうか? よろしくおねがいします。

  • AccessVBAのCurrentDbメソッドでエラーになります

    Windows2000、Access2000を使っています。 オンラインヘルプを参考に作った下記のプログラムを走らせると、Set db = CurrentDbのところで「実行時エラー13:型が一致しません」のエラーになります。どうしてでしょう。 Sub b() Dim db As DAO.Database Dim tdf As DAO.TableDef Dim fld As DAO.Field Set db = CurrentDb Set tdf = db.TableDefs("テーブル1") For Each fld In tdf.Fields Debug.Print fld.Name Next fld End Sub 参照設定を見ると、Microsoft dao 3.0 Object LibraryにチェックがついていますのでDAOは使えるはずなんですが・・・。

  • 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を介してテーブルにデータを入れていました。 アップサイジングする前は、問題なかったのですが、どういったことが原因になりますでしょうか?

  • ハイパーリンク型の場合、エラーになります。

    DAOでテーブルを作成しようとすると ハイパーリンク型の場合、エラーになります。 Sub Sample() Dim db As DAO.Database Dim tbdef As DAO.TableDef Dim Field1 As DAO.Field Set db = CurrentDb Set tbdef = db.CreateTableDef("T_test") Set Field1 = tbdef.CreateField("氏名", dbHyperlinkField) tbdef.Fields.Append Field1 db.TableDefs.Append tbdef db.Close: Set db = Nothing End Sub Type プロパティ のヘルプを見ると、dbHyperlinkFieldはないのですが dbHyperlinkFieldではないのでしょうか? DAO.DataTypeEnum のメンバの中にもハイパーリンクはないようです。

  • VBAのコード

    参考書に従って次のようなコードを書きました。 Private Sub previewButton_Click() Dim db as DAO.Database Dim rs as DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset("Q_ラベル印刷", dbOpenDynaset)* if me!......................以下略 *印のところで「パラメーターが少なすぎます。1を指定してください。」というメッセージが出ます。 どう直せばいいのでしょうか。 よろしくお願いします。

  • access2003 自社カレンダーを作りたい

    現在、access2003で注文書を出力するプログラムを作成中です。 自社の営業日カレンダーを表示させたいのですが、 開く時のイベントプロシージャでエラーになって先に進みません。 エラーメッセージは 【イベントプロパティに指定した式 開く時でエラーが発生しました:プロシージャの宣言が、イベントまたはプロシージャの定義と一致していません。】です。 開発が初めてなので、どなたか教えていただけませんか?よろしくお願いします。   下記のイベントプロシージャの書き方に問題がありますか?  Function Form_Open(F As Form) Dim DB As DAO.Database Dim rs As DAO.Recordset Dim F As Form Set DB = CurrentDb Set F = Forms!カレンダA Set rs = DB.OpenRecordset("calen", dbOpenDynaset) End Function

  • 拡張子が.mdbでないアクセスファイルを開くには?

    拡張子が.mdbでない以下のようなアクセスファイルOSAKA.sffを開くにはどのようにしたらよいですか? 現状、 Set db の行で 実行時エラー3343“データベースの形式認識できません”とエラーが出ます。 Private Sub Command5_Click() Dim ws As DAO.Workspace Dim db As DAO.Database Dim rs As DAO.Recordset 'デフォルトのワークスペースを定義する Set ws = DBEngine.Workspaces(0) 'データベースを開く Set db = ws.OpenDatabase("C:\Data\OSAKA\OSAKA.sff") End Sub

  • Access2002のVBAエラーで

    クエリで抽出したレコードを利用したいのですがうまくいきません。 Dim ds As Database Dim rs As Recordset Set ds = CurrentDb Set rs = ds.OpenRecordset("クエリ名") デバッグすると  Set rs = ds.OpenRecordset("クエリ名") で止まります。 「実行時エラー’3061’ パラメータが少なすぎます。1を指定してください」のメッセージです。 どのような意味でしょう。教えてください。

  • アクセスVBA 変数での抽出条件の書きかた

    顧客データテーブルからの抽出です。 変数を使った書き方がわかりません。 よろしくお願いします。 テーブルのレコードには [氏名]:鈴木 [telnum]:0123456789 が存在します。 Private Sub テキスト0_BeforeUpdate(Cancel As Integer) Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset("顧客マスタ", dbOpenDynaset) Dim str As String str = "0123456789" rs.Filter = "[telnum] = ' " & str & " ' " Set rs = rs.OpenRecordset MsgBox (rs!氏名) ’←エラーメッセージ”カレントレコードがありません。”が出ます End Sub

専門家に質問してみよう