Onlin Shop商品管理DB

My Notes 忘れっぽい自分のためのメモ

アップロードファイルの作成

各カートのアップロードフォーマットに合わせたテーブルを作成し、そのテーブルに書き込んだレコードを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
memo

プロシージャーGetDocPathはここを参照
プロシージャーGetFNameはここを参照