Onlin Shop商品管理DB

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

在庫更新データをCSV出力

フォームF_ItemRegistから実行できるように、ショップ選択コントロールとCSV出力の実行ボタンをフォームF_ItemRegistに作成 。

在庫数更新用テーブルへの書き込みとCSVファイルへの出力

・CSV出力の実行ボタンをフォームF_ItemRegistに作成

クエリQ_Updateを作成

使用テーブル:T_Putup(メイン)、T_Detai

レコード抽出してCSVファイルに出力する

抽出レコードを出力用テーブルに書き込む

標準モジュール

使用変数

Dim rsQuantity As New ADODB.Recordset
Dim rsQPutup As New ADODB.Recordset
Dim rsTItem As New ADODB.Recordset
Dim intSID As Integer
Dim strTblName As String

レコードセットを生成

Q_Updateのレコードセット、SIDで絞り込む

    intSID = Forms!F_ItemRegist.ShopID
    With Application.CurrentProject
        rsQPutup.Open "select * from Q_Update where SID=" & intSID, .Connection _
        , adOpenStatic, adLockOptimistic
    End With

T_Itemテーブルのレコードセット

    With Application.CurrentProject
        rsTItem.Open "select * from T_Item", .Connection _
        , adOpenStatic, adLockOptimistic
    End With

アップデート先によって処理を分岐させる

    Select Case intSID
        Case 1: ショップ1の処理
        Case 2: ショップ2の処理
        Case 3: ショップ3の処理
    End Select

テーブルへデータの書き込み

テーブルの全レコードを削除

    strTblName = "<テーブル名>"
    All_DataDel strTblName

数量更新用ショップテーブルのレコードセット

    With Application.CurrentProject
        rsQuantity.Open "select * from T_EasyQuantity", .Connection _
        , adOpenStatic, adLockOptimistic

    End With
    
    Do Until rsQPutup.EOF
        rsTItem.Filter = "GroupNo=" & rsQPutup("GroupNo")
        cnt = rsTItem.RecordCount
        If cnt = 1 Then
            rsQuantity.AddNew
            rsQuantity("code") = rsTItem("GroupNo")
            rsQuantity("quantity") = rsTItem("Quantity")
            rsQuantity.Update
        Else
            Do Until rsTItem.EOF
            rsQuantity.AddNew
            
            rsQuantity("code") = rsTItem("GroupNo")
            If rsQPutup("VID") = 1 Then
                rsQuantity("sub-code") = "ds-" & rsTItem("ItemNo")
            Else
                rsQuantity("sub-code") = rsTItem("ItemNo")
            End If
            
            rsQuantity("quantity") = rsTItem("Quantity")
            rsQuantity.Update
            rsTItem.MoveNext
            Loop
        End If
        rsQPutup.MoveNext
    Loop
CSVファイルに出力

標準モジュールSub ExportData(TblName As String)
ダイアログを開いて任意のファイル選択

    Dim filePath As Variant
    filePath = GetDocPath & "\" & GetFName
   
    DoCmd.TransferText _
        transfertype:=acExportDelim, _
        tableName:=TblName, _
        FileName:=filePath, _
        HasFieldNames:=True