VB.NETにおけるAccess接続方法|OLEDBE・ODBCを使用したサンプルコードを作成
- システム
エンジニア - VB.NETのAccess接続について教えてください。
- プロジェクト
マネージャー - VB.NETのコードからAccessに接続する場合のODBCとOleDbの2通りの方法について説明します。
VB.NET Access 接続
ここからはVisual Basic.NETからMicrosoft Accessに接続する手順について説明します。Microsoft Accessのサンプルaccdbを導入後、Visual Basic.NETからアクセスする例を提示します。
以降はVisual Basic.NETをVB.NET、Microsoft AccessをAccessと略して記述します。
VB.NETにおけるAccess接続方法
VB.NETのコードからAccessに接続する場合、ODBCとOleDbの2通りの方法があります。
.NET Framework 4.8、.NET 5.0、.NET Core 3.1の3つのフレームワークを対象にSystem.Data.Odbc、System.Data.OleDbのいずれかを使用したVB.NETのコンソールアプリケーションからAccessに接続するサンプルコードを提示します。
Accessのサンプルデータを準備する
Accessのバージョンにより、メニューの構成が違うので注意してください。以下の手順はAccess2016を使用した例です。サンプルDBとしてNorthwind.accdbを準備します。
・Accessを起動します。
・ホームをクリックします。
・使用可能なテンプレート をクリックしてください。
・ノースウインド2007をクリックしてください。
・ファイル名:Northwind.accdb
・フォルダ:c:\
として作成ボタンを押下すると、C:\Northwind.accdbが作成されます。
VB.NETでC:\Northwind.accdbに接続して[Customers]テーブルの [ID]、[Company]を表示します。
VB.NETでAccessに接続する
ここからはVB.NETで作成したプロジェクトにてサンプルコードを作成し上記で作成したC:\Northwind.accdbに接続してSQL文を発行する例を提示します。
VB.NETでプロジェクトを作成する
ここからは、.NET Framework 4.8、.NET 5.0、.NET Core 3.1の3種類のフレームワークを使用してコンソールアプリケーションを作成するためのプロジェクトを作成する例を提示します。
.NET Framework 4.8を指定して作成する
NET Framework 4.8でVB.NETのプロジェクトを作成する場合は以下の手順で行います。
・Visual Studio 2019 Communityを起動します。
・新しいプロジェクトの作成をクリックします。
・テンプレートの選択は順に、[Visial Basic]、[Windows]、[コンソール]を選択後[コンソールアプリ(.NET Framework)]をクリック後[次へ]ボタンを押下します。
・プロジェクト名、場所、ソリューション名を適宜入力後 [.NET Framework 4.8] を選択し[作成]ボタンを押下します。
プロジェクト作成後は、プロジェクト -> プロパティ -> コンパイル -> ターゲットCPU -> x86 に設定してください。VB.NETからの接続のコードは共通になります。
.NET 5.0を指定して作成する
.NET 5.0でVB.NETのプロジェクトを作成する場合は以下の手順で行います。
・Visual Studio 2019 Communityを起動します。
・新しいプロジェクトの作成をクリックします。
・テンプレートの選択は順に、[Visial Basic]、[Windows]、[コンソール]を選択後[コンソールアプリケーション]をクリック後[次へ]ボタンを押下します。
・プロジェクト名、場所、ソリューション名を適宜入力後[次へ]ボタンを押下します。
・[.NET 5.0(現在) ]を選択し[作成]ボタンを押下します。
・プロジェクト作成後は、プロジェクト -> nugetパッケージ管理 -> 参照より以下のいずれかをインストールしてください。
ODBCの場合:System.Data.Odbc v5.0.0
OleDBの場合:System.Data.OleDB v5.0.0
プロジェクト作成後は、プロジェクト -> プロパティ -> コンパイル -> ターゲットCPU -> x86に設定してください。VB.NETからの接続のコードは共通になります。
.NET Core 3.1 で作成する
.NET Core 3.1でVB.NETのプロジェクトを作成する場合は以下の手順で行います。
・Visual Studio 2019 Communityを起動します。
・新しいプロジェクトの作成をクリックします。
・テンプレートの選択は順に、[Visial Basic]、[Windows]、[コンソール]を選択後[コンソールアプリケーション]をクリック後[次へ]ボタンを押下します。
・プロジェクト名、場所、ソリューション名を適宜入力後[次へ]ボタンを押下します。
・[.NET Core 3.1] を選択し[作成]ボタンを押下します。
・プロジェクト作成後は、プロジェクト -> nugetパッケージ管理 -> 参照より以下のいずれかをインストールしてください。
ODBCの場合:System.Data.Odbc v5.0.0
OleDBの場合:System.Data.OleDB v5.0.0
プロジェクト作成後は、プロジェクト -> プロパティ -> コンパイル -> ターゲットCPU -> x86に設定してください。VB.NETからの接続のコードは共通になります。
OLEDBEを使用したサンプルコードを作成する
OleDbを使用してVB.NETからAccessに接続するサンプルを提示します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
Imports System
Imports System.Data
Imports System.Data.OleDb
Module Module1
Sub Main()
Dim oledb As String = "Microsoft.ACE.OLEDB.16.0;"
Dim acfile As String = "C:\Northwind.accdb"
Dim cn As OleDbConnection
Dim da As OleDbDataAdapter
Dim ds As New DataSet
Dim strSQL = "SELECT * FROM Customers ORDER BY ID;"
' OleDBでAccessに接続するコード
cn = New OleDbConnection("Provider=" & oledb & "Data Source=" & acfile)
da = New OleDbDataAdapter(strSQL, cn)
da.Fill(ds, "Customers")
For Each Row As DataRow In ds.Tables("Customers").Rows
Console.WriteLine("{0} {1}", Row("ID"), Row("Company"))
Next
Console.ReadLine()
End Sub
End Module
|
コンソールに以下内容が表示されます。
1
2
3
4
5
6
7
8
9
10
|
1 Company A
2 Company B
3 Company C
4 Company D
~
25 Company Y
26 Company Z
27 Company AA
28 Company BB
29 Company CC
|
ODBCを使用したサンプルコードを作成する
以下にODBCを使用してVB.NETからAccessに接続するサンプルを提示します。実行結果は上記と同じ内容が表示されます。
ODBCデータソースアドミニストレーター(32ビット)のユーザーDNSタブでC:\Northwind.accdbに接続するための ユーザーデータソースを作成します(今回の名称はACNORTH)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
Imports System
Imports System.Data
Imports System.Data.Odbc
Module Module1
Sub Main()
Dim cn As OdbcConnection
Dim da As OdbcDataAdapter
Dim ds As New DataSet
Dim strSQL = "SELECT * FROM Customers ORDER BY ID;"
' DSNを定義して接続する場合の例
'Dim cn As OdbcConnection = New OdbcConnection("DSN=ACNORTH")
' DSNを定義しないで接続する場合の例
Dim acfile As String = "C:\Northwind.accdb"
Dim odbcdrv As String = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" & acfile & "; Uid=; Pwd =;"
cn = New OdbcConnection(odbcdrv)
da = New OdbcDataAdapter(strSQL, cn)
da.Fill(ds, "Customers")
For Each Row As DataRow In ds.Tables("Customers").Rows
Console.WriteLine("{0} {1}", Row("ID"), Row("Company"))
Next
Console.ReadLine()
End Sub
End Module
|
- システム
エンジニア - VB.NETからのAccess接続方法について理解できました。
- プロジェクト
マネージャー - 実際にVB.NETのコードを書くと理解が深まりますよ。
VB.NETからAccessを使用してみよう
いかがでしたでしょうか。VB.NETで作成したアプリケーションからからAccessのデモaccdbに接続してSQL文を発行してみました。
単体でも手軽に使用できるAccessで作成したaccdbをそのまま使用してVB.NETから使用できることを提示しました。
ぜひご自身で実際にVB.NETのコードを書いて、理解を深めてください。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
新着案件New Job
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)