コンパイルエラー ユーザ定義型は定義されていません

解決


ユーリン  2003-05-16 04:33:42  No: 107148

いつもお世話になっております。

[アドイン] → [ビジュアルデータマネージャ]から、Microsoft Access 形式の、データベース  

Sale.mdb

を作成し、次のコード(プログラム01)でアクセスしたところ、正常にオープンできました。
−−−−−−−−−−−−−−−−−−−−−−−−−−
Option Explicit
Private cn As New ADODB.Connection
Private Sub Form_Load()
    On Error GoTo Error_Form_Load

    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" _
                         & "Data Source=C:\Program Files\Microsoft Visual Studio\VB98\Sale.mdb"
    cn.Open
    
Exit_Form_Load:
    MsgBox ("接続に成功しました。")
    Exit Sub
    
Error_Form_Load:
    MsgBox (Err.Number & Chr(13) & Err.Description)
    End
End Sub

Private Sub Form_Unload(Cancel As Integer)
    cn.Close
End Sub
−−−−−−−−−−−−−−−−−−−−−−−−−−
このプログラム01を実行すると、『接続に成功しました。』というメッセージが表示されます。

ところが、次のプログラム(プログラム02)ではうまくいきません。

−−−−−−−−−−−−−−−−−−−−−−−−−−
Option Explicit
Private cn As New ADODB.Connection
Private rs As New ADODB.Recordset

Private Sub Form_Load()
    On Error GoTo Error_Form_Load

    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" _
                         & "Data Source=C:\Program Files\Microsoft Visual Studio\VB98\Sale.mdb"
    cn.Open
    rs.Open "顧客名簿", cn, adOpenStatic, sdLockOpenoptimistic
    
    Text1.Text = rs!顧客ID
    Text2.Text = rs!顧客名
    Text3.Text = rs!郵便番号
    Text4.Text = rs!都道府県
    Text5.Text = rs!住所
    Text6.Text = rs!電話番号
    
Exit_Form_Load:
    'MsgBox ("接続に成功しました。")
    
    Exit Sub
    
Error_Form_Load:
    MsgBox (Err.Number & Chr(13) & Err.Description)
    End
End Sub

Private Sub Form_Unload(Cancel As Integer)
    rs.Close
    cn.Close
End Sub
−−−−−−−−−−−−−−−−−−−−−−−−−−

このプログラム02は、テーブルから取得したデータを確認するものですが、2行目の

Private cn As New ADODB.Connection

の行で、
−−−−−−−−−−−−−−−−−−−−−−−−−−
コンパイルエラー

ユーザ定義型は定義されていません。
−−−−−−−−−−−−−−−−−−−−−−−−−−
というエラーが表示されます。2行目をコメントにすると、3行目の

Private rs As New ADODB.Recordset

で同エラーが出ます。もちろん、存在していないデータベースにアクセスしようとしても、同じ箇所でエラーになり、アクセスする前の宣言でうまくいかないようです。しかし、プログラム01、プログラム02とも、2行目までは同じであり、なぜ、こういう違いが生じるのか、まったく解せません。
何かおわかりになることがありましたら、お教え下さい。
どうかよろしくお願いします。


nanashi  2003-05-16 06:52:50  No: 107149

ではメニューから
「プロジェクト」→「参照設定」
を開いて2つのプログラムの違いを確認してみてください。


ユーリン  2003-05-16 07:34:56  No: 107150

前回、私のパソコンが、チェックボックスにチェックを入れているか、はずしているかがわかりにくくなっていた問題について、nanashiさんに教えていただき、そのとおりにやって解決しました。どうもありがとうございました。
今回の問題は、nanashiさんのおっしゃるとおり、プログラム02で、「参照設定」において、Microsoft ActiveX Data Objects 2.0 Library を追加していなかったことが原因でした。参考書を読んだだけでは、プログラムのひとつひとつにこの設定をしないといけないということがわかりませんでした。
毎回、つまずいてしまいますが、これからもよろしくお願いします。
どうもありがとうございました。
今度は、解決のチェックをいれるのも悩まなくてよくなりました … o(*^-^*)o


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加