タイトル : もう解決済かもしれませんが 投稿日 : 2003/08/29(Fri) 19:46 投稿者 : MATCH
[OSのVer]:Windows [VBのVer]:VB.NET > [OSのVer]:Windows [VBのVer]:VB.NET > .NETで関数を作り、ACCESSでその関数を使用しようとしているのですがうまくいきません。 > > まずVB側ですが、.NETの[クラス ライブラリ]プロジェクトテンプレートで関数を作成しました。 > ACCESS側で、参照設定でそのプロジェクト内\BIN\****.DLLを指定すると、 > 「指定されたファイルへの参照は登録できません。」のエラーが出てしまいます。 > > どこに原因があるのか、ご存知の方教えてください。 新規プロジェクトでクラスライブラリ を作成し、最初に自動作成されるクラスを 削除し、ソリューションエクスプローラで プロジェクトを右クリック→新しい項目の追加 でCOMクラスを選択し、以下のようにメソッドを作成 しました。 ' 作成可能な COM クラスには、パラメータなしの Public Sub New() を指定しなければ ' なりません。これを行わないと、クラスは COM レジストリに登録されず、 ' CreateObject 経由で ' 作成できません。 Public Sub New() MyBase.New() End Sub Public Function aaa() <---作成したメソッド部分 Return "xxx" <--------作成したメソッド部分 End Function <------------作成したメソッド部分 End Class その後ソリューションをビルドして、 Accessから以下をやってみると VB.NETで作成したメソッドが動いたのですが・・・ Dim a As Object Set a = CreateObject("プロジェクト名.クラス名") MsgBox a.aaa こういう意味ではなかったですか? なぜ、レジストリ登録もしないのに 動くのか不思議ですが・・・ |