• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESS2000でコンパイルエラーが表示されてしまいます)

ACCESS2000でコンパイルエラーが表示される原因と解決方法

このQ&Aのポイント
  • 前任者が作成したACCESS2.0で使用していたものを、ACCESS2000でコンパイルすると、ユーザ定義型は定義されていませんというエラーメッセージが表示されます。
  • 問題は、ACCESS2.0とACCESS2000の互換性の違いによるものです。ACCESS2000では、ACCESS2.0で使用されていたユーザ定義型はサポートされなくなったため、コンパイルエラーが発生します。
  • 解決方法は、以下の手順に従って行います。まず、コンパイルエラーが発生している箇所を特定し、その部分のユーザ定義型を修正または削除します。次に、再度コンパイルを行い、エラーが解消されることを確認します。

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

  • ベストアンサー
  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.2

#1さんの回答に補足。 ActiveX Data Objects Libraryは 参照設定から必ず外しておいてください。

kasato
質問者

補足

早速の回答有難う御座いました。参照設定を確認し再度試してみましたが、T As Tableのところで同様のエラーメッセージが表示されてしまいました。申し訳ありませんが、何卒ご教授宜しくお願い致します。

その他の回答 (4)

  • palmmy
  • ベストアンサー率38% (841/2169)
回答No.5

#4です。 すいません。 MsgBox X は消してください。

  • palmmy
  • ベストアンサー率38% (841/2169)
回答No.4

#3さんので動くはずですよ。 下記のソースでうちのACCESSは動きました。 Sub ページ設定P() Dim DB As Database, T As Recordset, X As Integer, I As Integer, 図面番号 As Integer Set DB = CurrentDb() Set T = DB.OpenRecordset("図面リスト印刷TEMP") ' テーブルを開きます。 X = DCount("印刷", "図面リスト印刷TEMP", "[印刷]=No") MsgBox X If X > 27 Then   X = X - 27 + 43   X = X Mod 42 MsgBox X   For I = 1 To X     T.MoveLast     T.Delete   Next I Else   X = X - 27 + 43   For I = 1 To X     T.MoveLast     T.Delete   Next I End If End Sub

kasato
質問者

お礼

どうも有難う御座いました。無事解決致しました。これからもっと勉強を行い邁進していきます。

回答No.3

Dim DB As Database, T As Table, X As Integer, I As Integer, 図面番号 As Integer ↓ Dim DB As Database, T As Recordset, X As Integer, I As Integer, 図面番号 As Integer に Set T = DB.OpenTable("図面リスト印刷TEMP") ↓ Set T = DB.OpenRecordset("図面リスト印刷TEMP") にすればいいんじゃないかと思います。

kasato
質問者

お礼

どうも有難う御座いました。無事解決致しました。これからもっと勉強を行い邁進していきます。

  • palmmy
  • ベストアンサー率38% (841/2169)
回答No.1

参照設定でDAOがあるか確認してください。 上から3番目にあった方が良いのですが、 バージョンも確認してください。 Visual Basic for Application Microsoft Access 9.0 Object Library Microsoft DAO 3.6 Object Library になってれば良いかと思います。

kasato
質問者

補足

早速の回答有難う御座いました。参照設定を確認し再度試してみましたが、T As Tableのところで同様のエラーメッセージが表示されてしまいました。申し訳ありませんが、何卒ご教授宜しくお願い致します。

関連するQ&A