VB创建ACCESS数据库大全.docx
- 文档编号:1118950
- 上传时间:2022-10-17
- 格式:DOCX
- 页数:12
- 大小:21.48KB
VB创建ACCESS数据库大全.docx
《VB创建ACCESS数据库大全.docx》由会员分享,可在线阅读,更多相关《VB创建ACCESS数据库大全.docx(12页珍藏版)》请在冰豆网上搜索。
VB创建ACCESS数据库大全
1:
问题的提出
在VisualBasic中,常用的数据访问接口有下列三种:
数据库访问对象(DAO,DataAccessObject)、远程数据库对象(RDO,RemoteDataObject)和ActiveX数据对象(ADO,ActiveXDataObject)。
数据库访问技术一直在不断进步,而这三种接口的每一种都分别代表了该技术的不同发展阶段。
最新的是ADO,它是比RDO和DAO更加简单,然而更加灵活的对象模型。
正因如此,越来越多的人在用VB开发数据库软件时使用ADO作为数据访问接口。
在开发过程中,我们通常的使用的方法是:
先使用数据库管理系统(例如:
MicrosoftAccess)或VB中的可视化数据管理器建立好数据库和数据表结构,然后在程序中通过使用ADODC数据库控件或引用ADO对象与数据库中的表建立连接,再通过数据库感知控件(例如:
文本框、DataGrid等)来进行数据库的各种操作。
在这种开发过程中,我们有时需要面对这样一个问题:
如何让用户在程序运行过程中动态地建立自己所需的数据库和数据表以提高程序的灵活性呢?
在程序运行过程中建立自己所需的数据库和数据表,其本质就是用代码(或者说通过编程)来建立数据库和数据表。
众所周知,在Foxpro或ASP编程中,这是很容易的一件事件。
那么在VB数据库编程中又是怎样来操作的呢?
在VB数据库编程中,如果使用DAO作为数据库访问接口技术,则可以用CreateDatabase结合CreateTableDef方法来实现,目前已有不少书和杂志都讲到了这种方法,本文就不再讲述了;但你如果使用的是最新的数据库访问接口技术ADO,你却发现目前的书和杂志上没有文章讲到如何用代码来建立数据库和数据表的方法,可有时我们非常需要用到这种方法,下面我们就来解决这个问题。
2:
ADO与ADOX
我们先来对ADO和ADOX进行简单的认识。
在VB6中,使用ADO开发数据库应用程序时,我们要引用对象库"MicrosoftActiveXDataObjects2.5Library",这个东西的简称就是ADO,它是VB6数据库最核心的对象群,也是VB数据库开发人员经常所引用的对象库,在VB6中你可以看到它的各种版本,从2.0版到2.6版都有,很多人对它已经很熟悉,在此我们不再详细介绍。
如果要在程序运行过程中创建数据库和表,我们还要引用对象库"MicrosoftADOExt2.1.ForDDLSecurity",简称为ADOX,其库文件名为是:
Msadox.dll。
ADOX是对ADO对象和编程模型的扩展,它将ADO扩展为包括创建、修改和删除模式对象,如表格和过程。
它还包括安全对象,用于维护用户和组,以及授予和撤消对象的权限。
ADOX的对象如下表所示:
对象
说明
Catalog
包含描述数据源模式目录的集合。
Column
表示表、索引或关键字的列。
Group
表示在安全数据库内有访问权限的组帐号。
Index
表示数据库表中的索引。
Key
表示数据库表中的主关键字、外部关键字或唯一关键字。
Procedure
表示存储的过程。
Table
表示数据库表,包括列、索引和关键字。
User
表示在安全数据库内具有访问权限的用户帐号。
View
表示记录或虚拟表的过滤集。
ADOX常用方法有:
Append(包括Columns、Groups、Indexes、Keys、Procedures、Tables、Users、Views)、Create(创建新的目录)、Delete(删除集合中的对象)、Refresh(更新集合中的对象)等等。
有关ADOX的详细信息,请在中参阅Microsoft发布的有关ADOX说明的Web页。
3:
在原有数据表的基础上产生新的数据表
如果仅仅是在已有的数据表的基础上产生新的数据表,我们只要引用对象库"MicrosoftActiveXDataObjects2.5Library"再利用Select…Into语句就可以了。
例如:
有一个名为Wage.mdb的数据库,数据库中有一个名为"工资表"数据表,该数据表的字段有:
编号、姓名、基本工资、津贴、应发工资、扣款、实发工资等,这个表中已经有很多的记录。
现在我们把其中的实发工资大于2000的记录筛选出来组成一个新表,新表的名称由用户从文本框中输入,新表中我们只要三个字段,它们是:
编号、姓名、实发工资。
我们用下列程序就可以实现:
(事先在窗体中添加一个文本框Text1和一个命令按钮Command1)
DimconnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
DimcommandAsNewADODB.command
PrivateSubCommand1_Click()
DimbmAsString
DimsqlAsString
IfText1.Text<>""Then
bm=Trim(Text1.Text)
sql="Select编号,姓名,实发工资Into"+bm+"From工资表Where实发工资>2000"
Setcommand.ActiveConnection=conn
command.CommandText=sql
command.Execute
Else
MsgBox"你必须输入一个名字"
EndIf
PrivateSubForm_Load()
DimstrAsString
str=App.Path
IfRight(str,1)<>"\"Then
str=str+"\"
EndIf
pstr="Provider=Microsoft.Jet.OLEDB.3.51;"
pstr=pstr&"PersistSecurityInfo=False;"
pstr=pstr&"DataSource="&str&"wage.mdb"
conn.Openpstr
rs.CursorLocation=adUseClient
rs.Open"工资表",conn,adOpenKeyset,adLockPessimistic
SetDataGrid1.DataSource=rs
EndSub
当然,我们还可以把程序设计得更好,比如:
让用户先在窗口中任意选择所需的字段和一些条件,然后再组合生成一个新表。
但无论如何,这种操作只能在从原表的基础上产生一个新表,不能产生一个数据库文件,并且新表和原表放在同一个数据库中。
4:
建立新的数据库和表
前面讲到的方法有一定的局限性,它不能让用户产生自己所需的数据库文件,即使能产生数据表也只能在原有表的基础上生成。
我们现在的目的就是让用户利用ADO对象在程序运行过程中创建数据库和表,就好象他利用Access来建立数据库和表一样。
为此,我们应该引用对象库"MicrosoftActiveXDataObjects2.5Library"和"MicrosoftADOExt2.1.ForDDLSecurity"
我们不妨用一个实例来说明具体的操作过程和方法。
我们的实例要达到目的是:
在程序运行过程中建立一个数据库,数据库的名称由用户输入。
然后在数据库中建立一个名为"MyTable"的数据表,数据表中有三个字段,它们分别是:
"编号"(整数型)、"姓名"(字符型,宽度为8)、"住址"(字符型,宽度为50),接着在数据表中添加一条记录,最后在DataGrid控件中把记录的内容显示出来,并且让用户在DataGrid控件中任意修改、添加记录。
首先在VB中新建一个窗体,然后在"工程"菜单中引用对象库"MicrosoftActiveXDataObjects2.5Library"和"MicrosoftADOExt2.1.ForDDLSecurity"。
接着定义三个窗体级的对象变量和一个窗体级的字符串变量,它们的具体定义是:
DimcatAsNewADOX.Catalog'不用cat用另外一个名字也可以
DimconnAsNewADODB.Connection
DimrsAsNewADODB.Recordset
DimpstrAsString'定义该变量是为了后面的书写方便
为了更灵活地创建数据库,我们可以在窗体中加入一个通用对话框、一个DataGrid控件,三个命令按钮,它们的标题分别是:
创建数据库和表、查看、更新。
通用对话框的作用是给用户输入数据库文件名和决定数据库的存放位置。
"创建数据库和表"命令按钮对应的代码是:
PrivateSubCommand1_Click()
DimfmAsString'fm变量用来获取用户输入的文件名
CommonDialog1.Filter="MDB文件(*.mdb)|*.mdb|AllFiles(*.*)|*.*|"
CommonDialog1.FilterIndex=1
CommonDialog1.InitDir="D:
\Jthpaper"
CommonDialog1.Flags=6
CommonDialog1.Action=2
IfCommonDialog1.FileName=""Then
MsgBox"你必须输入一个文件名,请重新保存一次!
"
ExitSub
Else
fm=CommonDialog1.FileName
EndIf
pstr="Provider=Microsoft.Jet.OLEDB.4.0;"'不能把这里的4.0改为3.51
pstr=pstr&"DataSource="&fm
cat.Createpstr'创建数据库
DimtblAsNewTable
cat.ActiveConnection=pstr
tbl.Name="MyTable"'表的名称
tbl.Columns.Append"编号",adInteger'表的第一个字段
tbl.Columns.Append"姓名",adVarWChar,8'表的第二个字段
tbl.Columns.Append"住址",adVarWChar,50'表的第三个字段
cat.Tables.Appendtbl'建立数据表
conn.Openpstr
rs.CursorLocation=adUseClient
rs.Open"MyTable",conn,adOpenKeyset,adLockPessimistic
rs.AddNew'往表中添加新记录
rs.Fields(0).Value=9801
rs.Fields
(1).Value="孙悟空"
rs.Fields
(2).Value="广州市花果山"
rs.Update
EndSub
上面程序中有一个需要说明的地方,这就是语句:
pstr="Provider=Microsoft.Jet.OLEDB.4.0;",这个语句表示MicrosoftJetOLEDB驱动程序的版本是4.0,这是目前最新的版本,利用它你可以用VB中的ADO对象
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 创建 ACCESS 数据库 大全
![提示](https://static.bdocx.com/images/bang_tan.gif)