- PR -

変数を宣言してるのに「宣言が必要です」

投稿者投稿内容
ひとむ
常連さん
会議室デビュー日: 2003/08/28
投稿数: 38
投稿日時: 2005-06-15 09:30
ASP.NETで開発中です。言語はVB.NETです。
.NET Frameworkのバージョンは1.1で、OSはwindows2000です。

http://support.microsoft.com/default.aspx?scid=kb;ja;308278
上記サイトにACCESSのMDBのテーブルの内容を表示するサンプルがあって
参考にしていたのですが、エラーがでてしまいます。

エラー内容は
コンパイラ エラー メッセージ: BC30188: 宣言が必要です。
cn.Open()

といったものです。
しかしcnを宣言しなおすと「既に宣言されています」となってしいます。

どこかチェックするべき点がありましたご教授ください。
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-06-15 09:38
引用:

しかしcnを宣言しなおすと「既に宣言されています」となってしいます。


どこでどう宣言してますか?
使いまわしとかしてませんか?
この変数がかかわる部分を書き出せませんか?

_________________
たつごろー
codeseek
こみゅぷらす
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2005-06-15 09:43
引用:

エラー内容は
コンパイラ エラー メッセージ: BC30188: 宣言が必要です。
cn.Open()
といったものです。
しかしcnを宣言しなおすと「既に宣言されています」となってしいます。



こういった場合は、どうすれば再現するのかと言うことを明確にするために、
ちょっと面倒な作業になりますけど、順につぶしてゆきます。

コード:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim connectString As String = "接続文字列は省略"
    Dim cn As OleDbConnection = New OleDbConnection(connectString)
    cn.Open()
End Sub



と書いただけでも、同じエラーになりますか?



_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-06-15 09:47
参考にしたサンプルそのものは動いてますよね。
どう変更したかをしりたいところです。
_________________
たつごろー
codeseek
こみゅぷらす
ひとむ
常連さん
会議室デビュー日: 2003/08/28
投稿数: 38
投稿日時: 2005-06-15 09:52
ご返信ありがとうございます。
コード:
<%@ Page Language="VB"  Debug="true"  %>
<%@ import Namespace="System.Data.OleDb"%>
<script runat="server">

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim connectString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                            "Data Source=C:\Inetpub\wwwroot\db1.mdb"
        Dim cn As OleDbConnection = New OleDbConnection(connectString)
        cn.Open()
    End Sub

</script>
<html>
<head>
    <title>Default page</title>
</head>
<body>
</body>
</html>




とやってみたところ、
例外の詳細: System.Data.OleDb.OleDbException: '' は既に使用されているので、使用できませんでした。
行 9: cn.Open()

となってしまいました。もちろんC:\Inetpub\wwwroot\db1.mdbは存在しています。
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-06-15 09:55
引用:

例外の詳細: System.Data.OleDb.OleDbException: '' は既に使用されているので、使用


コードインラインでしたか。
cnがすでに使われているというメッセージではないですよね。

引用:

となってしまいました。もちろんC:Inetpubwwwrootdb1.mdbは存在しています。


C:Inetpubwwwrootdb1.mdbが使えないということではないですか?


[ メッセージ編集済み 編集者: たつごろー 編集日時 2005-06-15 09:55 ]
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2005-06-15 10:09
引用:

となってしまいました。もちろんC:Inetpubwwwrootdb1.mdbは存在しています。



OleDbException クラスにあるtry〜catchの内容で、エラーの詳細を確認してみてはいかがでしょうか。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
いげ太
常連さん
会議室デビュー日: 2004/10/27
投稿数: 32
投稿日時: 2005-06-15 10:32
>例外の詳細: System.Data.OleDb.OleDbException: '' は既に使用されているので、使用できませんでした。

外してたらすいませんが、mdb 開きっぱなしじゃないですか?
mdb を開いたままアクセスすると当該のエラーが出ます。


[ メッセージ編集済み 編集者: いげ太 編集日時 2005-06-15 10:35 ]

スキルアップ/キャリアアップ(JOB@IT)