プログラムの中でデータベースから必要な情報を取得して色々と操作したいことってありませんか?
データベースに情報さえあれば、プログラムでの表現が広がると思いませんか?
この部屋では、データベースに接続して利用したいテーブル情報を取得する方法を案内してます
Kappoは、変数の宣言や接続記述・後片付け記述などはほとんどおまじない的(固定コーディング)に使いまわしていて便利ですよ!!
ぜひ利用してみてください!
また、一番したの方にコメント欄があるからよかったら質問・感想などメッセージ入れてください
データベースの準備
データベースはAccessを利用してみます・・・情報の塊りとして手軽に使えますからね!
・データベース名:Sample.accdb
・テーブル名:tblData
テーブル内のデータは下図のようにしてみました
フォームの編集
フォームにボタンコントロールとラベルコントロールを配置します
・ボタンコントロール:Button1
・ラベルコントロール:
ADODBを使うために参照設定を追加
ADODBを使うために「メニュー」-「プロジェクト」-「#####のプロパティ」を開いて、
参照タブで追加をします
「追加」ボタンをクリックします
参照マネージャーが開いたら、COMタブを選んで「Microsoft ActiveX Data Object #.# Library」にレ点を入れます(#.#はバージョンで、Kappoは ’6.1’ を選択しました)
選んだら、「OK」ボタンをクリックします
↓
参照に選択したライブラリが追加されました
※これでエラー無く使えるようになりましたね!
プログラム
Button1コントロールのプログラム
データベースから情報を取得します
[手順]
・データベースに接続する
・データベースを開く(開く条件はSQL文を作ります)
・データベースから情報を取得する
▼プログラム▼
'------------------------------
Dim cnn As ADODB.Connection 'コネクション用の変数
Dim rec As ADODB.Recordset 'レコードセット用の変数
Dim mySQL As String = "" 'SQL文用の変数
Dim mdbPath As String = "" 'MDBファイルのフルパス用の変数
mdbPath = "C:\Sample" & "\" & "Sample.accdb" 'MDBのフルパス
'------------------------------
cnn = New ADODB.Connection 'コネクションの宣言
'MDB接続宣言:Accessファイル(2007~)を開く
cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.16.0;Data Source=" & mdbPath & ";"
cnn.Open() 'MDBにコネクションする
'------------------------------
rec = New ADODB.Recordset 'レコードセットの宣言
mySQL = "SELECT * FROM tblData;" 'MDBを開くためのSQL文=tblDataの全てが対象
'読み取り専用でMDBを開く
Call rec.Open(mySQL, cnn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly)
If rec.RecordCount <> 0 Then 'データがあることを確認(エラーを防ぐためのおまじないです
'1行名のレコード情報をラベルコントロールに代入
Label1.Text = rec("DATA1").Value
Label2.Text = rec("DATA2").Value
Label3.Text = rec("DATA3").Value
Label4.Text = rec("DATA4").Value
End If
rec.Close() 'MDBを閉じる
'------------------------------
'後片付け:絶対的なおまじないっす
rec = Nothing '変数の解放
cnn.Close() '接続を閉じる
cnn = Nothing '変数の解放
'------------------------------
プログラムの実行
フォームのButton1を押したら、下図のようにデータベースの1行目の情報を取得してラベルコントロールにデータが表示されました
テーブル内の情報を色々取得したい場合は
rec.MoveFirst()・・・テーブルの先頭のレコードに移動します
rec.MoveLast()・・・テーブルの最後のレコードに移動します
rec.MoveNext()・・・次のレコードに移動します
rec.MovePrevious()・・・一つ前のレコードに移動します
コマンドを使ってレコードを移動して必要な情報を取得することが出来ますよ!
コメント