データベース1

Similar documents
データベースⅠ

データベースⅠ

データベース1

VB実用③ アクセス操作Ⅰ

VB.NET解説

C# bit 環境用 C# 2005 基礎 Ⅱ 電脳梁山泊烏賊塾 データベース操作プログラム Ⅰ C# プログラムの概要 データベースプログラムを手軽に作成する方法としては Access のフォーム機能を用いる事が 先ず考えられます ウィザードも充実しており 操作を覚

データベース1

VB実用Ⅲ⑩ フリーデータベースⅡ

ルーレットプログラム

相性占いプログラム

万年暦プログラム

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

回文作成支援プログラム

データアダプタ概要

VB.NET解説

DAOの利用

VB実用① データベースⅠ

Microsoft Word -

Microsoft Word - VB.doc

Userコントロール

回文作成支援プログラム

グラフィックス

通信対戦プログラム

ブロック パニック

構造体

正規表現応用

mySQLの利用

相性占いプログラム

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

ExcelVBA

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 文字列 文字列リテラル プログラムの中で文字列を表す方法は幾つか有るが 基本的な方法は下記の 2 種で有る 対象と成る文字の集まりをダブルクオーテーション ( " ) で囲うか シングルクオーテーション ( ' ) で囲う PYTHON3 "

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

ICONファイルフォーマット

データベースⅡ

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

データベースアクセス

立ち読みページ

NotifyIconコントロール

モグラ叩きプログラム

Case 0 sqlcmdi.parameters("?tencode").value = Iidata(0) sqlcmdi.parameters("?tenname").value = Iidata(1) 内容を追加します sqlcmdi.executenonquery() Case Else

問題 1 次の文章は Access データベース およびデータベースの概要について述べたものである にあてはまる適切なものを解答群 { } より選び その記号で答えよ 設問 1. Microsoft Access 2007 データベースのテーブルでは 表す としてデータを { ア. レコードを列 フ

データベースⅡ

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値

ファイル操作

Prog2_15th

第 2 章 PL/SQL の基本記述 この章では PL/SQL プログラムの基本的な記述方法について説明します 1. 宣言部 2. 実行部 3. 例外処理部

第 12 講データ管理 1 2 / 14 ページ 12-1 データベースソフトの概要 データベースとは集められた様々なデータをテーマや目的に沿って分類 整理したものです データベースソフトでは データベースを作成し その管理を行います 何種類ものファイルや帳簿で管理していたデータをコンピュータ上で互

ファイル操作-インターネットキャッシュ

ブロック崩し風テニス

PowerPoint プレゼンテーション

インベーダープログラム

VB実用⑦ エクセル操作Ⅰ

目次 更新履歴... 1 はじめに... 3 レコードセット?... 3 準備... 5 SQL でデータを取得する... 6 データのループ処理... 7 列の値を取得する... 7 対象行を変更する (MoveFirst, MoveNext, MovePrevious, MoveLast)...

Prog2_12th

グラフィックス 目次

万年暦プログラム

Microsoft Word - 206MSAccess2010

スライド タイトルなし

PowerPoint プレゼンテーション

64bit環境で32bitコンポーネントの利用

C#の基本

Prog2_2nd

ファイル操作-バイナリファイル

プレポスト【問題】

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

プログラミング演習

GUIプログラムⅡ

PowerPoint Presentation

Microsoft Word _VBAProg1.docx

PowerPoint プレゼンテーション

sinfI2005_VBA.doc

プロセス間通信

スライド 1

VB実用Ⅲ⑩ フリーデータベースⅡ

データベースプログラミング

図 2 Excel スプレッドシートの世界 のウィンドウ 図 3 Visual Basic の世界 のウィンドウ 図 3 の VBA ウィンドウは 図 2 の Excel ウィンドウのメニューの ツール をクリックし 開か れるプルダウンメニューで マクロ /Visual Basic Editor

CodeGear Developer Camp

Prog2_4th

コンピュータの構成

With sqlda sqlda に SelectCommand を追加.SelectCommand = New MySqlCommand() With.SelectCommand.CommandType = CommandType.Text.CommandText = "select * from

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 関数とメソッド 関数とメソッド Python には関数 (function) とメソッド (method) が有る モジュール内に def で定義されて居る物が関数 クラス内に def で定義されて居る物がメソッドに成る ( 正確にはクラスが

C 資料 電脳梁山泊烏賊塾 構造体 C++ の構造体 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで Visual C++ の Windows デスクトップを選択し Windows コンソールアプリケーションを作成する 定義と変数宣言 C++ に

文京女子大学外国語学部

GUIプログラムⅣ

Microsoft Office操作

回文作成支援プログラム

エクセルによる数値計算と化学への応用

テキストファイルの入出力1

ER/Studio Data Architect 2016 の新機能

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

Access研修テキスト

テスト 1/7 ページ プレポスト Visual Studio による Windows アプリの開発 ( 基礎編 ) 受講日程受講番号氏名 1.NET Framework に関する記述で 誤っているものを選びなさい 1..NET Framework に含まれる CLR は プログラミング言語に依存し

PowerPoint プレゼンテーション

グラフィックス 目次

3D回転体プログラム

Microsoft Word - Android_SQLite講座_画面800×1280

3D回転体プログラム

MS Office オートメーション

PowerPoint プレゼンテーション

Transcription:

データベース操作プログラム Ⅰ VB8 プログラムの概要 データベースプログラムを手軽に作成する方法としては Access のフォーム機能を用いる事が 先ず考えられます ウィザードも充実しており 操作を覚えれば簡単に作成する事が出来ます 其れでは VB でデータベースプログラムを作るメリットは何んでしょうか 1 つは Access のフォーム機能に比べ コントロールが充実している事 より自由なデザインが可能です もう 1 つ重要な点は データベースソフト を選ばない事です 小規模な運用であれば Access は十分な能力を発揮しますが 中規模 大規模になってくると 力不足に成る可能性が高く成ります VB でソフトを作成して置けば Access では力不足だ と感じた時でも 今迄作成した内容を少し変更するだけで 他のデータベースソフトへ乗り換える事が可能です 逆に Access のフォーム機能で作成した場合は今迄の作業の殆どを 1 から作り直す必要が有るでしょう 此処では データベースプログラムを作成する上で不可欠な SQL 文 を主に学びます 今回の課題項目 単純変数 配列変数の宣言 (Private Dim) 標準コントロールの利用 (Label Text Combo Command Frame Option) プロパティの値の取得と設定 (Height Width Top RocordSource) イベントの利用 (Load Resize Click) メソッドの利用 (refresh) 演算子 ( 代入演算子 算術演算子 比較演算子 ) 制御構造構文 ( 条件分岐 If ~ Then Else Select Case) ActiveX コントロールの利用 (ADODC データグリッド ) 今回の重点項目 フォームサイズ変更に伴うオブジェクトのサイズ変更 (Resize) データベースとの接続 (ADODC:ConnectionString RecordSource) データベースとの連結 (DataGrid:DataSource) SQL 文 (SELECT 文 : レコードを検索する文 ) 今回の応用項目 様々な SQL 文を試してみる -1-

コンポーネント (ActiveX コントロール ) の組込 1. メニューバーより プロジェクト コンポーネント と進む VB とデータベースとを連動させるには 仲介役と成るコントロールが必要と成ります 今回は仲介役に ADODataControl を データ表示に DataGrid を使用します 標準コントロールでは無いので 普段はツールボックス内に表示されて居ません 標準コントロール以外のコントロールを使用出来る様にするには コンポーネントを組み込む必要が有ります 上記のコントロールは 通常 システムフォルダに下記のファイル名で保存されて居ます Microsoft ADO Data Control 6.0 msadodc.ocx Microsoft Data Grid Control 6.0 msdatgrd.ocx 孰れも ActiveX(OCX) コントロールで有る 2. コンポーネント ダイアログボックスが表示されるので 下記のコントロールを選択する Microsoft ADO Data Control 6.0 と Microsoft Data Grid Control 6.0 3. 上記の操作で ツールボックス内に夫々れのアイコンが追加される -2-

オブジェクト プロパティ一覧 オプションボタン コントロール配列 (0~2) フレーム データグリッド ADODC コントロールの種類 プロパティ プロパティの設定値 フォーム オブジェクト名 Form1 Caption 本棚 ADODC オブジェクト名 adodb Caption Font 自由に設定 ConnectionString 後述 recordsource SELECTΔ 本.*, 著者. 著者名 ΔFROMΔ 本, 著者 Δ whereδ 本. 著者 ID= 著者.ID データグリッド オブジェクト名 dgddisp DataSource adodb フレーム オブジェクト名 fraopt Caption 表示テーブル オプションボタン オブジェクト名 optdisp Index 0~2( コントロール配列 ) Caption 本 カテゴリ 著者 ( 上記 RecordSource のΔは 半角スペースを表す 其の他はスペースを入れない事 ) ADODC データベースと接続する為のコントロール 様々なデータベースと連動させる事が出来る データグリッド ADODC の RecordSource プロパティで入力した SQL 文を元にデータをセル内に表示するコントロール ADODC がフォーム上に無ければ 正常に使用する事は出来ない -3-

ADODC の ConnectionString の設定 ADODC の ConnectionString は 何処に在る 何のデータベースと接続するかを設定するプロパティで 下記の手順で 視覚的に設定する事が出来る 1. プロパティウィンドウで ConnectionString の項目をクリックすると 右側にビルトボタンが表示されるので 其のボタンをクリックして プロパティページ ダイアログボックスが表示し 作成 (U) ボタンをクリックする 2. データリンクプロパティ ダイアログボックスが表示されるので プロバイダ タブのリストから Microsoft Jet 4.0 OLE DB Provider を選択し 次へ (N)>> をクリックする -4-

3. データリンクプロパティ ダイアログボックスが表示されるので 接続 タブの 1. データベース名を選択または入力します (U) の右側に在るビルトボタンをクリックする 4. Access データベースの選択 ダイアログボックスが表示されるので data.mdb を選択する 5. データリンクプロパティ ダイアログボックスに戻るので 接続のテスト (T) ボタンをクリックする 下のダイアログボックスが表示されれば正しく設定が行われた 6. プロパティページ ダイアログボックスに戻るので 適用 (A) OK ボタンをクリックする -5-

プログラムリスト Option Explicit ' ユーザー定義型 ( 構造体 ) の宣言 Private Type Category ID As Long Total As Long End Type ' フォームレベルでグローバルな変数の宣言 Private Cate( ) As Category Private MH As Long Private MW As Long ' フォームが読み込まれた時の処理 Private Sub Form_Load( ) ' フォームのサイズを格納する MH = Me.Height: MW = Me.Width End Sub ' フォームのサイズが変更された時の処理 Private Sub Form_Resize( ) ' サブプロシージャレベルでローカルな変数を宣言する Dim X As Long Dim Y As Long ' 最小化した時のエラーを回避する If Me.WindowState = vbminimized Then Exit Sub ' サイズの変化量を求める X = Me.Width - MW Y = Me.Height - MH ' サイズの変化量を加味する If dgddisp.width + X > 0 Then dgddisp.width = dgddisp.width + X adodb.width = adodb.width + X Else Me.Width = MW End If If dgddisp.height + Y > 0 Then dgddisp.height = dgddisp.height + Y adodb.top = adodb.top + Y Else Me.Height = MH End If MH = Me.Height: MW = Me.Width End Sub ' オプションボタンがクリックされた時の処理 Private Sub optdisp_click(index As Integer) ' クリックされたオプションボタンに依り表示テーブルを変更する Select Case Index Case 0 adodb.recordsource = "SELECT 本.*, 著者. 著者名 FROM 本, 著者 where 本. 著者 ID= 著者.ID" Case 1 adodb.recordsource = "SELECT * FROM カテゴリ " Case 2 adodb.recordsource = "SELECT * FROM 著者 " End Select adodb.refresh End Sub -6- Type ステートメントは 1 個又は複数の要素を持つデータ型を宣言する レコード内のフィールドを定義するのに用いられる 此処で宣言した変数は同じフォーム内の総てのサブプロシージャで値の参照と設定を行う事が出来る 此の場合のイコール (=) 記号は 代入演算子で有り 右辺の値を左辺に代入する働きをする 此処で宣言した変数は宣言したサブプロシージャ内でしか値の参照と設定を行う事が出来ない 条件判定に 比較演算子を使用して居る A > B : AはBより大きい 1 つの式の値を複数の値と比較する条件が多数有る場合は Select Case 制御構造を使うと 効率的で読み易いコードを記述出来る

ACCESS で SQL 文を使用する ACCESS では或る条件の元に 視覚的に データを検索したり 追加したり 変更したり 削除する機能 クエリ機能 が存在します 非常に便利な機能ですが 命令文のみで データを操作出来る言語が存在します 其れが SQL です ACCESS のみ使用するので有れば 此の様な 小難しく 古臭い言語を覚える必要は有りません 何故なら SQL の進化系が ACCESS の様な視覚的にデータを操作する機能だからです 併し 未だに全世界で使われ続けて居る理由が有ります ORACLE や SQLServer 等と謂う名前を聞いた事が有ると思います 共にデータベースソフトですが 然うした類の数多くは SQL を採用して居ます と謂う事は SQL を覚えれば ACCESS 以外のデータベースソフトのデータを操作出来ると謂う事です ACCESS も例外で無く SQL を直接入力し 実行出来る機能が有ります 此処では其の機能の使い方を説明します 1. data.mdb を開き オブジェクト 内の クエリ をクリックすると 以下の様な画面に成るので デザインビューでクエリを作成する をダブルクリックする 2. テーブルの表示 ダイアログボックスが表示されるので 本 を追加後 閉じる ボタンをクリックして ダイアログボックスを閉じる -7-

3. フィールドに 本 テーブルの * をドラッグドロップ後 メニューバーの 表示 をクリックして ドロップダウンメニューから SQL ビュー (Q) を選択する 4. 上記の操作で デザインビュー で作成した選択クエリが SQL 文と成り SQL ビュー に表示される ツールバー上の ( 実行ボタン ) をクリックすると 指定したクエリーの結果が データシートビュー に表示される 此れで SQL を勉強する準備が完了しました 先程の操作からも解る様に デザインビュー で操作した内容と SQL ビュー の内容は 大方連動して居ます 今迄 ACCESS のクエリ機能で作成した SQL が何の様に記述されて居るのか確認するのも効果的な勉強と謂えますが 今回は 1 文宛直接入力する事で 何の様な SQL が有るかと謂う事を学びます -8-

SQL(Structured Query Language: 構造化照会言語 ) とは 直訳すると難しく成るが プログラミング知識の無いオペレーターが簡単にデータを操作出来る様に編み出された言語で有る 国際規格 (ISO) にも定められて居る為 ORACLE でも SQLServer でも基本は同じで有る 4 つの構文を覚える事で 様々な データーベースのデータを扱う事が可能に成る SQL の 4 大構文 下記の構文を SQL の 4 大構文と謂う SELECT 文 : データを探す文 DELETE 文 : データを削除する文 INSERT 文 : データを追加する文 UPDATE 文 : データの内容を変更する文 SELECT 文の解説 は半角スペースを意味する ( 以下 総ての構文で同じ ) ACCESS で SQL 文を使用する場合は 文の末尾に ; ( セミコロン ) をつける 機能 書式 解説 データを探す構文 SELECTΔ フィールド名 ΔFROMΔ テーブル名 ΔWHEREΔ 検索条件 例文 1:SELECTΔ*ΔfromΔ 本 ; 解説 : * ( アスタリスク ) は フィールド総てを表す 本と謂う名前のテーブルに在る全件数のレコードを検索し 総てのフィールドのデータを取得する 例文 2:SELECTΔ タイトル, 価格 ΔfromΔ 本 ; 解説 : フィールドを複数指定する場合は タイトル, 価格 の様に, ( コンマ ) で区切る 本と謂う名前のテーブルに在る全件数のレコードを検索し タイトル 価格フィールドのデータを取得する 例文 3:SELECTΔ*ΔfromΔ 本 ΔWHEREΔ 価格 =2500; 解説 : * ( アスタリスク ) は フィールド総てを表す 本と謂う名前のテーブルに在る価格フィールドが 2500 のレコードを検索し 総てのフィールドのデータを取得する 例文 4:SELECTΔ*ΔfromΔ 本 ΔWHEREΔ タイトル ΔLIKEΔ *VB* ; 解説 :SQL 文内で文字列を指定する場合は ( シングルクオーテージョン ) で区切る 本と謂う名前のテーブルに在るタイトルフィールドに VB という文字列が含まれるレコードを検索し 総てのフィールド のデータを取得する 例文 5:SELECTΔ 本. タイトル, 本. 価格, 著者. 著者名 ΔfromΔ 本, 著者 ΔWHEREΔ 本. 著者 ID= 著者 ID; 解説 : 複数テーブルを関連付けた SELECT 文を記述する事が出来る 使用するテーブルは From 句の後ろに 2 つ目以降, ( コンマ ) で区切り 指定する 亦 フィールド指定は必ず テーブル名. フィールド名 とする 理由は 異なるテーブルで 同じフィールド名を使用して居るケースも有るから 本テーブルの著者 ID フィールドと著者テーブルの ID フィールドを関連付け 本. タイトル 本. 価格 著者. 著者名フィ ールドのデータを取得する -9-

DELETE 文の解説 機能 書式 解説 データを削除する構文 DELETEΔFROMΔ テーブル名 ΔWHEREΔ 条件 例文 1:DELETEΔFROMΔ 本 ΔWHEREΔ 価格 =2500; 解説 :SELECT 文と似て居るが DELETE 文の場合はフィールド名を指定し無い 本と謂う名前のテーブルの価格が 2500 と謂うデータレコードを削除する 例文 2:DELETEΔFROMΔ 本 ; 解説 : 条件を指定し無いと 総てのデータレコードが削除される 本という名前のテーブルのデータレコードすべてを削除する INSERT 文の解説 機能 データを追加する構文 書式 INSERTΔINTOΔ テーブル名 ( フィールド名, フィールド名 )ΔVALUES( 追加する数値データ, 追加する文字列データ ) 解説 例文 1:INSERTΔINTOΔ 本 ΔVALUES(9, VB ファン,4000, 2000/5/5,4,4); 解説 : 例えば VB ファン の様に 文字列型のデータを追加する場合は ( シングルクオーテーション ) で区切る 亦 フィールドとフィールドを区切る文字は, ( コンマ ) を使用する 本テーブルに ID:9 タイトル : VB ファン 価格 :4000 購入日 : 2000/5/5 カテゴリ ID:4 著者 ID:4 のレコードを追加 例文 2:INSERTΔINTOΔ 本 ( タイトル, 価格, 購入日, カテゴリ ID, 著者 ID)ΔVALUES( VB ファン,4000, 2000/5/5,4,4); 解説 : 特定のフィールドにデータを挿入し無い場合は 省略出来る 上記の例では ID フィールドを省略して居る 実行した後 データを見ると ID フィールドには 0 が代入されて居る 猶 文字列型のフィールドの場合は空白と成る 此の状態を NULL と謂う 亦 オートナンバー型フィールドの場合は自動で番号が割り振られる 本テーブルに タイトル : VB ファン 価格 :4000 購入日 : 2000/5/5 カテゴリ ID:4 著者 ID:4 のレコードを追加する UPDATE 文の解説 機能 データ内容を変更する構文 書式 UPDATE テーブル名 ΔSETΔ フィールド名 = 変更する数値データ, フィールド名 = 変更する文字列データ ΔWHEREΔ 変更するデータの条件 解説 例文 1:UPDATEΔ 本 ΔSETΔ 価格 =8000, 購入日 = 2000/6/5 ΔWHEREΔ タイトル = VB ファン ; 解説 : 総てのデータを変更したい場合は WHERE は必要無いが 特定のレコードを変更したい場合は指定する 本テーブルのタイトルフィールドが VB ファン と謂うレコードの価格を 8000 に 購入日を 2000/6/5 に変更する SQL 文で文字列を記述する場合は ( シングルクオーテーション ) で囲む -10-