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