こんにちは、表題のような内容で行き詰ってしまい質問させてもらいます。
現在、商品在庫のデータベースを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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelファイルがDoxillionに突...
-
400KBのエクセルは重いの?
-
新PCで作ったエクセルファイル...
-
CSVファイル
-
共有しているEXCELシートのアク...
-
エクセルを開くと二重起動する
-
accessからエクセルにエクスポ...
-
エクセルの添付ファイルに記入...
-
MROUNDの代替
-
エクセルにクリックすると指定...
-
複数のエクセルファイルからデ...
-
Lotus 1-2-3のファイルをExcel...
-
マルチモニター設定をしても2画...
-
メモ帳で開く設定を元に戻したい。
-
エクセルVBAでアクセスファイル...
-
ダウンロードしたcsvファイルを...
-
エクセルのファイルが1回で開け...
-
エクセルで複数のブックで「元...
-
エクセルでの入力後の動きが遅い
-
メモ帳(拡張子log)の数字デー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでファイルを閉じても...
-
エクセルで複数のブックで「元...
-
共有しているEXCELシートのアク...
-
Lotus 1-2-3のファイルをExcel...
-
エクセルを開いたときのシート
-
400KBのエクセルは重いの?
-
ExcelファイルがDoxillionに突...
-
エクセルの添付ファイルに記入...
-
エクセルにクリックすると指定...
-
メモ帳(拡張子log)の数字デー...
-
ACCESSのVBで、エクセルファ...
-
Windows11で画面下の帯の部分で...
-
開くと警告の出るExcelファイル...
-
エクセルVBAでアクセスファイル...
-
メモ帳で開く設定を元に戻したい。
-
CSVファイル
-
エクセルの塗りつぶしの色が勝...
-
CSVファイルでVBAを動かす方法
-
エクセルの中にエクセルを添付...
-
エクセルで1.5GBのファイルを開...
おすすめ情報