質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

1回答

2877閲覧

Visual BasicでadStateOpenなどのObjectStateEnumの参照設定方法

S.Nakagawa255

総合スコア20

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2021/10/03 13:04

前提・実現したいこと

Visual Basic+ADOでSQL Serverへアクセスするプログラムしています。
このページサンプルを元に入力してみたのですが「BC30451 'adStateOpen'は宣言されていません。アクセスできない保護レベルになっています。」のエラーメッセージが発生しました。

参照設定以外に、ソースコード上に定数宣言の記述が必要なのかもしれませんが、外部ファイルの取込み方や、この宣言がC言語でいうどのヘッダファイルに含まれているかもわかりませんでした。

発生している問題・エラーメッセージ

BC30451 'adStateOpen'は宣言されていません。アクセスできない保護レベルになっています。

該当のソースコード

VB

1'https://docs.microsoft.com/ja-jp/sql/ado/reference/ado-api/connectionstring-connectiontimeout-And-state-properties-example-vb?view=sql-server-ver15 2'Imports System 3 4Module Program 5 Sub Main(args As String()) 6 On Error GoTo ErrorHandler 7 8 Console.WriteLine("Hello World!") 9 10 Dim Cnxn1 As ADODB.Connection 11 12 Cnxn1 = New ADODB.Connection 13 Cnxn1.ConnectionString = "Provider='sqloledb';Data Source='MyPcName\SQLEXPRESS';" & 14 "Initial Catalog='TutorialDB';Integrated Security='SSPI';" 15 Cnxn1.Open() 16 Console.WriteLine("Cnxn1 state:" & GetState(Cnxn1.State)) 17 Cnxn1.Close() 18 Cnxn1 = Nothing 19 20ErrorHandler: 21 If Not Cnxn1 Is Nothing Then 22 If Cnxn1.State = adStateOpen Then Cnxn1.Close() 23 End If 24 Cnxn1 = Nothing 25 End Sub 26 27 Public Function GetState(intState As Integer) As String 28 Select Case intState 29 Case adStateClosed 30 GetState = "adStateClosed" 31 Case adStateOpen 32 GetState = "adStateOpen" 33 End Select 34 35 End Function 36End Module 37

プロジェクトのプロパティ⇒参照設定⇒追加⇒COMでMicrosoft ActiveX Data Objects 6.1 Libraryを設定
イメージ説明

試したこと

プロジェクトのプロパティ⇒参照設定⇒インポートされた名前空間の設定に以下を追加しましたがエラー解消しませんでした。

  • System.Data
  • System.Data.Common
  • System.DataSqlTypes

補足情報(FW/ツールのバージョンなど)

Microsoft Visual Studio Community 2019
Version 16.11.3
VisualStudio.16.Release/16.11.3+31702.278
Microsoft .NET Framework
Version 4.8.04084

インストールされているバージョン:Community

Visual C++ 2019 00435-60000-00000-AA701
Microsoft Visual C++ 2019

ASP.NET and Web Tools 2019 16.11.75.64347
ASP.NET and Web Tools 2019

Azure App Service Tools v3.0.0 16.11.75.64347
Azure App Service Tools v3.0.0

Boost.Test のテスト アダプター 1.0
Boost.Test 向けに作成された単体テストを含む、Visual Studio のテスト ツールを有効にします。拡張機能のインストール ディレクトリに、使用条件およびサード パーティからの通知が含まれています。

C# ツール 3.11.0-4.21403.6+ae1fff344d46976624e68ae17164e0607ab68b10
IDE で使用する C# コンポーネント。プロジェクトの種類や設定に応じて、異なるバージョンのコンパイラを使用できます。

Common Azure Tools 1.10
Azure Mobile Services および Microsoft Azure Tools で使用する共通サービスを提供します。

IntelliCode 拡張機能 1.0
IntelliCode Visual Studio 拡張機能の詳細情報

Microsoft JVM Debugger 1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines

Microsoft MI-Based Debugger 1.0
Provides support for connecting Visual Studio to MI compatible debuggers

Microsoft Visual C++ ウィザード 1.0
Microsoft Visual C++ ウィザード

Microsoft Visual Studio VC パッケージ 1.0
Microsoft Visual Studio VC パッケージ

NuGet パッケージ マネージャー 5.11.0
Visual Studio 内の NuGet パッケージ マネージャー。NuGet の詳細については、https://docs.nuget.org/ にアクセスしてください

ProjectServicesPackage Extension 1.0
ProjectServicesPackage Visual Studio Extension Detailed Info

SQL Server Data Tools 16.0.62107.28140
Microsoft SQL Server Data Tools

Test Adapter for Google Test 1.0
Google Test 向けに作成された単体テストを含む、Visual Studio のテスト ツールを有効にします。拡張機能のインストール ディレクトリに、使用条件およびサード パーティからの通知が含まれています。

TypeScript Tools 16.0.30526.2002
TypeScript Tools for Microsoft Visual Studio

Visual Basic ツール 3.11.0-4.21403.6+ae1fff344d46976624e68ae17164e0607ab68b10
IDE で使用する Visual Basic コンポーネント。プロジェクトの種類や設定に応じて、異なるバージョンのコンパイラを使用できます。

Visual F# Tools 16.11.0-beta.21322.6+488cc578cafcd261d90d748d8aaa7b8b091232dc
Microsoft Visual F# Tools

Visual Studio Code デバッグ アダプターのホスト パッケージ 1.0
Visual Studio Code デバッグ アダプターを Visual Studio でホストするための相互運用レイヤー

Visual Studio Tools for CMake 1.0
Visual Studio Tools for CMake

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

そもそも的な話ですが、
こちらに書かれている内容ですが、VB.NET ではなく VB6 時代の情報です。

■ Docs / SQL / ADO (ADO) / ConnectionString、ConnectionTimeout の例 (VB)
https://docs.microsoft.com/ja-jp/sql/ado/reference/ado-api/connectionstring-connectiontimeout-and-state-properties-example-vb

VB.NET では ADO ではなく ADO.NET を使うことが推奨されています。
ADO は ActiveX の技術、ADO.NET は .NET の技術を利用した DB アクセスのライブラリになります。

仮に VB.NET で ADO 使用したとしても、可読性が悪くなり、誰もメンテできなくなることが予想されますので、ADO.NET の使用をご検討下さい。

投稿2021/10/03 13:50

編集2021/10/03 13:51
cx20

総合スコア4633

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

S.Nakagawa255

2021/10/03 15:10

回答ありがとうございます! 今のVisual BasicはVB.NETなんですね。 VB.NET ADO.NET というキーワードで調べたらいくつか入門サイトが見つかりました。 この組み合わせで学習してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問