データの一括登録と追加
CSVファイルから読み込んでデータの登録・追加・更新を行い、登録データからアップロード用データを作成して、CSVファイルに出力出来るようにする。
データ一括登録・追加フォーム作成
クエリQ_ItemDataを作成
使用テーブル:T_Item(メイン)、T_Detail
テーブルの結合方向:
テーブル | フィールド | 結合方向 | テーブル | フィールド |
---|---|---|---|---|
T_Item | GroupNo | → | T_Detail | GroupNo |
フォーム(F_ItemRegist)を作成
商品登録・追加用コントロールの作成
- テキストボックス(対象仕入先指定用)、名前:[vndID]
- 実行用ボタン、名前:[ItemRegist]、標題:[商品の登録・追加]
在庫数の更新用コントロールの作成
- 数量更新用実行ボタン、名前:[QuantitiyInport]、標題:[在庫数の更新]
- CSV出力用テキストボックス(対象ショップ指定用)、名前:[shopID]
- 在庫更新CSV書き出し用、名前:[QuantitiyUpdate]、標題:[在庫数更新CSV作成]
CSVファイルからデータの取り込み
標準モジュール(AddData)
使用変数:
Dim conCsv1 As New ADODB.Connection Dim rsCsv1 As New ADODB.Recordset Dim rsQ_Item1 As New ADODB.Recordset Dim rsQ_ItemDetail As New ADODB.Recordset Dim intVdID As Integer
CSVファイルに接続するための設定
conCsv1.Open "Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=" & CurrentProject.Path & "\data;" _ & "Extended Properties=""text;HDR=Yes;FMT=Deimited;"""
CSVファイルのレコードセットを生成
Set rsCsv1 = conCsv1.Execute("select * from[" & GetFName & "]")
メモ
“GetFName“はファイル選択ダイアログを開きファイル名を取得するを参照
クエリのレコードセット生成
クエリQ_Itemのレコードセットを生成
With Application.CurrentProject rsQ_Item1.Open "select * from Q_Item", .Connection _ , adOpenStatic, adLockOptimistic End With
クエリQ_ItemDetailのレコードセットを生成
With Application.CurrentProject rsQ_Item1.Open "select * from Q_ItemData", .Connection _ , adOpenStatic, adLockOptimistic End With
仕入先IDで処理を分ける
intVdID = Forms!FrenewData.VdID Select Case intVdID Case 1: 仕入先1の登録・追加処理 Case 2: 仕入先2の登録・追加処理 Case 3: 仕入先3の登録・追加処理 End Select
仕入先提供ファイルからレコードの登録・追加処理
CSVファイルからのレコードの登録?追加
Do Until rsCsv1.EOF rsQItemDetail.Find "T_Detail.GroupNo=" & "'" & rsCsv1("商品番号") & "'", 0, _ adSearchForward, 1 If rsQItemDetail.EOF = True Then rsQItemDetail.AddNew rsQItemDetailへの追加処理 rsQItemDetail.Update Else rsQItem1.Find "ItemNo='" & rsCsv1("商品番号") & "'", 0, adSearchForward, 1 If rsQItem1.EOF = True Then rsQItem1.AddNew rsQItem1への追加処理 rsQItem1.Update End If End If rsCsv1.MoveNext Loop
メモ
「追加処理」部分は仕入先の数分、提供CSVに合わせた記述が必要。