接上月的內容,管理系統內,如果發現輸入的資料有問題,除了做必要的資料修改,另一個方式是做資料刪除。同樣的操作介面,我們今天來做資料刪除的程式。在刪除程式設計時,設計者需考慮到一個方面,若此客戶在系統內已建立了後續的操作資料,比如已有消費資料或相關工程記錄等,那此客戶的基本資料就不可再做資料刪除,以保持原始資料的完整性。

系統程式放上網後,陸續都會有網友提出討論,若有問題,我們持續做進一步的探討,還是一樣,可以私訊、文章下留言、MAIL或SKYPE等,希望更多有興趣的朋友加入:

VBA.jpg

 

Sub 客戶的資料刪除()
Application.ScreenUpdating = False
Dim Message, Title, Default, CheckSame
Dim i, j, k, ir, ic As Long
Dim m0, cif, last As Long
Dim rsf, rc, rs, rt As Long
Dim y, m, d1, d2, n, s, t As Variant
Dim d As Date
Dim r As Long
Sheets("客戶").Select
ActiveSheet.Unprotect Password:="*****"
Cells(1, "N") = "資料刪除"
s = Cells(22, "G")
last = Cells(1, "H")
m0 = Cells(2, "H")
cif = Cells(3, "H")
If s = "" Then
    MsgBox "請先查詢資料!"
Else
If m0 < 1 Then       '沒有Match到資料
    MsgBox "資料庫內無 ( " & s & " ) 的資料!"
Else
If Cells(3, "H") > 0 Then
        MsgBox "壓送資料已有 ( " & s & "  ) 的記錄,不可刪除!"
Else
        r = MsgBox("要刪除 ( " & s & " ) 的資料?", _
            vbQuestion + vbOKCancel, "確認進行刪除")
  If r = vbOK Then
    Sheets("客戶").Select
    Sheets("基本資料").Visible = True
    Sheets("基本資料").Select
    Range(Cells(m0 + 1, "A"), Cells(last + 3, "R")).Copy
    Cells(m0, "A").Select
    Selection.PasteSpecial Paste:=xlPasteValues
    Sheets("基本資料").Visible = xlVeryHidden
 '以預設範圍複製貼上,使用者可能從別處貼過來,復原
    Sheets("客戶").Select
    Range("E7:M15").Copy
    Range("E22").Select
    ActiveSheet.Paste
    Cells(21, "C") = ""
    Cells(2, "N") = "資料刪除"
     MsgBox "選取的資料已刪除!"
  Else
            MsgBox "刪除取消", _
                vbInformation + vbOKOnly, "使用者取消刪除動作"
  End If
End If
End If
End If
Sheets("客戶").Select
Application.CutCopyMode = False
ActiveSheet.Protect Password:="*****"
Range("A3").Select
End Sub
 

arrow
arrow

    小卒工作室 發表在 痞客邦 留言(0) 人氣()