![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
ExcelからACCESSにデータを追加したいのです。
Excelに下記のようなデータがあります。
ExcelのセルA1 xxx-xc
ExcelのセルB1 メーカーズマーク
ExcelのセルC1 バーボン
ExcelのセルD1 5000円
それで下記のコードをExcelに書きました。
Sub データ追加()
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim conStr As String
conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ACCESSの絶対パス"
con.Open ConnectionString:=conStr
rs.Open Source:="M_商品", ActiveConnection:=con, _
CursorType:=adOpenKeyset, LockType:=adLockOptimistic
With rs
.AddNew
.Fields("商品コード").Value = Range("A1").Value
.Fields("商品名").Value = Range("B1").Value
.Fields("商品区分").Value = Range("C1").Value
.Fields("単価").Value = Range("D1").Value
.Update
End With
rs.Close
con.Close
End Sub
問題なく作動します。
でもこのコードだと1行しかACCESSへ転記できません。
Sub データ追加()
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim conStr As String
conStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=ACCESSの絶対パス"
con.Open ConnectionString:=conStr
rs.Open Source:="M_商品", ActiveConnection:=con, _
CursorType:=adOpenKeyset, LockType:=adLockOptimistic
With rs
.AddNew
.Fields("商品コード").Value = Range("A1").Value
.Fields("商品コード").Value = Range("A2").Value
.Fields("商品名").Value = Range("B1").Value
.Fields("商品名").Value = Range("B2").Value
.Fields("商品区分").Value = Range("C1").Value
.Fields("商品区分").Value = Range("C2").Value
.Fields("単価").Value = Range("D1").Value
.Fields("単価").Value = Range("D2").Value
.Update
End With
rs.Close
con.Close
End Sub
このように記載すれば、2行転記できますが、
どのように記載すれば、簡単に、3行、4行と転記できるのでしょうか?
また転記するものは、日によって
10行のときもあれば、30行のときもあります。
本当は空白のセルまでに記載したものをACCESSへ転記したいのですが、
どのように記載したらいいのかご教授お願いします。
No.1ベストアンサー
- 回答日時:
いろいろな書き方がありますが
分かりやすいのはこんな感じ。
Dim i As long
・・・
i = 1
With rs
Do Until Cells(i, 1) = ""
.AddNew
.Fields("商品コード").Value = Cells(i, 1)
.Fields("商品名").Value = Cells(i, 2)
.Fields("商品区分").Value = Cells(i, 3)
.Fields("単価").Value = Cells(i, 4)
.Update
i = i + 1
Loop
End With
・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBA 税率を判定表する方法を教えて下さい。 10 2022/03/28 11:21
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2010でふりがなが漢字にな...
-
VBAで横データを縦データに変換...
-
エクセル 置換 方法
-
不明なコマンドです("FROM")。...
-
Access2010 「演算子がありませ...
-
mfc42.dllファイルってなんです...
-
オペランドが足りませんとコメ...
-
【ExcelVBA】sheet作成時にマク...
-
フェイス・シートについて教え...
-
FLASHで外部swfファイルを検索...
-
AUTOCAD 2010でdwlファイルの場...
-
InstallShieldWizardのエラー
-
エクセル マスターデータから別...
-
起動時エラーの対処方法
-
エクセル/マクロ Exit Subが実...
-
Pファイルを実部と虚部に分け...
-
pythonでrequestsが使えない
-
エクセル 「実行時エラー"13":...
-
Bootcampで無線lan接続が出来ない
-
マクロ実行ボタンがコピー出来ない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの文字間スペースを入...
-
Excel2010でふりがなが漢字にな...
-
VBAで横データを縦データに変換...
-
UserFormのTextBoxからフリガナ...
-
【マクロ】セルの塗りつぶし色...
-
エクセル(アクセス)で全ての...
-
エクセル 置換 方法
-
Excelから、ACCESSへデータをエ...
-
VBAについて教えて頂けませんか。
-
エクセル シート内のハイパー...
-
Excelで同一セル内に入力されて...
-
不明なコマンドです("FROM")。...
-
Access2010 「演算子がありませ...
-
オペランドが足りませんとコメ...
-
【ExcelVBA】sheet作成時にマク...
-
エクセル/マクロ Exit Subが実...
-
mfc42.dllファイルってなんです...
-
VBA シートの切り替えができな...
-
貼り付けをマクロで禁止させたい。
-
(int)キャストとintvalの違い
おすすめ情報