6.6 新規データの追加

 テーブルに新しいレコードを追加する方法には、以下の二つの方法があります。

■INSERT INTO文(その1)

 次のような構文になります。

INSERT INTO テーブル名(フィールド名1,フィールド名2,・・・) VALUES(データ1、データ2、・・・)

 つまり、テーブル名に新しいレコードを追加し、フィールド名1の値をデータ1にフィールド名2の値をデータ2に・・・順次設定します。

(例) INSERT INTO tblTest(q1,name) VALUES(2,'田中')

この例では、tblTestテーブルに新しいレコードを追加し、qフィールドの値を1に、nameフィールドの値を'山田'に設定します。

 設定値が文字列の場合は、両端を(')(シングルクォーテーション)で囲みます。(")(ダブルクォーテーション)でも構いません。

【注意】

ただ、(")を使うと、SQL文全体を文字列であることを示す(")と混乱するので、(')を使用する方がいいでしょう。
SQL文を文字列変数strSQLに格納する場合、次のようにします。

strSQL = "INSERT INTO tblTest(q1,name) VALUES(2,'田中')"

(")を使用する場合は、

strSQL = "INSERT INTO tblTest(q1,name) VALUES(2,""田中"")"

と(")を2重に記述し、SQL文全体を文字列であることを示す(")と区別します。

 

【注意】

フィールドの値にNULL値を設定できないので、あらかじめ各フィールドの設定値がNULL値でないかどうかをチェックする必要があります。

図6.6.1

■INSERT INTO文(その2)

 RecordsetをServer.CreateObject("ADODB.Recordset")で生成した場合。

図6.6.2

■AddNewメソッド

 新規レコードを追加する方法にRecordsetオブジェクトのAddNewメソッドを使用する方法もあります。

 構文は次の通りです。

Set objRst = Server.CreateObject("ADODB.Recordset")
objRst.Open テーブル名, データソース名, 3, 2
objRst.AddNew
   objRst(フィールド名1) = データ1
   objRst(フィールド名2) = データ2
   ・・・
ObjRst.UpDate
objRst.Close

図6.3.3