• ベストアンサー
  • 暇なときにでも

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

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

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数127
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1
  • yoisho
  • ベストアンサー率64% (331/516)

DAOの参照設定が、されていますでしょうか? モジュールウィンドウを開いて、ツール→参照設定で、 Microsoft DAO 3.* Object Library がチェックされていないようでしたら、チェックしてみください。 今、Access2000が手元にないので自信がありませんが、Recordsetは ADO でも使えるようですが、Database はDAO のオブジェクトかと思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。解決しました! (参照設定をする箇所をACCESSの方から探していました)

関連するQ&A

  • 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を指定してください。」というメッセージが出ます。 どう直せばいいのでしょうか。 よろしくお願いします。

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

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

  • SQLSERVERからデータを取得する方法

    SQLSERVERに商品テーブルを作り ACCESSにローカルテーブル(下記の例では入力テーブル)を 作りました。 ACCESS VBAで ACCESSのローカルテーブルを1件ずつ読み SQLSERVERの商品テーブルを検索したいのですが 下記の例 どちらが処理スピードが速いのですか? なお下記以外にも処理スピードが速い方法が あったら教えてください。 ●例1 Dim db As DATABASE Dim rs As Recordset   dim rt as Recordset Set db = CurrentDb Set rt = db.OpenRecordset("入力テーブル", dbOpenDynaset) sql = "SELECT 商品名 FROM 商品テーブル " sql = sql & "where 商品ID = '" & rt![商品ID] & "'" Set rs = db.OpenRecordset(sql) If rs.RecordCount = 0 Then MsgBox "NG" Else MsgBox rs![商品名] End If ●例2 Dim db As DATABASE Dim rs As Recordset   dim rt as Recordset Set db = CurrentDb Set rt = db.OpenRecordset("入力テーブル", dbOpenDynaset) Set rs = db.OpenRecordset("商品テーブル", dbOpenDynaset) rs.FindFirst "商品CD = '" & rt![商品CD] & "'" If rs.NoMatch Then MsgBox "NG" Else MsgBox rs![商品名] End If よろしくお願いします。

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

    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 ・・・ とするとエラーになります。 項目名"ああ ああ"はどのように書けばいいのでしょうか? よろしくおねがいします。

  • DAOでレコード数を取得したい(ACESSVBA)

    レコードの行数は複数あるのに --------------------------------------------------------- Sub あ() Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset("T_test", dbOpenDynaset) MsgBox rs.RecordCount Set rs = Nothing Set db = Nothing End Sub --------------------------------------------------------- これでレコード数を取得しようとすると1がかえるのですが なぜレコードの行数を取得できないのでしょうか?

  • 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

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

  • ACCESS2000VBAでエラー「型が一致しません」

    ACCESS2000で、フォーム上にボタンを作り、そのボタンをクリック時に 以下のイベント プロシージャを実行させています。 Dim dbs As Database Dim rst As Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset("採番_相談者") Dim Number rst.MoveFirst Number = rst!相談者番号 Number = Number + 1 Me.相談者NO = Number '相談者NOはフォーム上のテキストボックスです。 で上記 Set rst = dbs.OpenRecordset("採番_相談者") の所で、「実行時エラー 13 型が一致しません」とエラーになります。 テーブル:採番_相談者は、オートナンバー型のIDフィールドと相談者番号という7桁のテキスト型で ”1000001”が入っています。(ちなみに、数値型に変えても同じエラーでした。) 詳しい方教えてください。お願いします。

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