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