延续前面两期的论述,本期开始用Excel设计一个“远程工单系统”。
前期准备工作(包括相关工具或所使用的原料等)
Excel/VBA/酷盘需求描述:
公司总部客服平台根据用户申诉对各地区客户经理派发工单,要求完成特定的工作。客户经理反馈工单执行情况。
系统由数据库、派发单位客户端、执行单位客户端三部分组成。
建立“数据库”:
新建一个Excel文件,改名为“远程工单数据库.xls”,放在“D:\kp\远程工单”中。设置表头如图所示。
怕图片看不清楚,表头列在下面:
工单编号、执行单位、派发日期、完成时限、完成时间、执行情况说明(执行单位填写)、补充要求(派发单位填写)
![网盘应用—Excel数据库开发:[3]叩石垦壤](http://www.52ij.com/uploads/allimg/160403/213120M96-0.jpg)
![网盘应用—Excel数据库开发:[3]叩石垦壤](http://www.52ij.com/uploads/allimg/160403/21312043O-1.jpg)
派发单位客户端设计:
功能描述:
●打开客户端(Excel文件)时通过Workbook_Open事件调用“更新本地数据”程序模块,删除客户端数据,将数据库中的数据复制到客户端,设置格式。
●设置“更新本地数据”按钮,点击按钮时通过Click事件调用“更新本地数据”程序模块,删除客户端数据,将数据库中的数据复制到客户端,设置格式。
●右击工单编号时,通过Worksheet_BeforeRightClick事件将对应工单记录写入数据库。
表头设计:
把“远程工单数据库.xls”复制到桌面(或其它位置),改名为“远程工单派发单位客户端.xls”,增加1列“工单浏览”,如图示设置好格式。
![网盘应用—Excel数据库开发:[3]叩石垦壤](http://www.52ij.com/uploads/allimg/160403/2131205L8-2.jpg)
“更新本地数据”模块设计——建立模块
该模块被Workbook_Open事件、命令按钮Click事件调用,完成删除客户端数据、将数据库中的数据复制到客户端、设置格式等功能。
打开“远程工单派发单位客户端.xls”,Alt+F11打开VBA窗口,如图示插入模块,双击刚插入的模块1,在右边的代码窗口中输入代码。
![网盘应用—Excel数据库开发:[3]叩石垦壤](http://www.52ij.com/uploads/allimg/160403/2131206402-3.jpg)
“更新本地数据”模块设计——打开数据库
Sub 更新本地数据()
Dim DB As String
DB="d:\kp\远程工单\远程工单数据库.xls"
If Dir(DB) <> "" Then
Workbooks.Open Filename:=DB
Else
MsgBox "连接数据库失败!" & vbCrLf & vbCrLf & _
"文件“d:\kp\远程工单\远程工单数据库.xls”不存在!"
Application.DisplayAlerts=False
ThisWorkbook.Application.Quit
End If
'......
End Sub
“更新本地数据”模块设计——更新本地数据
Sub 更新本地数据()
'......
With ThisWorkbook.Sheets(1)
Dim sRange, tRange As Range
.Rows("2:65535").Delete
arr=Workbooks("远程工单数据库.xls").Sheets(1).UsedRange.Offset(1)
.Cells(2, 1).Resize(UBound(arr), UBound(arr, 2))=arr
Workbooks("远程工单数据库.xls").Close savechanges:=False
Application.StatusBar="连接数据库成功!本地数据已更新!"
End With
'......
End Sub
“更新本地数据”模块设计——设置格式
Sub 更新本地数据()
'......
With ThisWorkbook.Sheets(1).UsedRange.Offset(1)
With .Resize(.Rows.Count - 1)
.Borders.LineStyle=xlContinuous
.VerticalAlignment=xlCenter
.WrapText=True
End With
End With
'......
End Sub
“更新本地数据”模块设计——建立工单扫描图片链接、分类标色
Sub 更新本地数据()
'......
Dim i, EndRow As Integer, Pic As String
ThisWorkbook.Sheets(1).Activate
EndRow=Range("a65535").End(xlUp).Row
Range("g2:g" & EndRow).Interior.ColorIndex=2
For i=2 To EndRow
Pic="D:\kp\远程工单\" & Year(Date) & "-" & _
Cells(i, 1) & ".jpg"
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 8), _
Address:=Pic, TextToDisplay:=Pic
If Cells(i, 5) >=Cells(i, 3) Then '完成白色
Cells(i, 3).Interior.ColorIndex=2
Else
If Cells(i, 4) < Date Then '过期红色
Cells(i, 4).Interior.ColorIndex=3
Else '未完成未过期绿色
Cells(i, 4).Interior.ColorIndex=43
End If
End If
Next i
End Sub
![网盘应用—Excel数据库开发:[3]叩石垦壤](http://www.52ij.com/uploads/allimg/160403/2131203455-4.jpg)
Workbook_Open事件调用“更新本地数据”程序模块:
如图示,在Workbook_Open事件中添加代码:
Private Sub Workbook_Open()
更新本地数据
End Sub
![网盘应用—Excel数据库开发:[3]叩石垦壤](http://www.52ij.com/uploads/allimg/160403/2131204512-5.jpg)
插入一个命令按钮,调用“更新本地数据”程序模块:
如图示插入一个命令按钮,在设计模式下双击该按钮,进入VBA代码窗口,在Click事件中输入调用“更新本地数据”模块的代码:
Private Sub CommandButton1_Click()
更新本地数据
End Sub
关闭设计模式,按钮激活。
(待续。。。)
![网盘应用—Excel数据库开发:[3]叩石垦壤](http://www.52ij.com/uploads/allimg/160403/21312042I-6.jpg)
![网盘应用—Excel数据库开发:[3]叩石垦壤](http://www.52ij.com/uploads/allimg/160403/2131202262-7.jpg)
![网盘应用—Excel数据库开发:[3]叩石垦壤](http://www.52ij.com/uploads/allimg/160403/2131202646-8.jpg)
下期预告:
接续本期继续完成“派发单位客户端”设计。
![网盘应用—Excel数据库开发:[3]叩石垦壤](http://www.52ij.com/uploads/allimg/160403/21312052N-9.jpg)
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
