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


ホーム サイトマップ
トップページ >データベースプログラミング

データベースプログラミングの流れ

ここでは,Access2000以降から採用されたADOでプログラミングする例を記述しています.
  1. コネクションの確立
    Dim cn As New ADODB.Connection

  2. レコードセットの定義
    Dim rs As New ADODB.Recordset

  3. 変数の定義
       [例]
    	Dim i As Integer(数値の変数)
    Dim i As String(文字列の変数)

    * iは変数名なので,自由に設定できる

  4. SQL 文の発行(テーブルの操作等を行う場合のみ)

  5. プログラミング

  6. データベースを閉じる
             rs.Close
    Set rs = Nothing(メモリの内容をクリア)
  7. コネクションを閉じる
              cn.Close
    Set cn = Nothing(メモリの内容をクリア)

プログラム上でのSQL文の書き方

1行で終わる場合:
mySQL = "SQL文"
 
複数行にまたがる場合:
mySQL = "SQL文" & _
        "SQL文" & _
        "SQL文"

SQL文中に任意の値を入れる場合:
mySQL = "SQL文'" & 文字データの変数 & "'" &_
        "SQL文" & 数値データの変数 & _
        "SQL文"

"'" & zip & "','" & pref & "','" & address & "','" & tel & "'," & _
"'" & mail & "'," & kokoid & ",'" & gakka & "'," & gakunen & "," & _
注意点:

プログラム上でのSQL文発行例

配列に格納されている値をSQL文でテーブルに追加する
mySQL = "INSERT INTO t_kaitousu VALUES ( " 
For po = 1 To 30
  mySQL = mySQL & "'" & arr_kaitousu(po) & "',"
Next po 
mySQL = Left(mySQL,Len(mySQL) - 1)
mySQL = mySQL & " );"
cn.Execute mySQL

データベースプログラミングテクニック

      
  1. レコードの移動
    先頭rs.MoveFirst
    ひとつ前のレコードrs.MovePrevious
    次のレコードrs.MoveNext
    最後のレコードrs.MoveLast

  2. データを追加する
        [例]
            '変数の定義 
              Dim no As Integer
               Dim name As String
            'データの追加
              rs.Addnew
               !NO   = no  (変数noの値をrsテーブルのNOフィールドに入れる)
               rs!NAME = name
               rs.Update
         
  3. データを1行ずつ削除する
        [例]
    Do Until rs.EOF
             rs.Delete
              rs.MoveNext
              Loop
  4. データをまとめて削除する
        [例]
            '変数の定義
              Dim com As New ADODB.Command
               Dim mysql As String
          
           'SQL文の発行
             mysql = "delete from table1"
    
           'SQL文の実行
             com.ActiveConnection = cn
              com.CommandText = mysql
              com.Execute
           
     
  5. 既存のデータの有無を確認する方法
      既存のデータの有無を確認したいテーブルにデータが入っているかどうかをSQL文(カウント関数)を発行して確認する
        [例]
     
      '定義
       Dim rs As New ADODB.Recordset
    
       Dim mysql As String
    
      'SQL文の発行
       mysql = "Select Count(*) As カウント from table2"
    
      'SQL文を実行
       rs.Open mysql,cn,adOpenKeyset,adLockOptimistic
    
      'データの有無を確認
       If rs!カウント > 0 then
            …
       End If
    


  6. コネクションとレコードセット
     Connectionは,ひとつのデータベースについてひとつ
     Recordsetは,用途に応じて分ける
VBAの基礎知識(制御構造)    プログラミング技術

更新日:2004/2/16
Copyright (C)2003-2004 Orakumiko All rights reserved.

[PR]話題の新車を無料プレゼント中:必ず当る抽選会!今すぐ応募で簡単GET