个人信息管理系统—计算机毕业
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
(
论文
政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载
)
毕业设计(论文)
个人信息管理系统
系 别: 班 级: 姓 名: 同组人: 指导教师: 实习日期:
个人信息管理系统
前言
本实验使用了Microsoft Visual Basic 6.0可视化开发软件工具下分析、设计、开发个人信息管理系统的过程。通过对计算机硬件和软件解决
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
的论证,对应用领域进行调查分析,参考各种资料和进行数据库编程实践,在指导老师的帮助下,已经基本上成功地实现了设计要求。是我们设计的数据库系统能够实现个人信息管理,系统管理功能。该系统基本上满足了用户在个人信息管理方面的需求,用户界面友好。此系统更加贴近信息电子化处理,从而降低了人工劳动并增加了信息的准确性。
关键字:Microsoft Visual Basic 6.0
数据库管理系统(DBMS)Microsoft Access2000
目录
前言………………………………………………………………………………1
第一部分 需求分析……………………………………………………………2
1.问题定义………………………………………………………………….2
2可行性研究……………………………………………………………….2
3系统功能概述…………………………………………………………….3
第二部分 概念设计……………………………………………………………..3
E-R模型图………………………………………………………………….3
第三部分 逻辑设计…………………………………………………………..…4
1(信息表…………………………………………………………………. 5
2(用户表…………………………………………………………………..6
第四部分 物理设计及概要设计………………………………………………..6
1、登录窗体的制作………………………………………………………. 7
2、系统主窗口的制作……………………………………………………..7
3、个人信息更新实现……………………………………………………..9
4、个人信息查询实现…………………………………………………….10
5、软件介绍 ………………………………….. ………………………..10
第五部分 源程序……………………………………………………………….10
1、登陆界面程序.........................................................................................11
2、主界面程序…….....................................................................................12
3、查询信息及更新信息界面程序…….....................................................21
第六部分 软件工程打包……………………………………………………….34
第七部分 实习总结…………………………………………………………….38
1、设计体会……………………………………………………………….38
2、结束语………………………………………………………………….38
第八部分 教师评语………………………………………………………….... 39
一.需求分析
问题定义
1.要解决的问题:
随着办公自动化水平的不断提高,个人信息管理从手工转到计算机自动化信息处理阶段。设计一个功能完整、操作简便、界面友好的个人信息管理系统已经是势在必行的了。
2.系统开发的目的:
提高个人信息管理工作的效率,保证信息的准确和
规范
编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载
,减少相关人员的工作量,使个人管理工作真正做到科学、合理的规划,系统、高效的实施。
3.系统名称:个人信息管理系统
4.系统要能实现如下功能:
(1) 登录系统
(2) 个人信息录入
(3) 个人信息查询及输出
(4) 个人信息修改(包括更新和删除)
(5) 个人信息各项指标的统计汇总
(6) 系统信息管理(如修改用户名或登录密码等)
可行性研究
1.技术可行性
根据上述系统功能的分析,下面将进行具体的实现。从技术角度分析,这项开发工作所涉及的专业技术如下:
1.技术平台(Operating System:操作系统):Windows系列。虽然理论上对操作系统没作更具体的规定,但由于开发中涉及Microsoft Access2000
的应用,所以建议最好使用Windows 2000以上的版本或相应的WindowsNT的版本。
2.开发工具:Microsoft Visual Basic 6.0
3.数据库管理系统(DBMS):Microsoft Access2000
具体实现阶段主要分两大部分进行:数据库的实现和各种功能模块及窗体的实现。从运用的技术角度分析即:Microsoft Access 部分的实现和VB部分的实现。
2.经济可行性:
因为采用计算机管理不但可以提高工作效率,而且还可以节省人力、物力、财力。这样原来几个一干的活一个人就完全可以胜任。故单从节省的职工工资、提高工作效率而避免各种直接或间接的经济损失角度来看,软件实际能够起到的作用会远远大于投入的开发费用。故从经济上是完全可行的。
3.操作可行性:
因为开发所采用的工具全是可视化工具,开发出的应用程序均是图形化界面,操作员几乎不用记任何DOS命令就可以操作此软件。另外,软件的操作员大多已经会基本的Windows操作,即使不会操作Windows,经过短期的培训也能熟练的使用本软件。所以在操作上也是可行的。
系统功能概述
序号 实现功能 功能概述
1
2
3
4
5
6 二.概念设计
根据需求分析的一些要求,及该系统所要完成的一些功能,接下来进行概念设计,设计E-R模型:
个人用户
登陆
基本表的维护 用户管理 信息管理
新加用户 修改密码 新增记录 更新信息 修改 查询
查找用户 注销用户 信息查询 信息输出 添加 删除
E-R模型图
说明:
, 从上图中可以看出系统(最小化)至少包括如下一级子模块:系统登录、
基本表维护、用户管理、信息管理等。
, 基本表维护模块应具有的功能:对信息表、数据表等作为构成学生信息
最基本的项的表进行增加、查询、修改、删除等操作。 , 用户管理模块应具有的功能:这个模块从本质上来讲,当然应该只有DBA
才有权使用之,但是本系统为了使开发者有一个整体的概念,故把这一
模块也纳入进来。这个模块能够实现新用户的增加、已有用户的查找、
已有用户的删除、已有用户的密码修改、注销不再使用的用户等功能。
姓名
年龄 昵称
性别 个人信息 地址
电话 邮箱
备注
信息表的E-R模型
, 信息管理模块应具有的功能:这个模块是本系统中相对来讲最大也是最
麻烦的,当然学会这些再去开发其他比它大的系统基本一样。它包含如
下子模块:
1) 新增记录:为保证数据的有效性、一致性、完整性,在录入新记录时,系统能
根据操作员输入的资料到信息表中查询是否已经存在这样的记录,如果已经存
在,则给出更换信息的提示;如果不存在,则判断姓名是否为空,如果是空的
则提示输入姓名,否则进行出生日期是否合法的判断,再进行性别、民族是否
选择,地址是否录入等一系列必须输入的项目的审核,如果都通过才能把当前
输入的所有信息项插入到物理数据库的信息表中。
2) 查询信息:系统能按个人编号(编号中的几位)、姓名(或只有姓)、性别、
昵称、民族、地址等单项或多项的组合进行精确或模糊查询,并把查询的结果
显示在表格中。另外,通过笔者在实践中总结的经验所知,用二维数组形式向
表格中填写数据项的方法是比较慢的(若提取的是几万条或十几万条记录可能
要等几十秒甚至内存会溢出),故本系统开发中没有介绍这种方法,是用ADO
的Data控件向表格中填充的(快)。
3) 更新记录:本模块实际上包含两个模块,即修改和删除。在修改子模块中,首
先查询出要修改的记录,然后对每一条记录进行除编号外的任何一项的修改。
在删除子模块中,也同样是先查询出要删除的记录,因为删除操作是一个没有
反悔余地的操作,故在删除前会给出一次确认的机会,如果此时不想删除就可
马上取消,但如果真正要删除则从数据库中永久性的删除。当然可以把删除的
信息保存到历史记录中。
4) 信息输入:本模块是一个非常有用的模块,也是初学者最难的一块。本系统在
制作中采用Microsoft Corporation的Visual Basic6.0提供的Data Report,
即快又好用,可以把学生记录输出以作为永久保存。当然输出
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
表格是非常
容易的,如果要输出数据计算和布局比较复杂的表格,请读者参考有关书籍。
三.逻辑设计
通过对所要开发的系统进行概念设计的分析之后,我们应该对它进行逻辑
设计的分析:
说明:
, 通过前面的分析可知,我们要制作的程序是一个小型的管理信息系统MIS(Management Information System),而且其中需要的数据库表有个人
信息表、用户表等,还可能有其他的一些相关的表。通过分析表可知个人信息表,该表中有一些项(如备注)在系统运行过程中有可能会有增加或减少的情况发生,如果用代码去填写,一旦有一点变动就必须重新编辑、编译程序,程序的健壮性不好,故想到可以从数据库中提取相关表中的记录来填充,这样就轻而易举的解决这个问题了。实现它的思想就是找出所有可能发生变化的项,昵称、民族、地址(性别就不用了)等,形成各自的表(这里叫它们为基本表),先对这些基本表进行维护,必须这些基本表中有足够的记录时才可以做其他的事。 , 系统必须考虑安全问题,故至少给一个登录模块,在使用系统时进行身份的验证。用户的身份来自用户的维护,故应先进行用户的注册等操作,然后才可以以合法的身份登录并使用本系统。
, 当以合法的身份进行本系统后,就可以进行各种操作,如个人信息记录的增加、查询等操作。当然也可以在系统中再增加其他的功能。
数据库表:
1) 用来收集存储个人的信息表,有关个人的昵称个人编号(编号中的几位)、姓名(或只有姓)、性别、昵称、民族、地址、电话、邮箱等信
. 息
?信息表:
字段名称 数据类型 字段大小 索引 必须填写 Name 文本 10 无 否 Oicq 文本 8 无 否 Love 文本 20 无 否 Year 日期/时间 / 无 否 Age 数字 整型 无 否 Constell 文本 8 无 否 Attributive 文本 8 无 否 Blood 文本 8 无 否 Address 文本 255 无 否 TelepNo 文本 20 无 否 MoveCall 文本 15 无 否 Home 文本 20 无 否 Call 文本 20 无 否 Fax 文本 50 无 否 Email 文本 50 无 否 Appendix 文本 255 无 否
表一
2) 对于登录模块,在使用系统时进行身份的验证。用户的身份来自用户的维护,故应先进行用户的注册等操作,然后才可以以合法的身份登录并使用本系统。当以合法的身份进行本系统后,就可以进行各种操作,如个人信息记录的增加、查询等操作。当然也可以在系统中再增加其他的功能。为此我们需要在数据库中建立一个用户表,有关用户的ID号 、数据库表号Number、数据库名Name等信息:
?用户表:
字段名称 字段类型 字段大小 索引 必须填写
ID 数字 30 有(无重复) 是
Name 文本 8 是
Number 数字 20 是
表二
四.物理设计及概要设计
经过了以上的分析之后,对所要开发的系统有了总体上的把握,接下来就是通过一些编写工具对系统进行具体的编写了, 设计本系统时,用到多个窗体,用与实现本系统的所有功能,和一个数据库,拥有所有表格,用来存放所有系统所需要的信息,以及保留以后系统中所修改的信息,以及几个数据报表,它们用于数据的输出和更新和添加、删除等功能的显示。给用户一目了然的效果。这写设计结构足以实现所要求的所有的功能,同时也使所有信息以最简便的方式展现给用户.
1(系统开发环境
本系统是利用VB+ACCESS数据库技术实现的。
VB的运行环境如下:
XP+Visual Basic6.0 Win
Microsoft Access2000
2.利用VB+ACCESS数据库技术对系统进行具体的编写
1、登陆界面的设计
3) 在frmLogin窗体中加入两个标签:Label1.Caption=用户名 Label2.Caption=
密码
4) 在frmLogin窗体中加入两个文本框,名称为txtName、
txtPassword(passwordchar=*);
5) 再加入两个按钮: 名称为cmdOK(Caption=确认 Default=true)、
cmdCancel(Caption=取消)
6) 在VB工程设计中的frmLogin设计后的格式如下:
?窗体1
2、主窗体设置
?添加MDI主窗体
1) 单“工程”菜单下的“添加MDI窗体”
2) 在出现的如下对话框中,单击“打开”按钮,则向当前VB工程中加入一个MDI(多
文档)窗体,它可以是一个装载许多子窗体的一个母窗体--容器。 3) MDI主窗体如下图,按F4或在出现的属性窗口中设置属性(如下右表格),
保存
?窗体2
名称 frmSystem
Caption 个人信息管理系统
WindowState 2--Maximized
?添加系统菜单
1) 在VB工程设计环境的工具栏中单击“菜单编辑器”,在出现的“菜单编辑
器”对话框中,输入显示菜单的标题和名称(一般是以mnu开头的英文,主要是
用来事件编程的添加完一个后,可以单击“下一个”按钮,进行下一个菜单项的
输入,显示标题和名称
?窗体3
2) 是已经确定好且有一定实际意义。若某个菜单项是前一项的下一级菜单,可单击
向若的箭头.
3) 加入完毕后,单击“确定”按钮完成。当然可以在以后的设计过程中再加新菜单。
4) 运行效果 ? 显示主界面
1) 新建一个”Listview1”,用来显示数据库表内容,把数据库中的信息列出来.
2) 再建一个”Frame1”,把”Comption”设置为”详细情况”;
3) 然后在”Frame1”中添上多个文本框,如图:
?窗体4
? 数据库中信息库登陆界面及密码的修改设置
1) 设置一个数据库中的信息库的查看权限界面:如
?窗体5
2) 对数据库查看权限的密码的修改及设置:如
?窗体6
? 添加修改界面
1) 新建一个”Frame1”框,把”Comption”设置为”详细情况”; 2) 然后在”Frame2”中添上多个文本框,如”呢称”.”性别”等,如图:
加上三个按钮:”添加”.”修改”.”取消”
?窗体7
? 查询信息表界面
创建一个框架用来查询质料,设置查找方式”精确查询”,”模糊查询”,以及根据提供的项目及关键字来查询个人的有关的信息
?窗体8
? 有关本软件的介绍界面
该界面主要用于介绍本软件,在使用方面应注意的问题,即使用时应注意的事项,及用户在使用时遇到问题时可以于开发者联系,联系方式.
?窗体9
五.源程序
在物理设计中,我们已经编辑好个窗体,接下来就是编写源程序了,以及各模块所要编写的程序.
1.窗体部份程序
?窗体1:(登陆界面)
1) 在窗体的装载事件中输入如下代码:(蓝色的是系统给出的不必输入,也可自己输) Private Sub Form_Load()
On Error GoTo ErrMsg
'清空文本框
txtName.Text = ""
txtPassword.Text = ""
'调用模块中的ConnectDB过程连接数据库,可以把连接模块直接写在这里 Call ConnectDB
'错误处理功能
ErrMsg:
If Err.Number <> 0 Then
MsgBox Err.Number & Err.Description, vbOKOnly + vbCritical, "出错提示"
Exit Sub
End Sub
2) 在“确认”按钮cmdOK的单击事件中输入如下代码:
Private Sub cmdOK_Click()
'运行时自动检测错误,检测到则到ErrMsg标号处做相应的处理On Error GoTo ErrMsg
Dim SQL As String '定义一个保存SQL语句的变量
'到Login 表中查询是否有符合条件的记录存在
'使用的是Select Count(*) From ...返回值是一个大于等于0的整数 SQL = ""
SQL = "Select Count(*) From Login Where Name='" & Trim(txtName.Text) & "'"
SQL = SQL & " And Password='" & Trim(txtPassword.Text) & "'"
Set adoRS = adoCon.Execute(SQL) If adoRS(0) = 0 Then
MsgBox "您输入的用户名或密码有误,请更正~", vbOKOnly + vbExclamation, "系统提示"
txtName.SetFocus
Exit Sub
End If
'通过身份验证后卸载登录窗体
Unload Me
'显示系统界面,可以进入系统操作
frmSystem.Show
'错误处理
ErrMsg:
If Err.Number <> 0 Then
MsgBox Err.Number&Err.Description, vbOKOnly + vbCritical, "错误提示"
Exit Sub
End If
End Sub
3) 在“取消”按钮cmdCancel的单击事件中编写如下代码:
Private Sub cmdCancel_Click()
If MsgBox("您真的要退出本系统的使用吗,", vbYesNo + vbQuestion, "退出询问") = vbYes Then
'把记录集从内存中清除
Set adoRS = Nothing
'断开与数据库的连接
adoCon.Close
'把连接变量从内存中清除
Set adoCon = Nothing
'从内存中卸载登录窗体,终止程序的执行
Unload Me
End If
End Sub
? 窗体4:(主界面程序)
Option Explicit
Public mdbFile, mdbDataName As String Public DataNumbel As Integer Public Uo As Boolean
Public ListView_Name, ListView_QQ, ListView_Love As String
Public ListViewItem As Integer Public Password As String
Private Sub TuBiao()
'初始化任务栏图标
Me.Move (Screen.Width - Me.Width) / 3, (Screen.Height - Me.Height) / 3
TrayIcon.cbSize = Len(TrayIcon)
TrayIcon.hwnd = Me.hwnd
TrayIcon.uId = vbNull
TrayIcon.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
TrayIcon.ucallbackMessage = WM_MOUSEMOVE
TrayIcon.hIcon = Me.Icon ' 提供任务栏图标
TrayIcon.szTip = "Mind's Tray Icon Example" & Chr$(0)
'将图标放到任务栏
Call Shell_NotifyIcon(NIM_ADD, TrayIcon)
App.TaskVisible = False
End Sub
Private Sub About_Click() '关于版本
frmabout.Show vbModal
End Sub
Private Sub DeleteAll_Click()
Dim Result
If Not Data1.Recordset.EOF And Not Data1.Recordset.BOF Then
Result = MsgBox("所有记录将被删除~", vbYesNo, "警告")
SetWindowPos Me.hwnd, HWND_topmost, 0, 0, 0, 0, flag '设置窗口在前
If Result = vbYes Then
frmData.Data1.Recordset.MoveLast
frmData.Data1.Recordset.MoveFirst
Dim i As Integer
For i = 1 To frmData.Data1.Recordset.RecordCount
Data1.Recordset.Delete
rmData.Data1.Recordset.MoveNext
Next i
Data1.Refresh
ListRefresh
End If
Else
Result = MsgBox("无法删除记录~", vbOKOnly, "提示")
End If
SetWindowPos Me.hwnd, HWND_notopmost, 0, 0, 0, 0, flag
End Sub
Private Sub DocuAdd_Click() '添加记录
Uo = False
frmTJ.Command2.Enabled = False
Load frmTJ
frmTJ.Show vbModal
End Sub
Public Sub DocuDelete_Click() '删除记录
Dim Result
If Not Data1.Recordset.EOF And Not Data1.Recordset.BOF Then
If frmData.ListView1.ListItems.Count > 0 Then
If ListView1.SelectedItem.Index > 0 Then
Result = MsgBox("当前记录将被删除~", vbYesNo, "警告")
SetWindowPos Me.hwnd, HWND_topmost, 0, 0, 0, 0, flag '设置窗口在前 If Result = vbYes Then
Data1.Recordset.Delete
Data1.Refresh
ListRefresh
End If
Else
Result = MsgBox("请选择要删除的记录~", vbOKOnly, "警告")
SetWindowPos Me.hwnd, HWND_topmost, 0, 0, 0, 0, flag '设置窗口在前 End If
End If
Else
Result = MsgBox("无法删除当前记录~", vbOKOnly, "提示")
End If
SetWindowPos Me.hwnd, HWND_notopmost, 0, 0, 0, 0, flag
' ListRefresh
End Sub
Private Sub DocuExit_Click() '退出程序
Unload frmData
End Sub
Private Sub DocuSeek_Click() '查询记录
numRem_Click
Load frmCX
frmCX.Show vbModal
End Sub
Private Sub Form_Resize()
If WindowState = 1 Then Me.Visible = False
End Sub
Private Sub Form_Load() '程序初始化
If App.PrevInstance Then
Dim Recut As Integer
Recut = MsgBox("程序已经运行,请检查窗口是否已被最小化~", 48, "提示")
Unload Me
Exit Sub
End If
ListViewStyle_Click '使ListView控件可以整行选择
ListViewStyleBiaoG_Click '使ListView控件有表格风格
ListViewStyleOne_Click '允许单击选择
ListViewStyleTwo_Click '允许双击选择
Frm_Load
TuBiao
' SetWindowPos Me.hwnd, HWND_topmost, 0, 0, 0, 0, flag '设置窗口在前
Dim i As String
Dim j As Integer
'开始初始化
For j = 0 To 13
Text1(j).Text = ""
Next j
End Sub
Private Sub numMPgl_Click()
On Error GoTo ErrHandle
frmData.Caption = "信息管理 -- " & mdbFile & "[" & mdbDataName & "]"
'设置字符串变量来调用SQL语句
SQLoriginal = "select * from " & frmData.mdbDataName '"Data"
SQLadd = " where Name=Name"
SQLorder = ""
Data1.DatabaseName = mdbFile '"\MyNote.mdb"
Data1.RecordSource = SQLoriginal + SQLadd + SQLorder
Data1.Refresh
ListRefresh
Exit Sub
'错误处理
ErrHandle:
MsgBox Err.Description
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
Private Sub ListView1_Click()
If ListView1.ListItems.Count > 0 Then Dim i, Count As Integer
Count = ListView1.SelectedItem.Index
Data1.Recordset.MoveFirst
i = 1
Do While i < Count
Data1.Recordset.MoveNext
i = i + 1
Loop
'("Name")
'("Oicq")
ListViewItem = Count
frmData.Text1(0).Text = frmData.Data1.Recordset.Fields("Sex")
'lPassword(frmData.Data1.Recordset.Fields("Sex"))
frmData.Text1(1).Text = frmData.Data1.Recordset.Fields("Age") ' lPassword(frmData.Data1.Recordset.Fields("Year"))
'Age年龄
frmData.Text1(2).Text = frmData.Data1.Recordset.Fields("Year") 'lPassword(frmData.Data1.Recordset.Fields("Constell"))
frmData.Text1(3).Text = frmData.Data1.Recordset.Fields("Constell")
frmData.Text1(4).Text = frmData.Data1.Recordset.Fields("Attributive")
frmData.Text1(5).Text = frmData.Data1.Recordset.Fields("Blood") 'lPassword(frmData.Data1.Recordset.Fields("Address"))
frmData.Text1(6).Text = frmData.Data1.Recordset.Fields("Address") 'lPassword(frmData.Data1.Recordset.Fields("Address"))
frmData.Text1(7).Text = frmData.Data1.Recordset.Fields("TelepNo") ' lPassword(frmData.Data1.Recordset.Fields("TelepNo"))
frmData.Text1(8).Text = frmData.Data1.Recordset.Fields("MoveCall") 'lPassword(frmData.Data1.Recordset.Fields("MoveCall"))
frmData.Text1(9).Text = frmData.Data1.Recordset.Fields("Home") 'lPassword(frmData.Data1.Recordset.Fields("Home"))
frmData.Text1(10).Text = frmData.Data1.Recordset.Fields("Call") 'lPassword(frmData.Data1.Recordset.Fields("Call"))
frmData.Text1(11).Text = frmData.Data1.Recordset.Fields("Fax") 'lPassword(frmData.Data1.Recordset.Fields("Fax"))
frmData.Text1(12).Text = frmData.Data1.Recordset.Fields("Email") ' lPassword(frmData.Data1.Recordset.Fields("Email"))
frmData.Text1(13).Text = frmData.Data1.Recordset.Fields("Appendix") 'lPassword(frmData.Data1.Recordset.Fields("Appendix"))
End If
End Sub
Private Sub ListView1_DblClick() '双击修改
ListView1_Click
numUo_Click
End Sub
Private Sub ListView1_ItemClick(ByVal Item As ComctlLib.ListItem) '---------------------
ListView1_Click
End Sub
Private Sub mdbFileData_Click(Index As Integer)
mdbDataName = "Data" & CStr(Index)
numMPgl_Click
End Sub
Private Sub numAcess_Click() '新建数据库
mdbFile = DialogFile(Me.hwnd, 0, "新建数据库记录", "MyData", "Access(*.mdb)" & Chr(0) &
"*.mdb" & Chr(0) & "All files(*.*)" & Chr(0) & "*.*", App.Path, "mdb")
If mdbFile = "" Then Exit Sub DataNumbel = 0
New_click '新建数据库
nummdbData_Click
Dim i As Integer
For i = 2 To 5
mdbFileData(i).Visible = False
Next i
DocuManage.Visible = True DocuInquir.Visible = True numOption.Visible = True End Sub
Private Sub nummdbData_Click() '新建数据表
cmdCreate_Click
AddNumbel '修改数据表记录
ReadNumbel '读数据表记录
numData.Enabled = True
numMPgl_Click
End Sub
Private Sub numOpen_Click() On Error GoTo ErrHandle mdbFile = DialogFile(Me.hwnd, 1, "打开数据库记录", "", "Access(*.mdb)" & Chr(0) & "*.mdb" &
Chr(0) & "All files(*.*)" & Chr(0) & "*.*", App.Path, "mdb")
If mdbFile = "" Then Exit Sub nummdbData.Enabled = True Dim i As Integer
For i = 2 To 5
mdbFileData(i).Visible = False
Next i
DocuManage.Visible = True DocuInquir.Visible = True numOption.Visible = True frmLogin.Show vbModal
If NoLogin = True Then End ReadNumbel
mdbDataName = "data1"
numMPgl_Click
Exit Sub
ErrHandle: Exit Sub
End Sub
'-------------------------*********任务栏图标**********-------------------------------
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static Message As Long
Static RR As Boolean
Message = X / Screen.TwipsPerPixelX
If RR = False Then
RR = True
Select Case Message
Case WM_LBUTTONDBLCLK 'DblClick
If WindowState = 1 Then
SetWindowPos Me.hwnd, HWND_topmost, 0, 0, 0, 0, flag '设置窗口在前
WindowState = 0 'Me.Show
Me.Visible = True
SetWindowPos Me.hwnd, HWND_notopmost, 0, 0, 0, 0, flag '设置窗口在前
Else
WindowState = 1
Me.Visible = False
End If
Case WM_RBUTTONUP
Me.PopupMenu numFile
End Select
RR = False
End If
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
TrayIcon.cbSize = Len(TrayIcon)
TrayIcon.hwnd = Me.hwnd
TrayIcon.uId = vbNull
'删除任务栏图标
Call Shell_NotifyIcon(NIM_DELETE, TrayIcon)
End Sub
Private Sub numPass_Click()
frmLog.Show vbModal
End Sub
Private Sub numRem_Click() '刷新数据窗口
'把数据库显示恢复到原来形式
frmData.Data1.DatabaseName = frmData.mdbFile 'App.Path + "\MyNote.mdb"
SQLadd = " where Name=Name"
frmData.Data1.RecordSource = SQLoriginal + SQLadd + SQLorder
frmData.Data1.Refresh
ListRefresh
Unload frmCX
End Sub
Private Sub numUo_Click() '修改记录
If ListView1.ListItems.Count < 1 Then Exit Sub If ListViewItem > 0 Then
ListView_Name = ListView1.ListItems(ListViewItem).SubItems(1)
ListView_QQ = ListView1.ListItems(ListViewItem).SubItems(2)
ListView_Love = ListView1.ListItems(ListViewItem).SubItems(3)
Uo = True
frmTJ.Command1.Enabled = False
frmTJ.Show vbModal
Else
MsgBox "请选择要修改的记录~", vbOKOnly, "警告"
SetWindowPos Me.hwnd, HWND_topmost, 0, 0, 0, 0, flag
SetWindowPos Me.hwnd, HWND_notopmost, 0, 0, 0, 0, flag End If
End Sub
'-------------------------------------------------------------------------
'********************************************************** Private Sub Frm_Load()
Dim clmX As ColumnHeader
App.Title = "ListView Sample"
Set clmX = ListView1.ColumnHeaders.Add(, , "编号", 100)
Set clmX = ListView1.ColumnHeaders.Add(, , "姓名", ListView1.Width / 3 - 750)
Set clmX = ListView1.ColumnHeaders.Add(, , "QQ", ListView1.Width / 3 - 550)
Set clmX = ListView1.ColumnHeaders.Add(, , "昵称", ListView1.Width / 3 - 330) End Sub
Private Sub AddRead_Numbel()
On Error GoTo ErrHandle
frmData.Caption = "信息管理 -- " & mdbFile & "[mdbNumel]"
'设置字符串变量来调用SQL语句
SQLoriginal = "select * from " & "mdbNumbel"
SQLadd = " where Name=Name"
SQLorder = ""
Data1.DatabaseName = mdbFile '"\MyNote.mdb"
Data1.RecordSource = SQLoriginal + SQLadd + SQLorder
Data1.Refresh
Exit Sub
'错误处理
ErrHandle:
Exit Sub
'MsgBox Err.Description
End Sub
Private Sub AddNumbel()
On Error GoTo ErrHandle
AddRead_Numbel
'**********************
If frmData.Data1.Recordset.RecordCount > 0 Then
Data1.Recordset.Edit '编辑开始更改表总数的记录
Else
Data1.Recordset.AddNew
End If
Data1.Recordset.Fields("ID") = 1
Data1.Recordset.Fields("Name") = "数据表总数"
Data1.Recordset.Fields("Numbel") = DataNumbel + 1 '
Data1.Recordset.Update '进行记录更新
Data1.Refresh '更新数据库
Exit Sub
'错误处理
ErrHandle:
Exit Sub
'MsgBox Err.Description
End Sub
Private Sub ReadNumbel()
On Error GoTo ErrHandle
AddRead_Numbel
'------------------------------
Dim i As Integer
If Not frmData.Data1.Recordset.EOF Then
'测量表中记录数目
frmData.Data1.Recordset.MoveLast
frmData.Data1.Recordset.MoveFirst
' For i = 1 To frmData.Data1.Recordset.RecordCount
DataNumbel = frmData.Data1.Recordset.Fields("Numbel")
frmData.Data1.Recordset.MoveNext
'Next i
'把数据表当前记录位置复原
frmData.Data1.Recordset.MoveFirst
End If
If DataNumbel > 5 Then DataNumbel = 5
For i = 1 To DataNumbel
mdbFileData(i).Visible = True
Next i
'---------------------------------------------------------
Exit Sub
'错误处理
ErrHandle:
Exit Sub
'MsgBox Err.Description
End Sub
? 窗体5:(数据库登陆界面程序)
Option Explicit
Private Sub cmdCancel_Click()
'取消登录
NoLogin = True
Unload Me
End Sub
Private Sub cmdOK_Click()
frmData.Data1.Connect = ";pwd=" & txtPassword
frmData.Password = txtPassword
NoLogin = False
Unload Me
End Sub
Private Sub Form_Load()
NoLogin = True
txtUserName = frmData.mdbFile End Sub
Private Sub lblLabels_Click(Index As Integer) End Sub
? 窗体6:(添加修改界面程序)
Option Explicit
Private Sub cmdCancel_Click()
'取消登录
Unload Me
End Sub
Private Sub cmdOK_Click()
If NewPassword.Text = txtPassword.Text Then
frmData.Data1.Database.NewPassword frmData.Password, NewPassword.Text
frmData.Password = NewPassword.Text
'----------------------------------------------------
MsgBox "密码修改成功,请牢记~", vbOKOnly
Unload Me
frmData.Show
Else
MsgBox "新密码不一致,请重新输入~", vbOKOnly
NewPassword.Text = ""
End If
End Sub
Private Sub Form_Load()
txtUserName = frmData.mdbFile
End Sub
Private Sub lblLabels_Click(Index As Integer) End Sub
? 窗体7:(添加修改界面程序)
Option Explicit
Private Sub Add_Uo()
frmData.Data1.Recordset.Fields("Year") = CDate(Text1(1).Text) ' Password(CDate(Text1(2).Text))
'出生年月
frmData.Data1.Recordset.Fields("Love") = Text1(0).Text 'Password(Text1(0).Text) '昵称
frmData.Data1.Recordset.Fields("Age") = Text1(2).Text 'Year(Date) - Year(Text1(2).Text) '
Password(Year(Date) - Year(Text1(2).Text))
frmData.Data1.Recordset.Fields("Name") = Text1(3).Text 'Password(Text1(1).Text) '姓名
frmData.Data1.Recordset.Fields("Sex") = Combo1(0).Text ' Password(Combo1.Text) '性别
frmData.Data1.Recordset.Fields("Constell") = Combo1(1).Text ' Password(Combo2.Text) '星座
frmData.Data1.Recordset.Fields("Attributive") = Combo1(2).Text
frmData.Data1.Recordset.Fields("Blood") = Combo1(3).Text
frmData.Data1.Recordset.Fields("Oicq") = Text1(4).Text 'Password(Text1(3).Text) 'QQ
frmData.Data1.Recordset.Fields("Address") = Text1(5).Text 'Password(Text1(4).Text) '地址
frmData.Data1.Recordset.Fields("TelepNo") = Text1(6).Text ' Password(Text1(5).Text) '电话
frmData.Data1.Recordset.Fields("MoveCall") = Text1(7).Text 'Password(Text1(6).Text) '手机
frmData.Data1.Recordset.Fields("Home") = Text1(8).Text ' Password(Text1(7).Text) '宅电
frmData.Data1.Recordset.Fields("Call") = Text1(9).Text ' Password(Text1(8).Text) '传呼
frmData.Data1.Recordset.Fields("Fax") = Text1(10).Text 'Password(Text1(9).Text) '传真
frmData.Data1.Recordset.Fields("Email") = Text1(11).Text 'Password(Text1(10).Text) '电子信箱
frmData.Data1.Recordset.Fields("Appendix") = Text1(12).Text ' Password(Text1(11).Text) '备注
frmData.Data1.Recordset.Update '进行记录更新
frmData.Data1.Refresh '更新数据库
ListRefresh '调用子程序,来完成frmData窗体列表控件的数据库更新
End Sub
Private Sub Resul()
Dim Result As Integer
Dim i As Integer
'排错处理
For i = 0 To 12
If Text1(i).Text = "" Then Text1(i).Text = "-"
Next i
If Not IsNumeric(Text1(2).Text) Then
Text1(2).Text = 0
End If
For i = 0 To 3
If Combo1(i).Text = "" Then
Combo1(i).Text = "-"
End If
Next i
End Sub
Private Sub Command1_Click() '添加
On Error GoTo erren
Resul
'在没有输入法错误的前提下,添加新记录
frmData.Data1.Recordset.AddNew '添加开始
Add_Uo
'复位
FW_click
erren:
Dim Result As Integer
If Not IsDate(Text1(1).Text) Then
Result = MsgBox("出生年月不符合格式~", 48, "提示")
Text1(1).Text = Date
End If
Exit Sub
End Sub
Private Sub FW_click() '复位
Dim i As Integer
For i = 0 To 12
Text1(i).Text = ""
Next i
For i = 0 To 3
Combo1(i).Text = ""
Next i
Text1(1).Text = Date End Sub
Private Sub Command2_Click() '修改
On Error GoTo erren
Resul
frmData.Data1.Recordset.Edit
Add_Uo
Unload frmTJ
Exit Sub
erren:
Dim Result As Integer
If Not IsDate(Text1(1).Text) Then
Result = MsgBox("出生年月不符合格式~", 48, "提示")
Text1(1).Text = Date
End If
Exit Sub
End Sub
Private Sub Command3_Click() '取消
Unload frmTJ
End Sub
Private Sub Form_Load()
On Error GoTo ErrHandle
Combo1(0).AddItem "-"
Combo1(0).AddItem "男"
Combo1(0).AddItem "女"
'----------------------------
Combo1(1).AddItem "-"
Combo1(1).AddItem "山羊座"
Combo1(1).AddItem "水瓶座"
Combo1(1).AddItem "双鱼座"
Combo1(1).AddItem "白羊座"
Combo1(1).AddItem "金牛座"
Combo1(1).AddItem "双子座"
Combo1(1).AddItem "巨蟹座"
Combo1(1).AddItem "狮子座"
Combo1(1).AddItem "处女座"
Combo1(1).AddItem "天秤座"
Combo1(1).AddItem "天蝎座"
Combo1(1).AddItem "人马座"
'--------------------------------
Combo1(2).AddItem "-"
Combo1(2).AddItem "鼠"
Combo1(2).AddItem "牛"
Combo1(2).AddItem "虎"
Combo1(2).AddItem "兔"
Combo1(2).AddItem "龙"
Combo1(2).AddItem "蛇"
Combo1(2).AddItem "马"
Combo1(2).AddItem "羊"
Combo1(2).AddItem "猴"
Combo1(2).AddItem "鸡"
Combo1(2).AddItem "狗"
Combo1(2).AddItem "猪"
'----------------------------
Combo1(3).AddItem "-"
Combo1(3).AddItem "A型"
Combo1(3).AddItem "B型"
Combo1(3).AddItem "AB型"
Combo1(3).AddItem "O型"
'-----------------------
'开始初始化
Dim i As Integer If frmData.Uo = False Then '添加
'--------------------------
For i = 0 To 12
Text1(i).Text = ""
Next i
Text1(1).Text = Date
Else
'修改
Text1(3).Text = frmData.ListView_Name '姓名
Text1(4).Text = frmData.ListView_QQ 'QQ
Text1(0).Text = frmData.ListView_Love '昵称
Combo1(0).Text = frmData.Text1(0).Text '性别
Combo1(1).Text = frmData.Text1(3).Text '星座
Text1(1).Text = frmData.Text1(2).Text '年月日
Text1(2).Text = frmData.Text1(1).Text '年龄
Combo1(2).Text = frmData.Text1(4).Text '属相
Combo1(3).Text = frmData.Text1(5).Text '血型
Text1(5).Text = frmData.Text1(6).Text '地址
Text1(6).Text = frmData.Text1(7).Text '电话
Text1(7).Text = frmData.Text1(8).Text '手机
Text1(8).Text = frmData.Text1(9).Text '宅电
Text1(9).Text = frmData.Text1(10).Text '传呼
Text1(10).Text = frmData.Text1(11).Text '传真
Text1(11).Text = frmData.Text1(12).Text 'Email
Text1(12).Text = frmData.Text1(13).Text '备注
End If
Exit Sub
ErrHandle:
MsgBox Err.Description
Exit Sub
End Sub
Private Sub Text1_DblClick(Index As Integer)
'在程序中计算人的年龄
If Index = 2 Then Text1(2).Text = Year(Now) - Year(Text1(1).Text)
End Sub
? 窗体8:(查询信息界面程序)
Option Explicit
Private Sub Check1_Click(Index As Integer)
Dim i As Integer
For i = 0 To 10
Text1(i).Enabled = Check1(i).Value
Next i
'判断性别输入是否有效
Option1(0).Enabled = Check1(3).Value
Option1(1).Enabled = Check1(3).Value
'判断年龄输入是否有效
Frame2.Enabled = Check1(4).Value
For i = 0 To 1
Check2(i).Enabled = Frame2.Enabled
Next i
End Sub
Private Sub Command1_Click() '模糊查询
On Error GoTo ErrHandle
'判断昵称查询
If Check1(0).Value = 1 And Not IsNull(Text1(0).Text) Then
SQLadd = SQLadd + " and Love like'*" + Text1(0).Text + "*'"
End If
'判断QQ查询
If Check1(1).Value = 1 And Not IsNull(Text1(1).Text) Then
SQLadd = SQLadd + " and Oicq like'*" + Text1(1).Text + "*'"
End If
'判断姓名查询
If Check1(2).Value = 1 And Not IsNull(Text1(2).Text) Then
SQLadd = SQLadd + " and Name like'*" + Text1(2).Text + "*'"
End If
'性别查询
If Check1(3).Value = 1 Then
If Option1(0).Value = True Then
SQLadd = SQLadd + " and Sex='" + "男" + "'"
Else
SQLadd = SQLadd + " and Sex='" + "女" + "'"
End If
End If
'年龄查询
If Check1(4).Value = 1 Then
If Check2(0).Value = 1 And IsNumeric(Text2(0).Text) Then
If Check2(1).Value = 1 Then
SQLadd = SQLadd + " and Age<=" + Text2(1).Text
SQLadd = SQLadd + " and Age>=" + Text2(0).Text
Else
SQLadd = SQLadd + " and Age>=" + Text2(0).Text
End If
Else
If Check2(1).Value = 1 Then
SQLadd = SQLadd + " and Age<=" + Text2(1).Text
End If
End If
End If
'判断电话查询
If Check1(5).Value = 1 And Not IsNull(Text1(5).Text) Then
SQLadd = SQLadd + " and TelepNo like'*" + Text1(5).Text + "*'"
End If
'判断手机查询
If Check1(6).Value = 1 And Not IsNull(Text1(6).Text) Then
SQLadd = SQLadd + " and MoveCall like'*" + Text1(6).Text + "*'"
End If
'判断宅电查询
If Check1(7).Value = 1 And Not IsNull(Text1(7).Text) Then
SQLadd = SQLadd + " and Home like'*" + Text1(7).Text + "*'"
End If
'判断传呼查询
If Check1(8).Value = 1 And Not IsNull(Text1(8).Text) Then
SQLadd = SQLadd + " and Call like'*" + Text1(8).Text + "*'"
End If
'判断传真查询
If Check1(9).Value = 1 And Not IsNull(Text1(9).Text) Then
SQLadd = SQLadd + " and Fax like'*" + Text1(9).Text + "*'"
End If
'判断Email查询
If Check1(10).Value = 1 And Not IsNull(Text1(10).Text) Then
SQLadd = SQLadd + " and Email like'*" + Text1(10).Text + "*'"
End If
'更新数据库显示信息
frmData.Data1.DatabaseName = frmData.mdbFile 'App.Path + "\MyNote.mdb"
frmData.Data1.RecordSource = SQLoriginal + SQLadd + SQLorder
frmData.Data1.Refresh
ListRefresh
Unload Me
Exit Sub
ErrHandle:
MsgBox Err.Description
Unload Me
Exit Sub
End Sub
Private Sub Command2_Click() '精确查询
On Error GoTo ErrHandle
'判断昵称查询
If Check1(0).Value = 1 And Not IsNull(Text1(0).Text) Then
SQLadd = SQLadd + " and Love='" + Text1(0).Text + "'"
End If
'判断QQ查询
If Check1(1).Value = 1 And Not IsNull(Text1(1).Text) Then
SQLadd = SQLadd + " and Oicq='" + Text1(1).Text + "'"
End If
'判断姓名查询
If Check1(2).Value = 1 And Not IsNull(Text1(2).Text) Then
SQLadd = SQLadd + " and Name='" + Text1(2).Text + "'"
End If
'性别查询
If Check1(3).Value = 1 Then
If Option1(0).Value = True Then
SQLadd = SQLadd + " and Sex='" + "男" + "'"
Else
SQLadd = SQLadd + " and Sex='" + "女" + "'"
End If
End If
'年龄查询
If Check1(4).Value = 1 Then
If Check2(0).Value = 1 And IsNumeric(Text2(0).Text) Then
If Check2(1).Value = 1 Then
SQLadd = SQLadd + " and Age<=" + Text2(1).Text
SQLadd = SQLadd + " and Age>=" + Text2(0).Text
Else
SQLadd = SQLadd + " and Age>=" + Text2(0).Text
End If
Else
If Check2(1).Value = 1 Then
SQLadd = SQLadd + " and Age<=" + Text2(1).Text
End If
End If
End If
'判断电话查询
If Check1(5).Value = 1 And Not IsNull(Text1(5).Text) Then
SQLadd = SQLadd + " and TelepNo='" + Text1(5).Text + "'"
End If
'判断手机查询
If Check1(6).Value = 1 And Not IsNull(Text1(6).Text) Then
SQLadd = SQLadd + " and MoveCall='" + Text1(6).Text + "'"
End If
'判断宅电查询
If Check1(7).Value = 1 And Not IsNull(Text1(7).Text) Then
SQLadd = SQLadd + " and Home='" + Text1(7).Text + "'"
End If
'判断传呼查询
If Check1(8).Value = 1 And Not IsNull(Text1(8).Text) Then
SQLadd = SQLadd + " and Call='" + Text1(8).Text + "'"
End If
'判断传真查询
If Check1(9).Value = 1 And Not IsNull(Text1(9).Text) Then
SQLadd = SQLadd + " and Fax='" + Text1(9).Text + "'"
End If
'判断Email查询
If Check1(10).Value = 1 And Not IsNull(Text1(10).Text) Then
SQLadd = SQLadd + " and Email='" + Text1(10).Text + "'"
End If
'更新数据库显示信息
frmData.Data1.DatabaseName = frmData.mdbFile
frmData.Data1.RecordSource = SQLoriginal + SQLadd + SQLorder
frmData.Data1.Refresh
ListRefresh
Unload Me
Exit Sub
ErrHandle:
MsgBox Err.Description
Unload Me
Exit Sub
End Sub
Private Sub Command3_Click() '取消查询
Unload Me
End Sub
Private Sub Form_Load()
Dim i As Integer
For i = 0 To 10
'在不处于查询状态时,把文本框设置为失效
Text1(i).Text = ""
Text1(i).Enabled = False
Next i
Option1(0).Enabled = Check1(3).Value
Option1(1).Enabled = Check1(3).Value
'判断年龄输入是否有效
Frame2.Enabled = Check1(4).Value
For i = 0 To 1
Check2(i).Enabled = False
Next i
End Sub
Private Sub Check2_Click(Index As Integer)
Text2(Index).Enabled = Check2(Index).Value End Sub
? 窗体9:(关于界面程序)
Option Explicit
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label6.ForeColor = &HFF8080
Label6.FontUnderline = False End Sub
Private Sub Label6_Click()
Dim Email
Email = ShellExecute(0&, vbNullString, "mailto:xucidong33@163.com", vbNullString,
vbNullString, vbNormalFocus)
End Sub
Private Sub Label6_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label6.ForeColor = RGB(0, 0, 255) Label6.FontUnderline = True
End Sub
Private Sub OK_Click()
Unload Me
End Sub
2.模块方面程序
? 模块1:(建立数据库)
Option Explicit
' Data 控件使用有密码的 Access 数据库
'使用 Data 控件打开 Accecc 数据库:
' 设置 Connect 属性为 ;pwd=密码
' Data1.Connect = ";pwd=密码"
'修改密码:
' Data1.Database.NewPassword _老密码_, _新密码_
Public Sub New_click()
On Error GoTo Err100
'建立数据库
CreateDatabase frmData.mdbFile, dbLangGeneral
cmdNumbel_Click
Exit Sub
Err100:
MsgBox "数据库建立失败! " & vbCrLf & vbCrLf & Err.Description, vbInformation
End Sub
Public Sub cmdCreate_Click()
On Error GoTo Err100
' 定义表与字段
Dim DefDatabase As Database
Dim DefTable As TableDef, DefField As Field
If frmData.DataNumbel + 1 > 5 Then
MsgBox "最多能建立五个数据表~"
Exit Sub
End If
frmData.mdbDataName = "Data" & CStr(frmData.DataNumbel + 1)
Set DefDatabase = Workspaces(0).OpenDatabase(frmData.mdbFile, 0, False) '(App.Path &
"\VB-CODE.MDB", 0, False)
Set DefTable = DefDatabase.CreateTableDef(frmData.mdbDataName)
' dbBinary = 9
'dbBoolean = 1
'dbByte = 2
'dbChar=18
'dbDate=8
'dbInteger=3
' dbLong=4
'dbMemo=12
'dbText=10
'建立Name字段为8个字符型
Set DefField = DefTable.CreateField("Name", dbText, 10)
' 字段追加
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("Oicq", dbText, 8)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("Love", dbText, 20)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("Sex", dbText, 2)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("Year", dbDate, 8)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("Age", dbInteger, 3)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("Constell", dbText, 8)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("Attributive", dbText, 8)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("Blood", dbText, 8)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("Address", dbText, 255)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("TelepNo", dbText, 20)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("MoveCall", dbText, 15)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("Home", dbText, 20)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("Call", dbText, 20)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("Fax", dbText, 50)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("Email", dbText, 50)
DefTable.Fields.Append DefField
Set DefField = DefTable.CreateField("Appendix", dbText, 255)
DefTable.Fields.Append DefField
'该字段允许为空
' DefField.AllowZeroLength = True
'表追加
DefDatabase.TableDefs.Append DefTable
MsgBox " 数据表建立完成~ ", vbInformation
Exit Sub
Err100:
MsgBox "对不起,建立表失败。", vbCritical
End Sub
Public Sub cmdNumbel_Click()
On Error GoTo Err100
'定义表与字段
Dim DefDatabase As Database
Dim DefTable As TableDef, DefField As Field
Set DefDatabase = Workspaces(0).OpenDatabase(frmData.mdbFile, 0, False) '(App.Path &
"\VB-CODE.MDB", 0, False)
Set DefTable = DefDatabase.CreateTableDef("mdbNumbel")
' 建立ID字段为8个字符型
Set DefField = DefTable.CreateField("ID", dbInteger, 3)
'字段追加
DefTable.Fields.Append DefField
'建立Name字段为8个字符型
Set DefField = DefTable.CreateField("Name", dbText, 10)
'字段追加
DefTable.Fields.Append DefField
'建立Numbel字段为3
Set DefField = DefTable.CreateField("Numbel", dbInteger, 3)
'字段追加
DefTable.Fields.Append DefField
'表追加
DefDatabase.TableDefs.Append DefTable
MsgBox "数据库建立完成~ ", vbInformation
Exit Sub
Err100:
MsgBox "数据库建立失败! " & vbCrLf & vbCrLf & Err.Description, vbInformation
Kill frmData.mdbFile
End Sub
? 模块2:(表数据库的数据处理)
Option Explicit
'定义SQL初始语句
Public SQLoriginal As String
'定义SQL添加语句
Public SQLadd As String
'定义SQL排序语句
Public SQLorder As String
Public Sub ListRefresh()
Dim i As Integer
'清空所有文本
For i = 0 To 13
frmData.Text1(i).Text = ""
Next i
'清空列表框
frmData.ListView1.ListItems.Clear
'出错判断
If Not frmData.Data1.Recordset.EOF Then
'测量表中记录数目
frmData.Data1.Recordset.MoveLast
frmData.Data1.Recordset.MoveFirst
For i = 1 To frmData.Data1.Recordset.RecordCount
Dim itmX
Set itmX = frmData.ListView1.ListItems.Add(, , i)
itmX.SubItems(1) = frmData.Data1.Recordset.Fields("Name")
itmX.SubItems(2) = frmData.Data1.Recordset.Fields("Oicq")
itmX.SubItems(3) = frmData.Data1.Recordset.Fields("Love")
frmData.Data1.Recordset.MoveNext
Next i
'把数据表当前记录位置复原
frmData.Data1.Recordset.MoveFirst
End If
If frmData.Data1.Recordset.RecordCount > 0 Then
frmData.Text1(0).Text = frmData.Data1.Recordset.Fields("Sex")
'lPassword(frmData.Data1.Recordset.Fields("Sex"))
frmData.Text1(1).Text = frmData.Data1.Recordset.Fields("Age") '
lPassword(frmData.Data1.Recordset.Fields("Year"))
'Age年龄
frmData.Text1(2).Text = frmData.Data1.Recordset.Fields("Year")
'lPassword(frmData.Data1.Recordset.Fields("Constell"))
frmData.Text1(3).Text = frmData.Data1.Recordset.Fields("Constell")
frmData.Text1(4).Text = frmData.Data1.Recordset.Fields("Attributive")
frmData.Text1(5).Text = frmData.Data1.Recordset.Fields("Blood")
'lPassword(frmData.Data1.Recordset.Fields("Address"))
frmData.Text1(6).Text = frmData.Data1.Recordset.Fields("Address")
'lPassword(frmData.Data1.Recordset.Fields("Address"))
frmData.Text1(7).Text = frmData.Data1.Recordset.Fields("TelepNo") '
lPassword(frmData.Data1.Recordset.Fields("TelepNo"))
frmData.Text1(8).Text = frmData.Data1.Recordset.Fields("MoveCall")
'lPassword(frmData.Data1.Recordset.Fields("MoveCall"))
frmData.Text1(9).Text = frmData.Data1.Recordset.Fields("Home")
'lPassword(frmData.Data1.Recordset.Fields("Home"))
frmData.Text1(10).Text = frmData.Data1.Recordset.Fields("Call")
'lPassword(frmData.Data1.Recordset.Fields("Call"))
frmData.Text1(11).Text = frmData.Data1.Recordset.Fields("Fax")
'lPassword(frmData.Data1.Recordset.Fields("Fax"))
frmData.Text1(12).Text = frmData.Data1.Recordset.Fields("Email") '
lPassword(frmData.Data1.Recordset.Fields("Email"))
frmData.Text1(13).Text = frmData.Data1.Recordset.Fields("Appendix")
'lPassword(frmData.Data1.Recordset.Fields("Appendix"))
End If
End Sub
六.软件工程打包
1.打包说明:
VB的程序开发完成后,在本机或装有VB系统的机器上一般可以运行,但
是如果在一台没有安装VB6.0系统的计算机上有VB源程序文8件不能运行,
必须用打包工具将程序做在安装包,把VB程序执行时需要的动态链接库或其
他支持文件打包到一个安装文件上.
2.系统打包步骤:
运行打包程序:
单击"开始\程序(P)\Microsoft Visual Basic 6.0中文版\Microsoft
Visual Basic 6.0中文版工具\Package & Deployment 向导":如图:
在弹出的”打包和展开向导”的”选择工程”里选择要打包的工程,如
图:
点击"打包(P)",工程没有编译为EXE可执行性文件或可执行性文件不在
弹出窗体(1),如果已经编译成可执行性文件弹出窗本(2)如图: 当前目录,
窗体(1)
我们可以单击编译或通过浏览找到可执行文件,一般建议点击编译.
窗体(2)
这种情况最好单击"是",进行下一步进入打包"脚本窗体".选择”打包
脚本”为”VBProject”,再点”下一步”.
选择”标准安装包”,然后点击”下一步”,
在此我们选择选择所需的驱动程序,再点击”下一步”,
在此选择压缩文件选项,选择”单个的压缩文件”,再一直点击”下一步”,就行了.
七.实习总结
设计体会
这次设计的主要目的是通过利用当今最流行可视化编程工具Visual C++ 6.0设计应用程序,用来管理由Access2000创建的数据库。利用Visual C++6.0的ODBC(Open Database Connectity,开发数据库连接)、DAO(Data Access
Objects,数据访问对象)及OLE DB(OLE data Base,OLE数据库),编写程序来实现用户对个人信息的录入、修改、检索等操作。让用户方便地个人信息情况等,利用DAO、ODBC编程来实现信息的输入、编辑(删除、增加、修改)等功能,继而完成对个人信息数据库必要操作。
通过这次的课程设计,我不仅拓宽了自己的知识面,还在实践过程中巩固和加深了自己所学的理论知识,使自己的技术素质和实践能力有了进一步的提高,同时我的专业水平也有了很大的进步。
同时,在软件开发方面也累积了不少经验,特别是在对软件开发工具不很熟悉的情况下,通过自己的学习和导师的指导完成了设计任务。并在设计过程中,自己分析问题和解决问题的能力都得到了锻炼和提高,完善了自己的知识结构,加深了对知识的理解。
这次课程设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的。在学与做的过程中自身的努力以及相关图书资料的帮助,逐渐熟悉了Visual C++ 6.0在数据库方面的应用知识。程序开发的一般过程和对数据库知识的进一步的了解,在这个快速发展的当代社会里,数据库已经普遍应用在各个领域。在这次的课程设计中我学习到不少的数据库知识,但由于自己的理论知识水平有限,实践知识和设计经验不足,在设计过程中难免存在一些问题,甚至错误。恳请各位老师批评指正,致使我在以后的工作和实践中加以改进和提高。
结束语
课程设计对我们每个学生都非常重要。在两个星期的课程设计中,通过广泛查阅与课题有关的内容,使我掌握了许多与计算机有关的东西,更重要的是使我对VB,Access等软件功能和应用有了一定的了解。为此,我对设计一套完整的软件系统的步骤、方法及思路有了一个全新的认识。这加深了我对计算机软件设计的理解,同时也给我提供了一次为以后实际模拟锻炼的机会,我感到受益非浅。为此,我也希望我的课程设计能给指导我的老师交上一份满意的试卷。 八.教师评分
教师评语:
评分:(优秀、良好、中等、及格、不及格 )
最后得分: