アップロードファイルの作成
各カートのアップロードフォーマットに合わせたテーブルを作成し、そのテーブルに書き込んだレコードをCSVファイルに出力する。
カートフォーマットに合わせたテーブルの作成
商品登録用テーブルを作成
カート毎に定められたアップロードフォーマットに合わせてテーブルを作成
在庫数量更新用テーブルを作成
在庫数更新用CSVファーマットの有るカートのみテーブルを作成
抽出の実行・閲覧用フォームを作成
クエリQ_UpLoadを作成
使用テーブル:
T_Putup(メイン)、T_Detail、T_Shop、T_Vender、T_Brand、T_Status、T_Item、T_Shipping、T_Category1、T_Category2
テーブル結合方向:
テーブル | フィールド | 結合方向 | テーブル | フィールド |
---|---|---|---|---|
T_Putup | GroupNo | → | T_Detail | GroupNo |
SID | → | T_Shop | SID | |
T_Detail | VID | → | T_Vendor | VID |
BrdID | → | T_Brand | BrdID | |
StsID | → | T_Status | StsID | |
ItemNo | → | T_Item | ItemNo | |
ShipID | → | T_Shipping | ShipID | |
Ctg1ID | → | T_Category1 | Ctg1ID | |
Ctg1ID | → | T_Category2 | Ctg1ID | |
Ctg2ID | → | T_Category2 | Ctg2ID |
抽出の実行・閲覧用フォーム(F_Extract)を作成
- 抽出条件用テキストボックス(名前:ShopID)、抽出実行ボタン(名前:Extract、標題:レコード抽出・表示)を配置
- 非連結サブフォーム(名前:F_ExtractSub)を作成
アップロード用データの作成と出力
クラスモジュール(ExTract_Click)
抽出実行ボタンの[イベント]-[クリック時]にプロシージャーを設定
Dim strTable As String Select Case Me!ShopID Case 1: strTable = "カート1テーブル名" All_DataDel strTable MakeFC2 strTable Case 2: strTable = "カート2テーブル名" All_DataDel strTable MakeYahoo strTable Case 3: strTable = "T_EasyItem" All_DataDel strTable MakeEasy strTable Case Else: MsgBox "そのコードは使われていません" GoTo ExitExtr End Select
Memo
“All_DataDel”はテーブルのレコードを削除するプロシージャー、ここを参照
非連結サブフォームにテーブルレコードを表示
Me.F_ExtractSub.SourceObject = "テーブル." & strTable
カートテーブルにデータの一括登録
標準モジュール
使用変数
Dim rsPaste As New ADODB.Recordset Dim rsCopy As New ADODB.Recordset Dim rsOpData As New ADODB.Recordset
クエリのレコードセットの生成
クエリQ_UpLoadをSID(ショップコード)で絞り込んでレコードセットを生成
Dim intShopID As Integer intShopID = Forms!F_Extract.ShopID With Application.CurrentProject rsCopy.Open "select * from Q_UpLoad where SID=" & intShopID, .Connection _ , adOpenStatic, adLockOptimistic End With
アップロード用テーブルのレコードセットの生成
With Application.CurrentProject rsPaste.Open "select * from " & tableName, .Connection _ , adOpenStatic, adLockOptimistic End With
テーブルへ書き込み
Do Until rsCopy.EOF rsPaste.AddNew rsPasteへの書き込み処理 rsPaste.Update rsCopy.MoveNext Loop rsPaste.Close rsCopy.Close Set rsPaste = Nothing Set rsCopy = Nothing
テーブルのレコードをCSVファイルに出力
データをCSVファイルに出力処理を実行するボタンをフォーム(F_Extract)に作成、名前:Output、標題:CSVファイルに出力
クラスモジュール(Output_Click)
Select Case Me!ShopID Case 1: ExportData "T_FCItem" Case 2: ExportData "T_YahooItem" Case 3: ExportData "T_EasyItem" Case Else: MsgBox "そのコードは使われていません" End Select
標準モジュール(ExportData)
Dim filePath As Variant filePath = GetDocPath & "\" & GetFName DoCmd.TransferText _ transfertype:=acExportDelim, _ tableName:=TblName, _ FileName:=filePath, _ HasFieldNames:=True