●エクセルで作成した表のデータをテーブルに追加します。骨格は基礎編3
までと変わりありません。(接続の確立、レコードセットを開く)
ここではレコードセットの開き方に追加情報を加えますので、基礎編2の
サンプルを利用します。処理部分だけが変わります。
(前提)追加元の表は1項で使用したものを利用します。
・エクセルの表に新規データを作成(伝票番号が重ならないように注意。)
・同一シート上にコマンドボタンを配置し,クリックイベントプロシージャを
作成,骨格部分をコピー。
1.レコードセットを開くときにOpenメソッドを使用しましたが、引数を2つ加えます。
MyRs.Open MySQL, MyCon, adOpenStatic, adLockOptimistic
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
(カーソルタイプ)(ロックタイプ)
2.レコードを追加する基本形は、レコードセットを開いたあと,
レコードセット名.AddNew
レコードセット名!フィールド名 = Cells(〜,〜)
レコードセット名.Update
のようにします。ポイントは AddNewメソッドとUpdateメソッドです
(サンプル - 骨格部分)
Sub Tsuika()
Dim i As Integer
Dim MySQL As String
Set MyCon = New ADODB.Connection
Set MyRs = New ADODB.Recordset
MyCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & MyPath
MyCon.Open
MySQL = "SELECT * FROM DATA"
MyRs.Open MySQL, MyCon, adOpenStatic, adLockOptimistic
With MyRs 'シートの項目行(1行目)を除いてデータ行数分ループ
For i = 2 To Cells(1, 1).CurrentRegion.Rows.Count
.AddNew
!伝票番号 = Cells(i, 1).Value
!日付 = Cells(i, 2).Value
!コード = Cells(i, 3).Value
!得意先 = Cells(i, 4).Value
!金額 = Cells(i, 5).Value
.Update
Next i
End With
MyRs.Close
Set MyRs = Nothing
End Sub
|