
こんにちは、表題のような内容で行き詰ってしまい質問させてもらいます。
現在、商品在庫のデータベースをACCESS2010を使用してなんとか完成させました。
といっても売上管理等しているわけではなく、単に商品のデータベースです。
【テーブル構成】
T_商品
T_ブランド
T_ジャンル
T_商品を基本にし、T_ブランド、T_ジャンルはルックアップ用です。
T_商品をデータソースとして、入力、検索用に「F_商品」 というフォームを作ってあります。
入力、検索作業ともに問題なく行えており、現在レコード数は400程度ですが今後5000程度までは増えると思います。
表題のようにEXCELを併用するのは、今回WEBショップをはじめ、利用しているECシステムではCSVで掲載商品データをインポートできるので、それを利用しようと思っております。
理想の動作的には、
上記「商品フォーム」でショップに掲載したい(CSVファイルに転記したい)商品を検索し、
「ショップ掲載リスト」などのボタンを作って押すことで「掲載用.xls」などのエクセルファイルにテーブルのフィールドから必要な「商品名」「ブランド」「価格」などを抜粋して転記、
ショップに掲載したい商品、複数をすべて転記したらエクセルファイルをCSVファイルとして保存し、ECシステムにアップロードです。
現在フォームにエクセルファイルに転記用のボタンを作り、VBAで指定のエクセルファイルを起動するところまででき、コードはネットで探して、以下のようになっております。
Private Sub 転記ボタン_Click()
Dim objExcel
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.Workbooks.Open "エクセルファイルのパス.xlsx"
End sub
エクセルファイルはテーブルの定義がしてあり名前を「商品テーブル」としてあります。
ACCESS側のVBAでエクセルシート上の商品テーブル内の上から順に転記していくにはどういうACCESS VBAを書けばいいのでしょうか?
上からというのは新しく転記する商品を次の行、次の行にということです。
http://oshiete.goo.ne.jp/qa/356182.html
こちらの質問も参考にしてみましたが、「.Cells(i, 1) = RS.Fields("フィールド1")」のところでエラーになりました。。。
長々と的を得てない質問文になってしまいましたが、よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示

No.1
- 回答日時:
一例ですがこのような感じではどうでしょうか。
。但し出力用のエクセルデータが既に開いていることが前提なので、転記用のボタンとは別にエクセルファイルを開くボタンを設置するか、または手動で開く等しておく必要があります。。
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim objBook As Object
Dim objSheet As Object
Dim i As Long
Dim iname As String
Set db = CurrentDb
iname = [Forms]![F_商品]![テキスト0]
Set rs = db.OpenRecordset("select 商品名,ブランド,価格 from T_商品 where 商品名='" & iname & "'")
'テキスト0→商品名入力用のテキストボックス
'フィールド名は必要に応じてカンマ区切りで追加
Set objBook = GetObject("エクセルファイルのパス.xlsx")
Set objSheet = objBook.Worksheets("シート名")
i = objSheet.range("A" & objSheet.rows.Count).End(xlup).row + 1 '既存データの最終行を取得
objSheet.range("A" & i).CopyFromRecordset rs '出力
rs.Close
db.Close
ご回答ありがとうございます。
あれからだいぶ期間がたっていたので、回答いただいたのに気づくのが送れて、お礼が遅くなりすみません。
何とか新規のシートには転記ができるようになったのですが、
= objSheet.range("A" & objSheet.rows.Count).End(xlup).row + 1 '既存データの最終行を取得
この部分で行き詰っているところでした。
参考にさせていただき完成させたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Excel(エクセル) エクセルでのVBA 2 2022/08/03 06:48
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- その他(プログラミング・Web制作) パイソンでのプログラミングについて 3 2022/08/11 20:31
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Excel(エクセル) VBA でvlookup エラーなどは削除したい 8 2022/12/30 04:03
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メモ帳で開く設定を元に戻したい。
-
エクセルでファイルを閉じても...
-
エクセルの塗りつぶしの色が勝...
-
Windows11で画面下の帯の部分で...
-
400KBのエクセルは重いの?
-
エクセルを閉じた時、ノッペラ...
-
エクセルの添付ファイルに記入...
-
ExcelファイルがDoxillionに突...
-
エクセルのプロパティの作成日...
-
accessからエクセルにエクスポ...
-
エクセルを開いたときのシート
-
~$ファイル名のファイルが出現...
-
エクセルにクリックすると指定...
-
開くと警告の出るExcelファイル...
-
Google Todoリスト
-
ACCESSのVBで、エクセルファ...
-
Lotus 1-2-3のファイルをExcel...
-
excelの拡張子xlsmが開けません
-
エクセルで複数のブックで「元...
-
excel 突然容量が増える原因
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでファイルを閉じても...
-
Windows11で画面下の帯の部分で...
-
エクセルの添付ファイルに記入...
-
エクセルを閉じた時、ノッペラ...
-
エクセルを開いたときのシート
-
メモ帳で開く設定を元に戻したい。
-
CSVファイルでVBAを動かす方法
-
エクセルで複数のブックで「元...
-
Lotus 1-2-3のファイルをExcel...
-
エクセルにクリックすると指定...
-
400KBのエクセルは重いの?
-
共有しているEXCELシートのアク...
-
CSVファイル
-
エクセルVBAでアクセスファイル...
-
エクセルの塗りつぶしの色が勝...
-
ExcelファイルがDoxillionに突...
-
メモ帳(拡張子log)の数字デー...
-
エクセルでの入力後の動きが遅い
-
CSVファイルをカンマ区切りのテ...
-
excel 突然容量が増える原因
おすすめ情報