IPOS友好終端組批量修改

 由於公司需要,需要變更IPOS系統的友好終端組和IPOS友好終端組的調貨方式 

由於此操作非常麻煩 ,工作非常繁瑣,特寫此模板,批量更新,一鍵完成

excel 表格式 

共2個表格

目前是每家店鋪有2個友好終端組

1、所有終端   權限 爲  橫調

2、所屬友好終端組 權限爲 庫存查詢和橫調

上代碼

首先把三個表清空

ipos_yhzdz   友好終端組的主表

ipos_yhzdzmx   友好終端組的明細表

ipos_dpyhzd   各店鋪友好終端組明細數據,每家店2行數據

我這裏ID爲9的是所有終端,這個不用改,所以不刪除

'設置以下全局變量 
Dim cn As Object
Dim rs As Object
 Sub 數據庫連接mysql()
    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.RecordSet")
    cn = "Driver={MySQL ODBC 5.3 Unicode Driver};Server=IP地址;Port=3306;Database=數據庫名稱;User=root; Password=數據庫密碼;Option=3;"
      cn.Open
 End Sub

Sub 刪除原有()
Call 數據庫連接mysql
sql = "delete from ipos_yhzdz where id <> 9 "
sql2 = "delete from ipos_yhzdzmx where pid <> 9 "
sql3 = "delete from ipos_dpyhzd"
cn.Execute (sql)
cn.Execute (sql2)
cn.Execute (sql3)
cn.Close

End Sub

接下來執行修改

上代碼

Sub 查詢區域內所有店鋪()
Application.ScreenUpdating = False   '關閉屏幕刷新
Sheets("1").Select     '選擇表格1進行工作 
Call 刪除原有   
Call 數據庫連接mysql
x = 17    '此項自定義,看你的ipos_yhzdz表裏面ID到多少,往下一位就可以了,避免重複,主表單據號
For y = 1 To Sheets("sheet2").Cells(2, 256).End(1).Column    '外層循環控制列
d_name = ""    '名稱初始化

  Sheets("1").Cells.Clear   '先清空工作表1的數據
    For i = 2 To 20    '這裏看你的每個大區有多少區域 包含在裏面,內層循環控制行
    If Sheets("sheet2").Cells(i, y) = "" Then    '判斷是否有區域名稱
    Else
    d_name = d_name & "," & Sheets("sheet2").Cells(i, y)    '備註名稱
    
       sql = "select id from com_base_kehu where qy_id in (select id from com_base_quyu where qymc='" & Sheets("sheet2").Cells(i, y) & "') and ty=0"   '查詢區域名稱對應的商店ID
      If rs.State = 1 Then rs.Close
      rs.Open sql, cn, 1, 1
              If Range("a1") = "" Then
                Sheets("1").Range("A" & [A65536].End(xlUp).Row).CopyFromRecordset rs
              Else
                Sheets("1").Range("A" & [A65536].End(xlUp).Row + 1).CopyFromRecordset rs
              End If   '工作表1列出查詢到的ID
        End If
    Next i
time1 = (Now - 70 * 365 - 19) * 86400 - 8 * 3600    '時間戳
sql1 = "INSERT INTO ipos_yhzdz (Id, pid, tn_id, org_id, yhzddm, yhzdmc, bz, row_no, alterdate, lastchanged, yhzd_kzz) VALUES (" & x & ", NULL, '0', '1', 'zdz0000" & x & "', '" & d_name & "', '" & d_name & "', NULL, '" & time1 & "', '" & Now & "', '0')"  
cn.Execute (sql1)   '插入主表單據
    For t = 1 To Sheets("1").[A65536].End(xlUp).Row    '此處開始更新明細表和店鋪明細終端組
    sql3 = "INSERT INTO ipos_yhzdzmx (pid, tn_id, zd_id, bz, row_no, alterdate, lastchanged, jtzd, zdjs, zdtj) VALUES ( '" & x & "', '0', '" & Sheets("1").Cells(t, 1) & "', NULL, NULL, '" & time1 & "', '" & Now & "', '1', NULL, NULL)"  
    sql4 = "INSERT INTO ipos_dpyhzd(pid,zdz_id,hd,kc,xs,hdkz,hdthkz,kqyh, yhzd_kzz,ck_cus,mod_cus,ck_vip,mod_vip,ck_vcard,ck_czk)VALUES('" & Sheets("1").Cells(t, 1) & "','" & x & "','1','1','0','0','0','0','0','0','0','0','0','0','0')"   '更新所屬區域的查詢
    sql5 = "INSERT INTO ipos_dpyhzd(pid,zdz_id,hd,kc,xs,hdkz,hdthkz,kqyh, yhzd_kzz,ck_cus,mod_cus,ck_vip,mod_vip,ck_vcard,ck_czk)VALUES('" & Sheets("1").Cells(t, 1) & "','9','1','0','0','0','0','0','0','0','0','0','0','0','0')"    '更新所有終端的橫調
    cn.Execute (sql3)
    cn.Execute (sql4)
    cn.Execute (sql5)
 Next t
x = x + 1    '主表單據號+1
Next y
cn.Close
Sheets("sheet2").Select
Application.ScreenUpdating = True
MsgBox "添加完成!"
End Sub

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章