• ベストアンサー

早速やってみましたが、エラーが出てきてできません。

早速やってみましたが、エラーが出てきてできません。  「ユーザー定義型が定義されていません。」と Dim DB As Database ここでとまってしまいます。 Help見たのですが、「オブジェクト ライブラリまたはタイプ ライブラリで定義する」とありました。 設定してみようとしたのですが、どれが必要なのかさっぱりわかりません。

  • hang
  • お礼率34% (8/23)

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

>Dim DB As Database・・ DAOを使用するのですか?DAOなら Dim DB As DAO.DATABASE Dim rs as DAO.Recordset Set DB = CurrentDB Set rs = DB.OpenRecordset("テーブル名") となりますが・・。 エラーは参照設定でDAOを参照していないので出てると思います。 2000以降はDAOではなくADOが標準で参照設定されているのですが・・。DAOはVBの参照設定でMicrosoftDAO?.?Object Libraryを参照しないと使えません。(?.?は使っているバージョンによって異なります。) ADOを使用してAccessに接続する場合。 Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = CurrentProject.AccessConnection Set rs = New ADODB.Recordset で出来ます。

その他の回答 (1)

  • sanbit
  • ベストアンサー率32% (16/50)
回答No.2

Visuai Basic コード画面の ツール→参照設定で Microsoft DOA 3.6 Object Library にチェックを入れてみてください。 多分いけるはずです。

関連するQ&A

  • この名前は既にあるモジュール、プロジェクト、オブジ

    Sub test() Dim db As Database と宣言しているコードがあるのですが、 いきなり使えなくなりました。 コンパイルエラー プロジェクトではなく、ユーザ定義関数を指定してください。 というエラーになります。 http://okwave.jp/qa/q465366.html を参考に 「Microsoft DAO X.X Object Library」(X.Xはバージョン) にチェックを入れようとすると 「この名前は既にあるモジュール、プロジェクト、オブジェクトライブラリで使われています」 になります。 オブジェクトブラウザーで「db」を検索すると Excel.WorksheetFunction のメンバー にdbというメソッドがありました。 Dim db As Database のdbという名前が原因かなと思い、dbを違う名前に変えてみても同じです。 win8、アクセス2010です。 原因わかる方ご回答よろしくお願いします。

  • 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宣言行で以下のエラーが表示されます。 コンパイルエラー: ユーザ定義型は定義されていません。 これは何が原因でエラーとなるのでしょうか? 宜しくお願いします。

  • ACCESS2000でテーブルをVBAからテーブルを読み込む方法

    ACCESS2000を使っています。 以下の指定をした場合、「ユーザ定義型は定義されていません」のメッセージが出て、コンパイルが通りません。 なにかインストールや設定が必要なのでしょうか? Dim db As Database Dim rs As Recordset Set db = CurrentDb() Set rs = db.OpenRecordset("テーブル名", dbopendynaset) ヘルプ等を自分なりに参照してみたのですが、わかりません。教えてください。

  • 名前'dbOpenDynaset'は宣言されていません というエラーがでてしまいます。

    VB初心者です。データベース接続を一度も成功したことがありません。 そのため「参照の追加」でMicrosoft DAO 3.6Object Libraryを設定することも わかりませんでした。 利用しているソフトはVB2008 Express Editionを利用しています。 以下のソースコードで名前'dbOpenDynaset'は宣言されていません というエラーがでてしまいます Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'DAOのオブジェクト変数を宣言する() Dim ws As DAO.Workspace Dim db As DAO.Database Dim rs As DAO.Recordset ' デフォルトのワークスペースを定義する Dim obj As DBEngine = New DBEngine() ws = obj.Workspaces(0) ' データベースを開く db = ws.OpenDatabase("C:\Users\PCUser\Desktop\database\Database1.accdb") ' テーブル名を指定してレコードセットを作成する rs = db.OpenRecordset("adress", dbOpenDynaset) MsgBox("DB接続") End Sub End Class

  • アクセスVBAです

    Sub test() Dim DB As Database Dim T As TableDef Dim myTable As String myTable = "Table1" Set DB = OpenDatabase(CurrentProject.FullName) For Each T In DB.TableDefs If T.Name = myTable Then DoCmd.DeleteObject acTable, myTable Exit For End If Next DB.Close Set DB = Nothing End Sub これを実行しようとすると Dim DB As Database の部分で コンパイルエラー プロジェクトではなく、ユーザ定義型を指定してください。 と言うエラーになります。 Dim DB As Objectにすればエラーにならずに進みますが 何が原因なのでしょうか?

  • ACCESSのVBAについて

    アクセスのVBAでdatebaseやRecordsetが宣言できません。ヘルプでは【参照設定】でDate Access Objectをオンに指定ない場合は認識されずエラーになります と書いており、参照設定を見たのですがDate Access Objectという欄がありません、どうしたら宣言することができますか? 例)Dim db As Database Dim rsDate As Recordsetこれらがエラーになる。 大変困っています。ちなみにAccess2000です。

  • エラー3011

    パス名もきちんと設定し、データもあっているのですが オブジェクトが存在しないか、名前、パス名が違うと エラーがでてしまいます。どこが違うのでしょうか? Dim db As String Dim db_Mdb As DAO.Database Dim rd_Mdb As DAO.Recordset Dim stSQL As String db = "C:\XXX\VB\kanri.mdb"   'パス名は、アドレスをコピー貼り付けしたので間違いないと思います) ”省略(データベースに接続)” stSQL = "select * from name where bango=0001;" Set rd_Mdb = db_Mdb.OpenRecordset(stSQL, dbOpenTable) お願いしますm(__)m

  • Access2000のVBAでコンパイルエラー

    Access2000のVBAで初歩的な質問があります。 「tblShi」というテーブルがあります。 フォームにボタン「btn1」を作り、 デザインビューでボタンのプロパティを開いて イベントのクリック時のところで、 「ビルダの選択」をコードビルダにしました。 そして「Private Sub btn1_Click()」の中に、最初に   Dim db As Database という記述をしています。 このフォームを開いてボタンを押すと、なぜか   コンパイルエラー   ユーザ定義型は定義されていません というエラーが表示されてしまいます。 たしかにコードを書いているときに、   Dim db As のところまで入れると、小さいウィンドウの中に たくさん候補が表されますが、 その中に「Database」というのがないです。 「QueryDef」とか「Workspace」とかもありませんでした。 (「Recordset」はありまして、それはコンパイルが通ります) いろいろな解説を見ても、やはり最初はどれも 「Database」型を宣言しているようなんですが… 何がよくないのでしょうか。 もしわかる方がいらっしゃったら教えてください。

  • アクセス97のVBAが2000で使えません。

    ACCESS97で問題なく動いていたVBAなのですが、ACCESS2000では「ユーザー定義型は定義されていません。」というエラーとなって動きません。 ソースで言うと、 Dim DB As Database というような変数宣言の部分でいきなり出てきます。 Database型がユーザー定義型と認識されているようですが、何故こうなってしまうのでしょう? またどのようにすればこの問題を解消できるでしょうか? また97と2000でのコーディング上の変更点などは、どこで調べるのが分り易いでしょうか?

  • AccessVBAで「dim dbs as database」がエラーになる

    済みませんが、非常に基本的なことを聞かせていただきたいと思います。 AccessのVBAで関数を実行すると、いきなりエラーになりました。 dim dbs as database の文でエラーになり、「コンパイルエラー ユーザ定義型が定義されていません」というエラーメッセージが出ました。 databaseが定義されているような感じです。 どうすれば宜しいでしょうか?