ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E文精选 > 综合应用 > 『鹭千』龙年1号小作品:驾校费用记录系统1.0

『鹭千』龙年1号小作品:驾校费用记录系统1.0

作者:绿色风 分类: 时间:2022-08-17 浏览:176
楼主
0Mouse
【系统由来】
一个朋友开驾校,请了一个小工负责收交费记录,希望有个工具可以用来记录收交费的情况,同时能够实现这样的效果:小工只能录入数据,不能修改,资料修改权掌握在自己手上。

【登录界面】

 

【最终文件清单】
1. 启动文件:驾校费用记录系统1.0.exe
2. 系统文件:feerec.dll
3. 系统登录密码.txt
4. 系统使用视频教程.wmv

 

【开发所用软件及其用途】
Excel 2003:制作基本框架并借助vba代码实现预期功能;
Illustrator CS3:设计启动显示画面的某些图形元素;
Photoshop CS3:设计启动显示画面背景图,设置标题文字特效,设计“录入”、“刷新”按钮;
Visual Basic 6.0:制作启动程序,避开选择“禁用宏”和“启用宏”的环节。
2楼
0Mouse
【开发流程】

1. 制作基本框架

新建一个Excel文档,命名为“feerec.xls”;双击打开,将Sheet1、Sheet2、Sheet3依次重命名为“记录”、“历史记录”和“备用表”;按下Ctrl键不放,单击Sheet1和Sheet2,在A1:F1区域依次输入“流水号”、“日期”、“姓名”、“费用类型”、“金额”、“备注”,并设置加粗,添加边框线;为A列~F列设置水平居中、数字类型等格式。

2. 制作用户窗体

2.1 制作系统登录窗体

2.1.1 添加窗体、控件,修改部分属性值

按下Alt+F11,依次单击“插入”-“用户窗体”,自动生成UserForm1,修改其相应属性值如下:
Caption:系统登录;
StartUpPosition:2-屏幕中心。

在用户窗体上添加一个TextBox1控件,修改相应属性值如下:
BackStyle:0-fmBackStyleTransparent;
ForeColor:&H00FFFFFF&;
MaxLength:12;
PasswordChar:*。

在用户窗体上再添加两个CommandButton控件,修改相应属性值如下:
BackStyle:0-fmBackStyleTransparent;
Caption:留空。

至此,系统登录窗体及其控件的截图如下:

 

2.1.2 添加代码

TextBox1代码:
  1. '在密码输入框内按回车则触发登录按钮事件。
  2. Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  3.     If KeyCode = 13 Then
  4.         CommandButton1_Click
  5.     End If
  6. End Sub
CommandButton1代码:
  1. '系统登录
  2. Private Sub CommandButton1_Click()
  3.     If TextBox1.Value = "" Then
  4.         MsgBox "请输入密码。  ", vbInformation + vbOKOnly, "提示"
  5.         TextBox1.SetFocus
  6.     ElseIf TextBox1.Value = "123" Then
  7.         Unload Me
  8.         Application.Visible = True
  9.         Application.WindowState = xlMaximized
  10.         Sheet3.Activate
  11.         Sheet3.Unprotect "luuqian"
  12.         Sheet3.Range("A1").Select
  13.         Selection.Locked = True
  14.         Sheet1.Activate
  15.         Sheet1.Unprotect "luuqian"
  16.         Range("A1").Locked = True
  17.     ElseIf TextBox1.Value = "456" Then
  18.         Unload Me
  19.         Application.Visible = True
  20.         Application.WindowState = xlMaximized
  21.         Sheet3.Activate
  22.         Sheet3.Unprotect "luuqian"
  23.         Sheet3.Range("A1").Select
  24.         Selection.Locked = False
  25.         ActiveSheet.Protect "luuqian"
  26.         ActiveSheet.EnableSelection = xlNoSelection
  27.         Sheet1.Activate
  28.         Sheet1.Unprotect "luuqian"
  29.         Sheet1.Range("A1").Select
  30.         Selection.Locked = False
  31.         ActiveSheet.Protect "luuqian"
  32.         ActiveSheet.EnableSelection = xlNoSelection
  33.     Else
  34.         MsgBox "密码错误,请重新输入。", vbExc**tion + vbOKOnly, "提示"
  35.         TextBox1.Text = ""
  36.         TextBox1.SetFocus
  37.     End If
  38.         Range("A2").Select
  39.         ActiveWindow.FreezePanes = True
  40.         Range("A1").Select
  41. End Sub
CommandButton2代码:
  1. '系统退出
  2. Private Sub CommandButton2_Click()
  3.     Unload Me
  4.     If Workbooks.Count > 1 Then '如果打开的工作簿大于1个,则关闭本工作簿并显示Excel窗口。
  5.         Application.Visible = True
  6.         ThisWorkbook.Close False
  7.     Else
  8.         Application.Quit
  9.         ThisWorkbook.Close False
  10.         Application.Visible = True
  11.     End If
  12. End Sub
3楼
0Mouse
2.2 制作资料录入窗体

2.2.1 添加窗体、控件,修改部分属性值

按下Alt+F11,依次单击“插入”-“用户窗体”,自动生成UserForm2,修改其相应属性值如下:
Caption:录入面板。

在用户窗体上添加三个Label控件,将Caption属性值依次修改为“姓名”、“金额”、“备注”,TabStop属性改为“False”;在三个Label控件的右侧分别添加一个TextBox控件,修改TextBox1的MaxLength为4。

在用户窗体上再添加两个OptionButton控件,将Caption属性值依次修改为“收费”、“交费”,再添加一个Frame1控件,修改其Caption属性值为“费用类型”,TabStop属性改为“False”,并调整其位置,框住两个OptionButton控件。

最后再添加两个CommandButton控件,将其Caption属性值依次修改为“录入”、“退出”。

至此,录入面板窗体及其控件的截图如下:

 

2.2.2 添加代码

UserForm2代码:
  1. Private Sub UserForm_Initialize()
  2.     Me.OptionButton1.Value = True
  3.     TextBox1.SetFocus
  4. End Sub
  5. '禁止使用窗体关闭按钮退出
  6. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  7.     If CloseMode = 0 Then Cancel = True
  8. End Sub
TextBox1代码:
  1. Private Sub TextBox1_Change() '限制文本框1(姓名栏)只能输入汉字
  2. With TextBox1
  3.     If ChnInstr(.Text) = False Then
  4.         Beep '发声提醒
  5.         .Text = Left(.Text, Len(.Text) - 1)
  6.     End If
  7. End With
  8. End Sub
TextBox2代码:
  1. Private Sub TextBox2_Change() '限制文本框2(金额栏)只能输入数字
  2. Dim i%, Str$
  3. With TextBox2
  4.     For i = 1 To Len(.Text)
  5.         Str = Mid(.Text, i, 1) '遍历文本框中输入的每一个字符。
  6.         Select Case Str '测试文本框中输入的字符
  7.             Case "0" To "9" '列出允许输入的字符。
  8.             Case Else
  9.                 Beep
  10.                 .Text = Replace(.Text, Str, "") '如果输入的不是允许的字符,则使用Replace函数替换成空白。
  11.         End Select
  12.     Next
  13. End With
  14. End Sub
  15. Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  16.     If KeyCode = 13 Then
  17.         CommandButton1_Click
  18.     End If
  19. End Sub
CommandButton1代码:
  1. '录入
  2. Private Sub CommandButton1_Click()
  3. Dim i%, j%
  4. i = Cells(Rows.Count, 1).End(xlUp).Row + 1
  5. j = Sheet3.Cells(Sheet3.Rows.Count, 1).End(xlUp).Row + 1
  6. ActiveSheet.Unprotect "luuqian"
  7. Sheet3.Unprotect "luuqian"
  8. If TextBox1.Text = "" Or TextBox2.Text = "" Then
  9.     MsgBox "信息输入不全,请补充完整。", vbInformation + vbOKOnly, "提示"
  10.     TextBox2.SetFocus
  11. Else
  12.     If i = 2 Then
  13.         Cells(i, 1) = 1
  14.     Else
  15.         Cells(i, 1) = Cells(i - 1, 1).Value + 1
  16.     End If
  17.     Sheet3.Cells(j, 1) = j - 1
  18.     Cells(i, 2) = Date
  19.     Sheet3.Cells(j, 2) = Date
  20.     Cells(i, 3) = TextBox1.Value
  21.     Sheet3.Cells(j, 3) = TextBox1.Value
  22.     If Me.OptionButton1.Value = True Then
  23.         Cells(i, 4) = "收费"
  24.         Sheet3.Cells(j, 4) = "收费"
  25.     Else
  26.         Cells(i, 4) = "交费"
  27.         Sheet3.Cells(j, 4) = "交费"
  28.     End If
  29.     Cells(i, 5) = TextBox2.Value
  30.     Sheet3.Cells(j, 5) = TextBox2.Value
  31.     Cells(i, 6) = TextBox3.Value
  32.     Sheet3.Cells(j, 6) = TextBox3.Value
  33.     With Cells(i, 1).Resize(1, 6).Borders
  34.         .LineStyle = xlContinuous
  35.         .Weight = xlThin
  36.         .ColorIndex = xlAutomatic
  37.     End With
  38.     With Sheet3.Cells(j, 1).Resize(1, 6).Borders
  39.         .LineStyle = xlContinuous
  40.         .Weight = xlThin
  41.         .ColorIndex = xlAutomatic
  42.     End With
  43.     Cells(i, 3).Select
  44.     TextBox1.Text = ""
  45.     TextBox2.Text = ""
  46.     TextBox3.Text = ""
  47.     TextBox1.SetFocus
  48. End If
  49. End Sub
CommandButton2代码:
  1. '退出
  2. Private Sub CommandButton2_Click()
  3. If Range("A1").Locked = False Then
  4.     Range("A1").Select
  5.     ActiveSheet.Protect "luuqian"
  6.     ActiveSheet.EnableSelection = xlNoSelection
  7.     Sheet3.Protect "luuqian"
  8.     Sheet3.EnableSelection = xlNoSelection
  9. End If
  10. Unload Me
  11. End Sub
4楼
滴水穿石
哇塞,好东西!
留个脚印,慢慢学习
5楼
0Mouse
3. 添加显示窗体、“刷新”按钮等相关代码

双击工程窗口的“ThisWorkbook”,在弹出的空白窗格内输入以下代码:
  1. Private Sub Workbook_Open()
  2.     Application.Visible = False
  3.     UserForm1.Show
  4. End Sub
依次单击“插入”-“模块”,在弹出的空白窗格内输入以下代码:
  1. Sub 显示()
  2.     UserForm2.Show
  3. End Sub

  4. Function ChnInstr(sr As String) As Boolean
  5.     Dim i%, j%, k%
  6.     ChnInstr = False
  7.     sr = StrConv(sr, vbNarrow)
  8.     i = Len(sr)
  9.     For j = 1 To i
  10.         If Asc(Mid$(sr, j, 1)) < 0 Then k = k + 1
  11.     Next
  12.     If k = i Then ChnInstr = True
  13. End Function

  14. Sub Refresh()
  15. If Range("A1").Locked Then
  16.     Dim i%, j%, arr, brr
  17.     i = Cells(Rows.Count, 3).End(xlUp).Row
  18.     If i = 2 Then
  19.         Range("A2") = ""
  20.         Range("A2") = 1
  21.     ElseIf i > 2 Then
  22.         arr = Range("A2:A" & i)
  23.         ReDim brr(1 To UBound(arr), 1 To 1)
  24.         For j = 1 To i - 1
  25.             brr(j, 1) = j
  26.         Next
  27.         Range("A2:A" & i).ClearContents
  28.         Range("A2:A" & i) = brr
  29.         Set arr = Nothing
  30.         Set brr = Nothing
  31.     Else
  32.         MsgBox "现在的数据无需刷新。"
  33.     End If
  34. Else
  35.     MsgBox "只有管理员才能刷新流水号。", vbOKOnly, "提示"
  36. End If
  37. End Sub
4. 设计启动显示画面并加入启动窗体

先采用Illustrator CS3软件设计启动显示画面左下角的跑车,另存为“跑车.png”;

再采用Photoshop CS3设计整个启动显示画面的背景图,添加系统标题“驾校费用记录系统1.0”、“登录”、“退出”等文字、密码输入框的锁样图形,并通过“图层样式”等功能为以上元素添加一些特效,导入“跑车.png”图片,调整至相应位置,另存为“启动画面.jpg”;

双击工程窗口的UserForm1,再单击其属性窗口中Pciture属性右侧的按钮,在弹出的窗口中选择“启动画面.jpg”,单击“确定”按钮,调整UserForm1的高度和宽度,使之与“启动画面.jpg”的尺寸保持一致,再将TextBox1和CommandButton1、CommandButton2调整至相应位置。

窗体的Picture属性:

 
6楼
0Mouse
5. 设计“录入”、“刷新”按钮并插入工作表和关联相应代码

采用Photoshop CS3设计“录入”和“刷新”按钮,另存为“录入.png”和“刷新.png”图片;插入“记录”工作表;右键单击“录入”图片,选择“指定宏”命令,在弹出窗口的“宏名”列表中选择“显示”,确定;右键单击“刷新”图片,选择“指定宏”命令,在弹出窗口的“宏名”列表中选择“Refresh”,确定。

“录入”和“刷新”按钮:

 

指定宏:

 

6. 保存、更名

保存“feerec.xls”,关闭文档,将其重命名为“feerec.dll”。

7. 制作启动程序

启动Visual Basic 6.0,在“新建工程”对话框中选择“新建”选项卡的“标准 EXE”选项,单击“打开”按钮;

新建工程对话框:

 

单击工程窗口的Form1,再单击其属性窗口中“Icon”属性右侧的按钮,在弹出的对话框中选择事先准备好的ico格式图标,单击“打开”按钮;

本系统所用的ico图标:

feerec-ico.rar


Form1窗体的Icon属性:

 

右键单击工程窗口的Form1,选择“查看代码”命令,在弹出的空白窗格中输入以下代码:
  1. Private Sub Form_Load()
  2.     Dim xlApp As Object
  3.     If IsFileOpen(App.Path & "\" & "feerec.dll") Then _
  4.         MsgBox App.EXEName & " 文件已经打开!", vbInformation, "系统提醒:": GoTo line
  5.     DoEvents
  6.     Set xlApp = CreateObject("Excel.Application")
  7.     xlApp.Workbooks.Open App.Path & "\" & "feerec.dll", password:="Xiamen-0Mouse"
  8.     xlApp.Visible = True
  9.     Set xlApp = Nothing
  10. line:
  11.     Unload Me
  12.     End
  13. End Sub
  14. Function IsFileOpen(filename As String)
  15.     Dim filenum As Integer, errnum As Integer
  16.     On Error Resume Next
  17.     filenum = FreeFile()
  18.     Open filename For Input Lock Read As #filenum
  19.     Close filenum
  20.     errnum = Err
  21.     On Error GoTo 0
  22.     Select Case errnum
  23.         Case 0
  24.             IsFileOpen = False
  25.         Case 70
  26.             IsFileOpen = True
  27.         Case Else
  28.             Error errnum
  29.     End Select
  30. End Function
依次单击“文件”-“生成工程1.exe”,在弹出对话框的“文件名”输入框内输入“『鹭千』驾校费用记录系统1.0”,选择相应的存储路径后,单击“确定”按钮。

至此,系统制作完毕,感谢您的关注!^_^
7楼
0Mouse
系统最终文件:

『鹭千』驾校费用记录系统1.0.rar
8楼
gysegz
仰望呀**
9楼
双飞叶
很好,过程写得非常详细,收藏学习
10楼
yjzstar
界面做的好漂亮,顶一个!
11楼
水星钓鱼
精华作品,一定花了不少时间
12楼
egs
哇塞厉害,慢慢学习
13楼
chenhuafu
学习了。
14楼
seanjane
大师 大师

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap