即効テクニック |
●エクセルで作成した表のデータをテーブルに追加します。骨格は基礎編3までと変わりありません。(接続の確立、レコードセットを開く) ここではレコードセットの開き方に追加情報を加えますので、基礎編2のサンプルを利用します。処理部分だけが変わります。 (前提)追加元の表は1項で使用したものを利用します。 ・エクセルの表に新規データを作成(伝票番号が重ならないように注意。) ・同一シート上にコマンドボタンを配置し、クリックイベントプロシージャを作成,骨格部分をコピー。(サンプル - 骨格部分)
- レコードセットを開くときにOpenメソッドを使用しましたが、引数を2つ加えます。 MyRs.Open MySQL, MyCon, adOpenStatic, adLockOptimistic ~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~ (カーソルタイプ)(ロックタイプ)
- レコードを追加する基本形は、レコードセットを開いたあと、 レコードセット名.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