如何在Excel中通過右鍵點(diǎn)擊工單編號將其記錄寫入數(shù)據(jù)庫
本文是“網(wǎng)盤應(yīng)用—Excel數(shù)據(jù)庫開發(fā)”系列的第四篇文章,上期我們介紹了遠(yuǎn)程工單系統(tǒng)的派發(fā)單位客戶端部分。本期我們將深入介紹如何通過右鍵點(diǎn)擊工單編號將其記錄寫入數(shù)據(jù)庫。1. 右擊工單編號事件設(shè)計(jì)——功
本文是“網(wǎng)盤應(yīng)用—Excel數(shù)據(jù)庫開發(fā)”系列的第四篇文章,上期我們介紹了遠(yuǎn)程工單系統(tǒng)的派發(fā)單位客戶端部分。本期我們將深入介紹如何通過右鍵點(diǎn)擊工單編號將其記錄寫入數(shù)據(jù)庫。
1. 右擊工單編號事件設(shè)計(jì)——功能描述
我們的目標(biāo)是實(shí)現(xiàn)以下功能:當(dāng)用戶右鍵點(diǎn)擊某個工單編號時,程序?qū)⒆詣訌棾龃_認(rèn)對話框,經(jīng)過用戶確認(rèn)后將對應(yīng)的工單記錄寫入數(shù)據(jù)庫。
2. 右擊工單編號事件設(shè)計(jì)——Worksheet_BeforeRightClick事件
為了實(shí)現(xiàn)這個功能,我們需要對Worksheet_BeforeRightClick事件進(jìn)行編程。該事件會在用戶右鍵點(diǎn)擊任意單元格時觸發(fā)。
3. 右擊工單編號事件設(shè)計(jì)——控制事件生效范圍
我們只需要在右擊工單編號時觸發(fā)該事件。為了控制事件生效的范圍,我們需要添加以下代碼:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim EndRow As Single '尾行行號
EndRow Sheets(1).Range("a65535").End(xlUp).Row
If 1 And > 1 And < EndRow And 1 Then '右擊第一列的第二行到最后一行某個單元格時條件成立
'執(zhí)行語句
End If
End Sub
4. 右擊工單編號事件設(shè)計(jì)——獲取用戶選項(xiàng)
當(dāng)用戶右鍵點(diǎn)擊工單編號時,我們需要彈出一個確認(rèn)對話框來獲取用戶的確認(rèn)。以下是完整的代碼:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim EndRow As Single '尾行行號
EndRow Sheets(1).Range("a65535").End(xlUp).Row
If 1 And > 1 And < EndRow And 1 Then '右擊第一列的第二行到最后一行某個單元格時條件成立
'獲取用戶選項(xiàng)
Dim YorN As Byte
YorN MsgBox(" 是否將 " Target " 號工單的記錄存入數(shù)據(jù)庫?", vbOKCancel, "工單記錄存入數(shù)據(jù)庫")
'...
End If
End Sub
5. 右擊工單編號事件設(shè)計(jì)——記錄寫入數(shù)據(jù)庫
當(dāng)用戶確認(rèn)將工單記錄存入數(shù)據(jù)庫后,我們需要將其記錄寫入數(shù)據(jù)庫。以下是完整的代碼:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim EndRow As Single '尾行行號
EndRow Sheets(1).Range("a65535").End(xlUp).Row
If 1 And > 1 And < EndRow And 1 Then '右擊第一列的第二行到最后一行某個單元格時條件成立
'獲取用戶選項(xiàng)
Dim YorN As Byte
YorN MsgBox(" 是否將 " Target " 號工單的記錄存入數(shù)據(jù)庫?", vbOKCancel, "工單記錄存入數(shù)據(jù)庫")
If YorN 1 Then
False
Arr Range("a" ":g" ).Value '獲取當(dāng)前行的所有數(shù)據(jù)
Dim DB As String
DB "d:kp遠(yuǎn)程工單遠(yuǎn)程工單數(shù)據(jù)庫.xls"
Do '檢測沖突循環(huán)體
If Dir(DB) <> "" Then
Filename:DB
Else
MsgBox "文件“遠(yuǎn)程工單數(shù)據(jù)庫.xls”不存在!" vbCrLf vbCrLf "路徑為“d:kp電務(wù)工單電務(wù)工單數(shù)據(jù)庫—2015”"
End If
Workbooks("遠(yuǎn)程工單數(shù)據(jù)庫.xls").Sheets(1).Range("a" ":g" ) Arr
Application.DisplayAlerts False
Workbooks("遠(yuǎn)程工單數(shù)據(jù)庫.xls").Close savechanges:True
Application.DisplayAlerts True
If Dir(DB "*沖突*.*") <> "" Then
Kill (DB "*沖突*.*")
Else
Exit Do
End If
Loop '檢測沖突循環(huán)體,無沖突時結(jié)束循環(huán)。
True
"號工單的記錄存入數(shù)據(jù)庫!"
End If
End If
End Sub
6. 派發(fā)單位客戶端完工!
通過本期的介紹,我們完成了派發(fā)單位客戶端的全部設(shè)計(jì)。下期我們將開始設(shè)計(jì)第三個功能模塊——執(zhí)行單位客戶端。敬請期待!
7. 最后解釋一下圖片鏈接欄的用途:
如果將一個JPG圖片文件命名為“”放置在與數(shù)據(jù)庫同一個目錄下,該文件即與編號為“006”的工單鏈接在一起,可通過客戶端的鏈接地址將其打開。同時,該文件將與數(shù)據(jù)庫一起被同步到其它客戶端,可以被其它客戶端打開瀏覽。你還可以將簽字蓋章的工單原件掃描成JPG圖片作為工單的原始依據(jù)供所有客戶端調(diào)用。
以上就是本期的內(nèi)容,希望對你有所幫助。