VB通过DAO访问Access数据库.docx
- 文档编号:9129349
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:48
- 大小:42.55KB
VB通过DAO访问Access数据库.docx
《VB通过DAO访问Access数据库.docx》由会员分享,可在线阅读,更多相关《VB通过DAO访问Access数据库.docx(48页珍藏版)》请在冰豆网上搜索。
VB通过DAO访问Access数据库
VB通过DAO访问Access数据库
2001/11/08 14:
06中国电脑教育报
文/张喜瑞、毛立夏
Access是Office系列中功能完备的数据工具,本文将其作为应用程序的后台仓库,即一个数据库可以包括多个二维表,实现各类数据的存储,适合用来作为数据处理的中间桥梁。
VisualBasic对Access数据库的集成非常紧密,通常由以下几个部分组成。
引用DAO类型库
1、从“工程”菜单中选择“引用”菜单项;
2、在可引用列表框中选择“MicrosoftDAO3.51ObjectLibrary”项。
3、最后“确定”即可
设置DAO数据类型变量
DAO数据类型变量共分成两种:
1、Database变量
对应于Access数据库,通常在模块中被定义为Public全程变量:
PublicAccessDBFAsDatabase
'定义数据库对象实例AccessDBF
2、RecordSet变量
对应于Access数据库中的一个表,可定义为全程变量或局部变量,亦可作为函数参数进行传递:
DimthePrintTableAsRecordSet
'定义一个表对象实例thePrintTable
打开DAO数据类型
1、打开Access的方法
通常可设置一个专门的Public函数用来打开一个Access数据库,并且该函数在启动窗体的PrivateSubForm_load()过程中被调用,函数定义格式如下:
PublicSubOpenDatabase()
DimsConeectAsString
SConnect=";PWD=8830428;UID=admin"
'设置打开时的用户名、口令等参数
SetAccessDBF=Nothing
'确认关闭对象实例
SetAccessDBF=WorksPaces(0).OpenDatabase(App.Path&&"/ToXls.MDB",False,sConnect)
'打开当前路径的ToXls.MDB数据库
EndSub
2、打开RecordSet的方法
RecordSet遵循即用即开的原则,所以它通常在函数中打开
SetthePrintTable=AcessDBF.OpenRecordSet("Table_1",dbOpenSnapshot)
相关的数据操作
数据实际需要对Access表中的记录、字段、数据项进行操作。
下列双重循环把数据输出到Excel对应的单元格中:
Forj=0To2
ForI=0To3
ThePrintTable.MoveNext
Excel.Sheet.Range(Trim(chr(71+j*10+I))+"G").Value=thePrintTable.Fields(0)
NextI
Nextj
关闭数据库
1、关闭Database
它通常在整个应用程序的最后进行操作,即通常出现在PrivateSubForm_unload(CannelAsInterger)过程中。
命令格式实例如下:
AccessDBF.Close
2、关闭RecordSet
它遵循用完即关的原则,所以通常出现在函数中。
当完成了相关的数据操作后就关闭它,下次再用时再打开即可:
thePrintTable.Close
结论:
通过系统集成开发应用程序的输入和输出模块,它一方面充分利用了OLE对象程序的优点,轻松完成人机界面设计,使程序员从繁琐而又简单的点、线、框等定位中脱离出来;另一方面,由于充分利用了用户操作熟练的软件作为人机界面,使用户有亲切感和熟练操作的能力,从而能够充分发挥所开发的应用程序的功能。
在中用连接Access
巧巧电脑网络 2007-12-27 qqread 逃の妖豆 论坛 收藏此文
大中小
在ADO.net中,微软为我们提供了OleDB和SqlClient两种数据库的调用方法,对于微软的SQLServer,我们使用SqlClient来处理在速度上比较快,而OleDB可用于其它各种类型的数据库。
SqlClient在中命名空间为System.Data.SqlClient,OleDB的命名空间为System.Data.OleDb。
对于连接Access数据库,则可以使用OleDB来实现。
一个数据库连接,最重要的是建立一个Connection,对于一个Access数据库,其Connection的标准ConnectionString为以下语句:
Connection.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=\somepath\mydb.mdb;UserId=admin;Password=;"
Provider为数据源提供者,DataSource为数据库名称,UserId和Password为数据库的用户名与密码,对于没有密码保护的Access数据库我们可以省略后面的两个参数。
[art_myurl]
下面一段代码是一个根据数据库名称或者路径来建立一个数据连接的函数:
PublicFunctionCreateConnection(ByValfilepathAsString)AsOleDbConnection
DimmycnAsNewOleDbConnection
Try
'检查filepath是完整的路径还是缺省的文件名
IfInStr(1,filepath,":
\",1)<>0Then
mycn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&filepath
Else
'假定该文件位于程序运行的目录下
mycn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Application.StartupPath&"\"&filepath
EndIf
mycn.Open()
CatchexAsException
MessageBox.Show(ex.Message)
EndTry
Returnmycn
EndFunction
vs2005如何连接access2007的*.accdb文件
2007年04月14日星期六11:
11
vs2005如何连接access2007的*.accdb文件
description:
Provider=Microsoft.ACE.OLEDB.12.0;DataSource=c:
\work\users.accdb;PersistSecurityInfo=False
\test\fy.mdb"" providerName="System.Data.OleDb"/> 如果要用虚拟路径的话要怎么办? 在CS页面可以用Server.MapPath("test\fy.mdb"),在Web.Config里面直接写数据库的相对路径就行了。 连接access20072009-12-2618: 01: 17|分类: 数据库|标签: |字号大中小订阅. 今天弄了一下午用连接access2007开始想应该是按套路来,但过程中遇到了各种各样的问题 首先是连接字符串 请注意连2007access时的字符串是 Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+My.Application.Info.DirectoryPath+"\data\hostel.accdb" My.Application.Info.DirectoryPath是指向工程目录因为我把数据库放在了工程下的data文件夹里 然后出现了提示 NetFramework数据提供程序要求MicrosoftDataAccessComponents(MDAC)2.6或更高。 但我的MDAC是2.8 上网找原因 【 第一、打开"c: \windows\inf"注意: “inf”是隐藏目录。 找到文件“mdac.inf”。 鼠标点击右键——>安装。 第二、提示要“I386文件夹中的文件”,插入windowsxp安装盘(或为网上下在windowsI386文件。 ) 安装完,就ok了! 】 但却出现了无法安装和复制adcjavas.inc 再找错 .找到c: \windows\inf\mdac.inf 2.选中,点鼠标右键,选择安装 3.提示需要adcjavas.inc文件,选择来源: C: \WINDOWS\ServicePackFiles\i386 4.竟然出现复制错误: 安装程序无法复制文件adcjavas.inc(换其它电脑安装时没有发现问题) ...别急,继续找解决办法... 5.原来是Windows安全资料库出现问题,用如下命令修复: esentutl/pC: \Windows\security\database\secedit.sdb 6.再安装mdac.inf,一切顺利... 曲折后我终于成功 看到网上很多朋友在查找使用VB.net如何对DBF、XLS等常用数据文件进行访问,特别写了个小程序,来演示一下。 由于对具体数据文件的操作已经被封装到了oledb中,所以对数据文件的操作在vb。 net的代码是一样的,学要我们做的就是为oldb连接字符串设置为正确连接字符串就行了。 有个网站 本实例支持dbf文件、Excel、Access(含2007版)文件的支持 文章出处: 飞诺网 (): ImportsSystem.Data.OleDb 002 PublicClassForm1ClassForm1 003 DimdbfconnAsOleDb.OleDbConnection=NewOleDb.OleDbConnection 004 PrivateSubButton1_Click()SubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click 005 'dbf文件操作 006 ' 007 Dimpath,FileNameAsString 008 Me.OpenFileDialog1.Title="选择dbf文件" 009 Me.OpenFileDialog1.Filter="dbf文件|*.dbf" 010 IfMe.OpenFileDialog1.ShowDialog()=Windows.Forms.DialogResult.OKThen 011 path=System.IO.Path.GetDirectoryName(OpenFileDialog1.FileName) 012 FileName=System.IO.Path.GetFileName(OpenFileDialog1.FileName) 013 014 FileName=Microsoft.VisualBasic.Left(FileName.ToUpper,FileName.Length-4) 015 016 017 DimconnAsString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&path&";ExtendedProperties=dBASEIV;UserID=Admin;Password=;" 018 019 'DimconnAsString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=e: mp;ExtendedProperties=dBASEIV;UserID=Admin;Password=;" 020 DimdbfconnAsOleDb.OleDbConnection=NewOleDb.OleDbConnection 021 dbfconn.ConnectionString=conn 022 023 'DimcmdAsString="select*fromw" 024 DimcmdAsString="select*from"&FileName 025 DimadapterAsNewOleDbDataAdapter(cmd,dbfconn) 026 DimtopicsAsNewDataSet 027 adapter.Fill(topics) 028 Me.DataGridView1.DataSource=topics.Tables(0) 029 Me.DataGridView1.Refresh() 030 EndIf 031 032 033 EndSub 034 035 PrivateSubopen_excel_Click()Subopen_excel_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlesopen_excel.Click 036 Dimpath,FileName,FileExnameAsString 037 DimconnAsString 038 Me.OpenFileDialog1.Title="选择Excel文件" 039 Me.OpenFileDialog1.Filter="Excel文件|*.xls*" 040 IfMe.OpenFileDialog1.ShowDialog()=Windows.Forms.DialogResult.OKThen 041 path=System.IO.Path.GetFullPath(OpenFileDialog1.FileName) 042 FileName=System.IO.Path.GetFileName(OpenFileDialog1.FileName) 043 FileExname=System.IO.Path.GetExtension(OpenFileDialog1.FileName).ToUpper 044 FileName=Microsoft.VisualBasic.Left(FileName.ToUpper,FileName.Length-4) 045 046 IfFileExname="XLSX"Then 047 048 conn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&path&";ExtendedProperties='Excel8.0;HDR=Yes;IMEX=1';" 049 Else 050 conn="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="&path&";ExtendedProperties='Excel12.0;HDR=YES';" 051 052 EndIf 053 054 055 dbfconn.ConnectionString=conn 056 '获取数据表列表 057 Dimtable_listAsData.DataTable=GetSchemaTable(dbfconn,"TABLE") 058 059 '在combbox列表控件中显示数据库中包含的数据表 060 061 Me.cb_table_list.DataSource=table_list.DefaultView 062 Me.cb_table_list.ValueMember="TABLE_NAME" 063 Me.cb_table_list.DisplayMember="TABLE_NAME" 064 065 EndIf 066 EndSub 067 068 069 PrivateFunctionGetSchemaTable()FunctionGetSchemaTable(ByValconnectionAsData.OleDb.OleDbConnection,ByValTypeAsString) 070 '获取数据表列表 071 'Type有: "TABLE,VIEW,ACCESSTABLE,SYSTEMTABLE", 072 073 Type=Type.ToUpper 074 connection.Open() 075 Dimtable_listAsData.DataTable 076 table_list=connection.GetOleDbSchemaTable(Data.OleDb.OleDbSchemaGuid.Tables,NewObject(){Nothing,Nothing,Nothing,Type}) 077 connection.Close() 078 Returntable_list 079 EndFunction 080 081 PrivateSubtable_list_SelectedIndexChanged()Subtable_list_SelectedIndexChanged(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handlescb_table_list.SelectedIndexChanged 082 ''获取数据表的内容 083 'MsgBox(Me.cb_table_list.SelectedValue) 084 IfMe.cb_table_list.SelectedValue.ToString<>"System.Data.DataRowView"Then 085 DimcmdAsString="select*from["&Me.cb_table_list.SelectedValue.ToString&"]" 086 DimadapterAsNewOleDbDataAdapter(cmd,dbfconn) 087 DimtopicsAsNewDataSet 088 adapter.Fill(topics) 089 Me.DataGridView1.DataSource=topics.Tables(0) 090 Me.DataGridView1.Refresh() 091 EndIf 092 093 EndSub 094 095 PrivateSubOpen_Access_Click(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 通过 DAO 访问 Access 数据库
![提示](https://static.bdocx.com/images/bang_tan.gif)