永发信息网

VB能够连接access数据库吗?如何连接?

答案:2  悬赏:10  手机版
解决时间 2021-08-17 19:12
VB能够连接access数据库吗?如何连接?
最佳答案

VB与Access连接的方法(Ado连接)
一、建立数据库
  因为在Visual Basic 6.0中有的数据库连接方式不支持Access 2000版本格式的数据库,为了便于说明问题,本文所提的数据库以Access 97版本数据库为例。
  在Microsoft Access 97中建立一个数据库,如:ssgl.mdb,并设置密码,如:“1234”,再将数据库文件和VB中创建的工程文件放在同一目录下。
  如果用户的计算机上只有Access 2000的话,可以先在Access 2000中建立ssgl.mdb数据库,并设置密码,再用Access 2000中的“数据库实用工具”将数据库转换成Access 97版本的格式。
  当然也可以直接在Visual Basic 6.0集成开发环境中通过“可视化数据管理器”来创建数据库,再到Access 97中设置密码。
  通过对数据库文件设置密码,一般情况下,非法用户就不能用常规的手段打开数据库了,对数据库中的信息起到了一定的安全和保密作用。 
  二、连接加密的Access数据库
  在Visual Basic 6.0中,要建立与数据库的连接,可采用的技术手段很多,如:数据控件、数据对象、数据环境设计器等。开发人员可以根据自身的条件和用户的需求进行选择。
  限于篇幅,下面只介绍加密的Access数据库与没有加密的Access数据库在连接时的不同之处。关于没有加密的数据库的连接及访问的方法读者可以参阅其它资料。
  1、使用控件
  ① Data控件
  Data控件是Visual Basic 6.0中的一个内置数据控件,可以通过设置Data控件的connect、DatabaseName、RecordSource属性实现对数据库的连接和访问。 通过Data控件连接加密的数据库的方法有两种:
  一种方法是在设计状态时,在“属性窗口”中将Data控件的connect属性的缺省值”Access”改为”; pwd=1234”即可,其它属性的设置方法与没有加密的Access数据库的连接相同。
  另一种方法是在运行时,通过代码对connect属性赋值来实现。如:
Data1.connect=”; pwd=1234”
Data1.DatabaseName=APP.path + “\ssgl.mdb” 
  其中,”1234”为Access数据库文件ssgl.mdb的密码,下同。
  ②Adodc控件
  Adodc控件是一个ActiveX控件,它使用Microsoft ActiveX Data Objects(ADO)创建到数据库的连接。使用Adodc控件之前,要先将Adodc控件添加到控件工具箱中。方法如下:在VB 6.0种选择“工程”菜单,再点击“部件”菜单项,在弹出的“部件”对话框中选中“Microsoft ADO Data Control 6.0(OLEDB)”选项即可。
  通过Adodc控件连接加密的数据库的方法也有两种:
  一种方法是在设计状态时,在“属性窗口”中,对Adodc控件的ConnectionString属性设置一个有效的连接字符串,并在连接字符串后增加上”; Jet OLEDB: DataBase password=1234”,再设置Adodc控件的CommandType、RecordSource的属性就可以创建到加密的数据库的连接了。
  另一种方法是在运行时,通过代码动态地设置ConnectionString、CommandType和RecordSource属性来创建连接。 只要在ConnectionString属性的有效连接字符串后增加上”; Jet OLEDB: DataBase password=1234”即可。
  2、使用数据对象
  ① DAO数据对象
  要能正确引用DAO数据对象来建立与数据库的连接,应先在VB集成开发环境中选择“工程”菜单,再点击“引用”菜单项,在弹出的“引用”对话框选择“Microsoft DAO 3.51 Object Library”选项来添加DAO数据对象类型库。
  接下来就可用如下代码来建立到加密的Access数据库ssgl.mdb的连接。
Dim db AS DataBase
Set db=OpenDataBase(App.path + “\ssgl.mdb” , False , False , ”  pwd=1234”) 
  ② ADO数据对象
  ADO是Microsoft推出的处理关系数据库和非关系数据库中信息的最新技术,也是Microsoft推崇的用于数据连接和访问的技术。在VB 6.0中,Adodc控件、ADO数据对象及DataEnvironment(数据环境设计器)都采用的是ADO技术,因而它们处理加密的Access数据库的方法类似。
  要能正确引用ADO数据对象,应在VB 6.0集成开发环境中选择“工程”菜单,再点击“引用”菜单项,在弹出的“引用”对话框中选中“Microsoft ActiveX Data Objects 2.1 Library”选项来添加ADO数据对象类型库。
  可用如下代码来建立到加密的Access数据库ssgl.mdb的连接。
Dim cnn AS ADODB.Connection
Dim rst AS ADODB.Recordset
Set cnn=New ADODB.Connection
Cnn.Provider= ”Microsoft.Jet.OLEDB.3.51”
Cnn.ConnectionString= ”Data Source=” & App.path & ”\ssgl.mdb;” & _
” Jet OLEDB: Database password=1234”
cnn.Open 
  ③ 使用DataEnvironment(数据环境设计器)
  有两种方法可以通过DataEnvironment连接到加密的Access数据库:
  一种方法是在设计状态时,在DataEnvironment的connection对象的ConnectionSource属性的有效连接字符串后加上” 
Jet OLEDB: Database password=1234” 
  另一种方法是在DataEnvironment_Initialize()事件中编写如下代码:
Private sub DataEnvironment_Initialize( )
Dim strconn AS string
Strconn=” Provider=Microsoft.Jet.OLEDB.3.51;” & _
”Data Source=” & App.path & “\ssgl.mdb;” & _
”; Jet OLEDB: Database password=1234”
DataEnvironment1.connection1.connectionstring=strconn
End sub
全部回答
一:建立一个Access型数据库,并在数据库中创建新表—即为附加表。通过设置 附加表的各属性值,使其与你所要访问的数据库建立链接关系。程序代码如下: DimDbasDatabase DimTdasNewTabledef SetDb=OpenDatabase("MYDB.MDB") Td.Connect="dBASE:DATABASE=c:\DATADIR" Td.SourceTableName="AU THOR" Td.Name="dBASEAuthorTable" Db.tabledefsAppendTd Db.close 二:设置INI文件路径。在VB的程序中使用了访问外来数据库操作,将应用程序生成EXE文件后,必须提供一个INI文件。若找不到这个INI文件,将会导致不能访问数据库,并出现“NOTFOUNDIN STOLLABKISAMS’的错误信息。设置INI文件路径后,VB的程序会在WINDOWS子目录中寻找与应用程序同名的INI文件。设置INI文件路径代码为: SetDataAccessOption1,“Path\Filename” 三:编辑.INI文件可对不同种类的数据库进行设置,下面为一INI文件代码: 〔Options〕 SystemDB=c: \MyPATH\SYSTEM.MDA 〔ISAM〕 PageTimeout=5 MaxBufferSize=128 LockRetry=20 CommitLockPetry=20 ReadAheadPages=16 〔InstallableISAMs〕 Paradox3.x=C:\VB\pdx110.DLL FoxPro2.0=C:\VB\xbs110.DLL FoxPro2.5=C:\VB\pdx110.DLL dBASE=C:\VB\pdx110.DLL dBASE=C:\VB\pdx110.DLL Btrieve=C:\VB\btrv110.DLL 〔ParadoxISAM〕 PageTimeout=600 ParadoxUsername=BaiUser ParadoxNetPath=P:\PDXDB\ CollatingSeguence=Ascii 〔dBASE〕 centry=off Data=American Mark=47 Deleted=on 这样通过访问新数据库MYDB.MDB和表“DBASEAU THORTABK”即可访问你所要访问的外来数据库了。 使用这种方法访问外来数据库应该注意的是,附加表在所加到的数据库中只是建立了一个链接关系,表的实际所在,仍然存在于原数据库中,该表在所附加到的数据库中被删除时,只是删掉了链接关系,实际的表并没有被删除。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎样点亮QQ游戏的所有图标
怎么和她进行第一次的准备
宜阳县洛阳韩城正宗羊肉汤在哪里啊,我有事要
这2个男人,该如何选择?
小学一年级造句子大全,儿童造句一年级
烽火战国cdkeyss是什么意思
雅马哈迅鹰上的速度表念迈还是码呢。?还有速
这个暑假炫舞每天下午都送什么呢?
广州到晋江大巴要多久,晋江原创网文章审核多
请问山东德州东边方向有个水库叫什么名字??
爱错一个人的伤感句子,祝愿远行求学求知励志
小归娘和小小老对 mp3
朋友与爱情那个重要
常宁市衡阳星星百货地址在哪里啊
、西丰哪里能兑换岛城金色年华的瓶盖呢
推荐资讯
科学题——电学1.当2A的电流通过某电热器时,
珠晖区衡阳协和母婴小儿推拿这个地址怎么能查
到广东去到那里做飞机
我是辽宁的我报的学校是黑龙江的!黑龙江大专
求一首DJ 是这么唱的 dj dj dj哟dj 是一首电
孟州市焦作清真东寺在什么地方啊,我要过去处
求林海雪原的号?
怎么样能了解一个内向看钱为重爱发脾气的男人
谁能把穿越火线的所有军衔的图发给我。也可以
I kinda dig it
全屏玩魔兽争霸YY的按F2说话就不管用了
在RT三角形ABC中,角ACB=90°,CD是AB边上的高,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?