资源描述
1.课程设计的目的与意义
1.1、课程设计的目的
数据库课程设计是数据库系统原理实践环节的及为重要的一部分.其目的 是:
(1)培养学生可以应用数据库系统原理在需求分析的基础上对系统进行概念设计,学会设计局部ER,全局ER图;
(2)培养学生可以应用数据库系统在概念设计的基础上应用关系规范化理论对系统进行逻辑设计,学会在ER图基础上设计出易于查询和操作的合理的规范化关系模型;
(3)培养学生可以应用SQL语言对所设计的规范化关系模型进行物理设计,并且可以应用事务解决,存储过程,触发器以保证数据库系统的数据完整性,安全性,一致性,保证数据共享和防止数据冲突;
(4)培养学生理论与实际相结合能力, 培养学生开发创新能力;
(5)培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应计算机产业日新月异发展的形势;
(6)提高和加强学生的计算机应用与软件开发能力,使学生由初学者向专业的程序员过渡。
1.2、课程设计的意义
目前,我国在计算机应用、计算机软件和电子类相关专业的人才培养方面,取得了长足的发展,但同时也让我们深刻地感觉到缺少实际开发设计项目的经验,不善与综合运用所学理论,对知识的把握缺少融会贯通的能力.特别是我们计算机专业大学生,由于缺少具体项目经验,毕业之后普遍感到知识不能转化为能力。课程设计可以锻炼我们理论联系实际的能力,为此后工作做铺垫。
信息时代已经来临,信息解决的利器——计算机应用于火车站售票的平常管理为火车站售票的现代化带来了从未有过的动力和机遇,为火车站票务管理领域的飞速发展提供了无限潜力。采用计算机管理信息系统已成为火车站票务管理科学化和现代化的重要标志,给火车站票务带来了明显的经济效益和社会效益。计算机已经成为人们生活不可却小的一部分。铁路票务管理是一件比较负责但又非常重要的事情,它是涉及国家铁路运送的正常工作、国民经济的发展和人民生活水平及质量的大事情。随着经济的发展,交通运送越来越便捷,为了提高效率,减轻劳动强度,设计开发高效的铁路信息查询系统就显得颇为重要。火车售票管理中包含许多内容,有铁路乘客运送的运力问题,有订票管理问题等等。铁路信息查询系统是公司信息决策和管理的重要的组成部分,是一种典型的信息管理系统(MIS),其开发重要涉及后台的数据库的建立、维护以及前端的相应应用程序的开发两个方面的内容,数据库的建立和维护重要规定其管理数据的一致性、完整性、安全性等特点,而前台的应用程序开发则规定做到各项功能要完备、操作要简便、易学易用等特点。本课程设计专门要解决这些问题,由于铁路火车票务管理的复杂性,本设计与开发也仅是一个尝试性的工作,但其中有很多重要的思想和方法,涉及一些重要的程序代码,对于研究开发该类程序的工程人员可以起一个抛砖引玉的作用。
2.需求分析
2.1. 需求分析的任务
随着旅游业的逐渐的成熟发达,铁路客运量大幅度的提高,各大省市的列车都显著的增长,这些都对列车票务管理系统提出了更高的规定,所以要不断的完善更新列车票务管理系统,提高列车售票系统的工作效率。随着科学的不断进步,计算机应用已经遍布整个社会的每个角落。目前社会正处在健保发展方兴未艾的时代,各火车站莫不兢兢业业地改善自身的体制或管理方式,以适应健保越来越严格的规范。列车在我国的人员流动、物资运送中占据着举足轻重的地位。全国有大量的人员通过搭乘火车到达目的地。而与火车的特殊性及也许通过多个城市,每个城市的车站可以出售此火车的车票。并且同一车站也许有多辆车通过。许多希望以最快的方式选择自己想来乘坐的那一趟列车。所以以人工的方式是不也许实现这种功能的。一种可行的方案是基于客户端服务器的体系结构。服务器为数据库系统,存储所有必要的信息。客户端通过连接到服务的应用程序快速、准确地完毕相应的工作,通过网上订购,可以达成高效、便捷的购票。列车票务管理系统的实行,将会在一定限度上促进铁路客运生产力和生产关系的变革,增强市场竞争能力,提高铁路部门的工作效率,提高管理水平,减少劳动强度,方便广大旅客购票,有一定的社会和经济效益。
2.2. 系统需要实现的功能和操作如下:
(1) .查询:可以通过起点站与终点站在进行查询,也可根据具体的车次输入进行查询,同时每次查询都会显示车次号,点击即可显示该趟列车所进过站点的具体信息,其中涉及所到达每个站的到达时间与出发时间。
(2) .客户注册、注销:由于要进行网上订购车票,用户需注册,填写有关信息,由物流公司负责送车票到客户手中。假如用户不再使用本系统可以选择注销,从而从数据库中删除其有关记录。
(3).订票业务:本系统为网上订票,用户通过查询车次信息、票务信息,找到自己所需的车票通过所关联的账户进行订购。
(4).退票业务:根据客户提供的情况(车次、时间、)为客户办理退票手续,退票时按票价的80%退给客户金额,若所退票额能满足他的规定,则为他办理退票手续,同时在数据库中进行更新。
(5) .更新功能:该系统随时跟据车辆的变化情况进行更新,增长车辆时可以在系统中插入该车的具体信息,同时也能根据需要修改某趟车通过的站点与发车时间,当某趟车停止、开行时可以删除该趟车的信息。同时涉及对列车信息、站点信息、管理人员信息、订票记录等的更新功能。
(6) .车票配送:客户在订购了车票之后,管理人员通过后台管理订票记录,然后根据客户的规定选择物流公司及时为其配送车票。
3.系统设计
3.1总体设计
1.功能设计:该铁路票务系统流程重要涉及客户操作、管理人员操作、主管操作:
客户操作:
查询操作:可以按照车次或始发站、终点站两种方式进行查询,只需要输入关键信息即可查到所需的车次的有关信息,涉及车的类型、所剩票的类型、数量、票价等。
注册操作:网上订票,需要与客户的银行账号、电话、地址等有关信息关联, 只有进行注册之后才可以进行订票操作。
订票操作:客户进行注册后,可以方便地进行订票,可以选择支付方式与送票方式,以达成最快速、高效地完毕车票的订购。
退票操作:由于一些因素,也许导致客户规定退票,系统根据具体的情况鉴定是否可以退票,进行退票。
注销操作:客户也许由于某些因素要进行注销操作,系统根据客户请求完毕客户注销,删除数据库中的该客户有关信息。
2. 功能模块图
3. 局部ER图(以客户为主体)
3.2具体设计:
3.2.1逻辑结构设计
用户(用户账号,密码)
用户具体信息(用户账号,姓名,性别,电话,地址,支付方式)
支付类型(类型编号,支付类型)
网上银行(银行编号,银行名称)
订票记录(用户编号,车票编号,数量,订票日期)
票务信息(车票编号,剩余数量,日期)
票类型1(票类型编号1,票类型名称1)
票类型2(票类型编号2,票类型名称2)
物流公司(物流公司编号,物流公司名称)
3.2.2数据库物理设计
用户表:
字段名称
数据类型
宽度
可否为空
是否为主键
说明
ID8
char
20
否
是
用户账号
password
char
16
否
否
用户密码
用户具体信息表:
字段名称
数据类型
宽度
可否为空
是否为主键
说明
ID8
char
20
否
是
用户账号
Name
char
20
否
否
姓名
Sexno
int
1
否
否
性别编号
tel
char
11
否
否
电话
Address
char
30
否
否
地址
zhifuno
int
1
否
否
支付方式
支付类型表:
字段名称
数据类型
宽度
可否为空
是否为主键
说明
zhifuno
int
1
否
是
类型编号
zhifu
char
20
否
否
支付类型
网上银行:
字段名称
数据类型
宽度
可否为空
是否为主键
说明
Bankno
int
1
否
是
银行编号
Bank
char
20
否
否
银行名称
订票记录:
字段名称
数据类型
宽度
可否为空
是否为主键
说明
ID8
char
20
否
是
用户帐号
ID
char
20
否
是
车票编号
num
int
1
否
否
数量
Date
datetime
1
否
否
订票日期
票务信息表:
字段名称
数据类型
宽度
可否为空
是否为主键
说明
ID
char
20
否
是
车票编号
num1
int
1
否
否
剩余数量
Date1
datetime
1
否
否
日期
票类型1表:
字段名称
数据类型
宽度
可否为空
是否为主键
说明
Type1
int
1
否
是
票类型编号1
Type1na
char
20
否
否
票类型名称1
票类型2表:
字段名称
数据类型
宽度
可否为空
是否为主键
说明
Type2
int
1
否
是
票类型编号2
Type2na
char
20
否
否
票类型名称2
物流公司(物流公司编号,物流公司名称)
字段名称
数据类型
宽度
可否为空
是否为主键
说明
transno
Int
1
否
是
物流公司编号
transna
Char
20
否
否
物流公司名称
3.2 系统数据库设计
3.2.1.该系统由两部分组成:登录部分和车次车票部分。
(1).登录部分:该部分分为管理员与乘客登录,管理员登录时需要设定账号与密码,只有输入对的的账号与密码才干登陆,同时系统的功能管理员都能操作,乘客不需要账号与密码,但是乘客只有查询的操作权限。
(2).车次车票部分:该部分又分为四个子系统:
查询系统:可以查询车次基本信息与车次具体。
购票系统:用于乘客购票,同时显示剩余票数与票价。
更新系统:当车次信息有变化时,管理员可以根据情况插入和删除车次信息。
退票系统:用于乘客需要退票时,且退票时只退票价的80%。
该系统ER图如图3.1:
目的站
出发站
车次
账号
n
座位类型
火车
管理
管理员
n
1
终点到达时间
始发时间
密码
显示
n
出发时间
到达时间
站点
剩余票数
票价
图3.2
该系统流程图如下开始
:
错误
选择登录类型
返回
退出
乘客
退出
操作
返回
操作
输入账号和密码
管理员
对的
账号
类型
查询系统
查询系统
更新系统
退票系统
购票系统
结束
图3.2
4.系统实现
设计的火车站售票系统重要分为五个模块:
5.1.登陆模块。
在登陆系统中,所需要的功能就是对输入的账号和密码与数据库中的账号信息进行匹配查询。其实现使用了text控件,adodc控件,frame控件,option控件,command控件以及label控件。重要代码如下:
Private Sub Command1_Click() If Option1.Value = True Then '判断是否是管理员登陆
If Text1.Text = "" Then '假如账号中输入为空则显示"请输入账号"
MsgBox "请输入账号"
ElseIf Text2.Text = "" Then '假如密码框输入为空则显示"请输入密码"
MsgBox "请输入密码"
ElseIf Text1.Text <> "" Then '当账号框中输入不为空
Dim strsql As String
strsql = "select * from 表3 Where id=" + "'" + Text1 + "'" '从数据库中找到账号等于账号框中输入的数据时
With Adodc1
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" + App.Path + "\db3.mdb;Persist Security Info=False"
.RecordSource = strsql
.Refresh
End With
If Adodc1.Recordset.EOF = True Then
MsgBox "账号信息错误"
ElseIf Text2.Text <> Adodc1.Recordset.Fields("passnum") Then
MsgBox "密码错误"
ElseIf Text2.Text = Adodc1.Recordset.Fields("passnum") Then '当密码框中输入的数据与数据库的密码相符时
Form1.Hide
Form2.Show
End If
End If
ElseIf Option2.Value = True Then '假如选择为游客登录则跳转到游客查询界面
Form3.Show
Form1.Hide
End If
End Sub 此外为了美化界面,增长登陆界面的功能,添加了time控件,将计算机系统时间显示在lable控件中,具体代码如下:
Private Sub Timer1_Timer()
Label4.Caption = Now
End Sub
5.2.主菜单 即管理员登陆进入后的操作菜单。本界面中用到了command控件。作用是跳转到操作员所需要的界面。重要代码示例如下:
Private Sub Command1_Click() ‘当前主菜单隐藏,更新系统显示。
Form2.Hide
Form4.Show
End Sub
5.3.更新系统 更新系统中重要规定对数据库中的表的数据进行修改,重要涉及插入,修改,删除。在这些功能的实现中我们使用了adodc控件,option控件,label控件,datagrid控件。重要代码如下:
Private Sub Command1_Click() ‘假如选择的为火车基本信息,则让datagrid控件中显示火车基本信息的表。并实现插入功能。反之则对火车具体信息表进行插入操作。
If Option1.Value = True Then
Set DataGrid1.DataSource = Adodc1
Adodc1.Recordset.AddNew
ElseIf Option2.Value = True Then
Set DataGrid1.DataSource = Adodc2
Adodc2.Recordset.AddNew
End If
End Sub
Private Sub Command2_Click() ‘允许在datagrid中对数据进行更新
DataGrid1.AllowUpdate = True
End Sub
Private Sub Command3_Click() ‘假如选择的为火车基本信息,则让datagrid控件中显示火车基本信息的表。并实现删除功能。反之则对火车具体信息表进行删除操作。
If Option1.Value = True Then
Adodc1.Recordset.Delete
ElseIf Option2.Value = True Then
Set DataGrid1.DataSource = Adodc2
Adodc2.Recordset.Delete
End If
End Sub
Private Sub Command4_Click() ‘使用户不能对datagrid中数据进行更新,防止犯错。
DataGrid1.AllowUpdate = False
End Sub
5.4.查询系统 在本系统中重要是规定用户能对火车进行查询,涉及车次查询,站点查询以及具体查询。此外规定不能对数据进行修改。为了实现这些功能,我们用到了datagrid控件,adodc控件,label控件,command控件,text控件。具体代码如下:
Private Sub Command1_Click() ‘对输入的两个站点进行查询。查询进过输入的两个站点的所有火车。为了实现这个对两个站点间的查询,我们使用了子查询语句。
Dim strsql As String
strsql = "select * from 表2 where 车次 in(select 车次 from 表2 Where 站点 in ( '" + Text1 + "', '" + Text2 + "') group by 车次 having count(*)>=2) and 站点 in ( '" + Text1 + "', '" + Text2 + "') order by 编号 asc"
With Adodc2
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" + App.Path + "\db3.mdb;Persist Security Info=False"
.RecordSource = strsql
Set DataGrid1.DataSource = Adodc2
.Refresh
End With
End Sub
Private Sub Command2_Click() ‘对
Dim strsql As String
strsql = "select * from 表2 Where 车次 =" + "'" + Text3 + "' order by 编号 asc"
With Adodc2
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" + App.Path + "\db3.mdb;Persist Security Info=False"
.RecordSource = strsql
Set DataGrid1.DataSource = Adodc2
.Refresh
End With
End Sub
Private Sub Command3_Click() ‘对输入的车次进行查询,输出该车次的信息。
Dim strsql As String
strsql = "select * from 表2 order by 编号 asc"
With Adodc2
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" + App.Path + "\db3.mdb;Persist Security Info=False"
.RecordSource = strsql
Set DataGrid1.DataSource = Adodc2
.Refresh
End With
End Sub
Private Sub Form_Load() ‘使datagrid中输出的数据不能进行修改。
DataGrid1.AllowAddNew = False
DataGrid1.AllowDelete = False
DataGrid1.AllowUpdate = False
End Sub
5.5.购票退票系统 在该系统中要实现的功能是支持售票员对游客购票的车次的查询,以及购票的操作,其中涉及对票价的显示,座位数的加减,特别是实时对数据库的车票情况的更新,以及购买硬座、硬卧、软卧、站票这不同车票的区别。为此,我们使用了label控件,frame控件,text控件,options控件,datagrid控件,adodc控件以及command控件。具体功能实现如下:(查询的实现与查询系统的相似,不在这里列出)
Private Sub Command1_Click()
'实现乘客购票的显示,以及实时对数据库中的车票信息进行更新。 Label9.Caption =
Text2.Text Label11.Caption = Text1.Text Label10.Caption = Text3.Text
Label12.Caption = Adodc1.Recordset.Fields("发车时间") If Option1.Value = True
Then Label13.Caption = Option1.Caption Adodc1.Recordset.Fields("软卧剩余票数")
= Adodc1.Recordset.Fields("软卧剩余票数") - 1 Label17.Caption =
Adodc1.Recordset.Fields("软卧剩余票数") ElseIf Option2.Value = True Then
Label13.Caption = Option2.Caption Adodc1.Recordset.Fields("硬卧剩余票数") =
Adodc1.Recordset.Fields("硬卧剩余票数") - 1 Label17.Caption =
Adodc1.Recordset.Fields("硬卧剩余票数") ElseIf Option4.Value = True Then
Label13.Caption = Option4.Caption Adodc1.Recordset.Fields("硬座剩余票数") =
Adodc1.Recordset.Fields("硬座剩余票数") - 1 Label17.Caption =
Adodc1.Recordset.Fields("硬座剩余票数") End If Label14.Caption = Text4.Text
Label15.Caption = Adodc1.Recordset.Fields("车次类型") Label16.Caption = Date
End Sub
Private Sub Command3_Click() ‘通过option控件,查询出不同座位价格并把价格显示到text控件中。
If Option1.Value = True Then
Label20.Caption = (Text4.Text) * 0.8
Adodc1.Recordset.Fields("软卧剩余票数") = Adodc1.Recordset.Fields("软卧剩余票数") + 1
Label17.Caption = Adodc1.Recordset.Fields("软卧剩余票数")
ElseIf Option2.Value = True Then
Label20.Caption = (Text4.Text) * 0.8
Adodc1.Recordset.Fields("硬卧剩余票数") = Adodc1.Recordset.Fields("硬卧剩余票数") + 1
Label17.Caption = Adodc1.Recordset.Fields("硬卧剩余票数")
ElseIf Option4.Value = True Then
Label20.Caption = (Text4.Text) * 0.8
Adodc1.Recordset.Fields("硬座剩余票数") = Adodc1.Recordset.Fields("硬座剩余票数") + 1
Label17.Caption = Adodc1.Recordset.Fields("硬座剩余票数")
End If
End Sub
Private Sub Option1_Click() ‘选择软卧,并把软卧的剩余票数输出。
Dim a As Double, b As Double
Adodc1.Recordset.MoveFirst
a = Adodc1.Recordset.Fields("软卧票价")
Adodc1.Recordset.MoveNext
b = Adodc1.Recordset.Fields("软卧票价")
Text4.Text = b - a
Label17.Caption = Adodc1.Recordset.Fields("软卧剩余票数")
End Sub
5.6.此外,在系统设计过程中,我们发现假如直接使用adodc控件对数据库进行关联,将使得我们设计的软件只能在指定的途径中才干运营,为此,我们查阅了相关资料,在软件设计过程中动态设立我们数据库的途径,从而使软件能在不同的途径中正常运营,代码如下:
With Adodc1
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" + App.Path + "\db3.mdb;Persist Security Info=False"
.Refresh
End With5. 系统调试
5.1.登陆系统
图5.1:此为密码输入错误提醒。
图5.2:此为密码输入对的后跳转到主菜单的界面。
图5.3:此为选择乘客后对的跳转到查询的界面。
图5.1
图5.2
图5.3
5.2.查询系统
图5.4:此为输入长沙到常德的站点查询后对的查询出的信息。
图5.5:此为输入1374车次后对的查询出的车次信息。
图5.6:此为点击具体查询后对的输出的信息。
图5.4
图5.5
图5.6
5.3.更新系统
图5.7:此为未更新前显示信息。
图5.8:此为插入1234车次后显示信息。
图5.9:此为删除1234车次后显示信息。
图5.7
图5.8
图5.9
5.4.购票系统。
图5.10:此为输入站点,车次后过滤出的车次信息。
图5.11:此为在图十的基础上选择软座后显示的票价及剩余票数信息。
图5.12:此为点击拟定购买后显示的信息,涉及对剩余票数的更新信息。
图5.10
图5.11
图5.12
5.5.退票系统
图5.13:此为初始状态。
图5.14:此为在输入与购票系统相同信息后输出的退还钞票数目。
图5.13
图5.14
6.小结
对于本次课程设计我感慨颇多,的确,从拿到题目到完毕整个编程,从理论到实践,在整整两个星期的日子里,学到的很多理论知识,在这次课程设计实习中更具体的体现了出来,在实践过程中,不仅巩固了以前所学过的知识,并且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学到的理论知识与实践相结合起来,从理论中得出结论,将结论辅助与理论,才干真正学到知识并写出有用的程序,所以提高自己的实际动手能力和独立思考的能力是十分重要的。在设计的过程中碰到很多的问题,可以说得是困难重重,由于对以前所学过的知识理解得不够深刻,掌握得不够牢固。导致自己在程序设计过程中经常犯错,致使程序无法运营或无法实现规定的环节。尚有很多是些小问题,这都是由于我粗心大意而导致的,所以我结识到设计程序一定要仔细,容不得丝毫的马虎和粗心大意。当然尚有其他的问题,特别是关于文献的操作,是我们最大的问题,但是,通过老师的讲解和改错之后,也开始懂得设计和运用了。
在本次实践中,我结识到了团队的重要性,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都也许导致整项工作的失败。只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有也许导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常宝贵的。我很清楚的知道团结协作的力量是伟大的,假如是我一个人孤军奋战的话,肯定不能在规定期间内完毕这次课程设计的规定内容,因此我很怀念这两个星期的合作,想起我们一起查阅资料,一起讨论设计程序的思绪,成功的时候一起分享喜悦,失败的时候互相鼓励,我坚信,在这两个星期的时间里面,我们的友情和团结精神在历练中经受住了考验,变的更加顽强,我们是一个集体的思想已经进一步人心!
附录源代码
from1(登陆界面):
Private Sub Command1_Click()
If Option1.Value = True Then
If Text1.Text = "" Then
MsgBox "请输入账号"
ElseIf Text2.Text = "" Then
MsgBox "请输入密码"
ElseIf Text1.Text <> "" Then
Dim strsql As String
strsql = "select * from 表3 Where id=" + "'" + Text1 + "'"
With Adodc1
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" + App.Path + "\db3.mdb;Persist Security Info=False"
.RecordSource = strsql
.Refresh
End With
If Adodc1.Recordset.EOF = True Then
MsgBox "账号信息错误"
ElseIf Text2.Text <> Adodc1.Recordset.Fields("passnum") Then
MsgBox "密码错误"
ElseIf Text2.Text = Adodc1.Recordset.Fields("passnum") Then
Form1.Hide
Form2.Show
End If
End If
ElseIf Option2.Value = True Then
Form3.Show
Form1.Hide
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
End Sub
Private Sub Timer1_Timer()
Label4.Caption = Now
End Sub
from2(主菜单):
Private Sub Command1_Click()
Form2.Hide
Form4.Show
End Sub
Private Sub Command2_Click()
Form2.Hide
Form5.Show
End Sub
Private Sub Command3_Click()
End
End Sub
Private Sub Command4_Click()
Form2.Hide
Form5.Show
End Sub
Private Sub Command5_Click()
Form2.Hide
Form3.Show
End Sub
from3(查询系统):
Private Sub Command1_Click()
Dim strsql As String
strsql = "select * from 表2 where 车次 in(select 车次 from 表2 Where 站点 in ( '" + Text1 + "', '" + Text2 + "') group by 车次 having count(*)>=2) and 站点 in ( '" + Text1 + "', '" + Text2 + "') order by 编号 asc"
With Adodc2
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" + App.Path + "\db3.mdb;Persist Security Info=False"
.RecordSource = strsql
Set DataGrid1.DataSource = Adodc2
.Refresh
End With
End Sub
Private Sub Command2_Click()
Dim strsql As String
strsql = "select * from 表2 Where 车次 =" + "'" + Text3 + "' order by 编号 asc"
With Adodc2
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" + App.Path + "\db3.mdb;Persist Security Info=False"
.RecordSource = strsql
Set DataGrid1.DataSource = Adodc2
.Refresh
End With
End Sub
Private Sub Command
展开阅读全文