VB如何连接ACCESS数据库 |
由于VB 本身并不带有 可以 拜访数据库的类,所以我们需求 引用一个包括能 拜访数据库的类来 使用数据库.这里我们采纳ADODB,相比DAO和能 拜访数据库的API来说,它比DAO更灵便,更 壮大;而比起API,它更 方便易用,更 合适初学者.而Access数据库比起SQL,也 绝对 方便了众多,且 可以满足中小型 利用程序的需求,所以我们在 使用数据库时, 取舍了Access. 就像 使用文本文件来存储数据一样,我们需求先设计好数据 构造,只是在设计Access数据库的 构造时,我们需求用到其它的程序来进行 详尽的规划. 提议采纳的程序是office中的Access或VB自带的VISDATA. 当数据库设计好了以后,我们 可以开始数据库编程了. 首先,我们需求 引用ADO.具体的 步骤是,在工程 -- 引用 中,找到Microsoft ActiveX Data Object *.* Library,这里的*.*是指的时ADO的版本号,普通来说, 利用程序或ActiveX控件都 存在向下兼容性,所以我们尽可能 取舍 比较新的版本.以确保程序在能 鉴别旧版本Access的同时,也能 鉴别较新版本的Access. 而后我们需求在程序中 缔造一个对象.就好比我们在窗体上增加一个FileBox 威力看到文件名一样,惟独 缔造了ADO对象,我们 威力够 拜访数据库.常用的对象有两个,Connection和Recordset. 缔造这两个对象的具体 步骤是: 1.在 引用后, 使用New 要害字,如 Private Conn As New ADODB.Connection Private Reco As New ADODB.Recordset 2.在没 引用时,用CreateObject 缔造对象: Dim Conn,Reco Set Conn = CreateObject(ADODB.Connection) Set Reco = CreateObject(ADODB.Recordset) 缔造了对象之后,下一步我们要做的便是 打开数据库了. 先看下面的代码, 可以 顺利的 打开数据库. Conn.open Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Main.mdb 这句代码 打开了D盘中的Main.mdb这个数据库. Connection.Open 步骤的第一个参数是衔接代码,它将传递给系统的数据库引擎.前半 部分Provider=Microsoft.Jet.OLEDB.4.0,它 示意了数据库的类型.不同的数据库可能会不同.后半句Source=d:\main.mdb它 示意了数据库所在的绝对路径. 打开数据库之后,还要 打开表.如果数据库中有一个表,表名为Users,字段有两个,一个为消费者名,一个为密码.那么看以下代码. 1.想返回Users中,[消费者名]为上一年烟花的[密码] Recordset.open Select 密码 From Users Where 消费者名='上一年烟花',Connection,1,1 之后我们就 可以把消费者输入的密码进行 比较,看是不是同意登录. If Recordset.eof and Recordset.bof then Msgbox 消费者不存在!,16 Else If PassWord =Recordset(密码).value then msgbox 登录 顺利!,64 Else msgbox 密码 舛误!,32 End If End If Recordset.Close 2. 假如Admin已经 顺利登录系统,我们想把所有的消费者名和密码都显示出来 Recordset.open Select * From Users,Connection,1,1 这时,表已经被 打开,我们就用以下代码把它显示出来. Do whlie Not Recordset.eof Print 消费者名: & Recordset(消费者名).value & 密码: & Recordset(密码).value Recordset.MoveNext Loop Recordset.Close 由以上代码示例 可以看出, 打开表时, 可以只 打开其中的一个字段,也 可以 打开所有.第一个参数是SQL语句. Select [字段名] From 表名 [Where 条件] 这里的条件 可以省略.且字段名也 可以用*来 接替所有字段. 需求 留神的是,如果你用(1)中的 步骤 打开,那么(2)后面显示的代码就不能再用在(1)中.由于(1)里并没有 打开[消费者名]字段,所以这一句Recordset(密码)就没有值存在,还有可能出错. 后面的条件, 可以用=、>、<等运算符. 比方 Where ID > 32.(这里 假如[ID]为数字型.) 这是 打开的 部分.第二个很主要的 部分便是 查问记录. 数据库它并不是把所有记录所有放到一个变量中备用的.而是以目前记录的 模式来返回一个值.所以我们想从中找到有用的信息,就必须要对信息进行定位/筛选. 定位: 移动到下一条 Recordset.MoveNext 移动到上一条 Recordset.MovePrevious 移动到最终一条 Recordset.MoveLast 移动到第一条 Recordset.MoveFrist 移动到某一条 Recordset.Move Number 筛选: Recordset.Find 条件 如:[用 步骤(2) 打开表之后] Private Sub Command1_Click() Recordset.Find 消费者名= & text1.text If Recordset.Eof <> True Then Msgbox 该消费者的密码是: & Recordset(密码).value,64 Else Msgbox 未找到该消费者的 材料!,16 End If End Sub MoveNext 惟独当Eof不为True时,才可用,不然 产生 舛误.而MovePrevious刚是Bof不为True时.... 而 惟独Eof 和 Bof中有一个不为真时,也便是说 惟独有一条记录时,它就 可以 使用. Find 步骤中的条件和Open时的第一个参数中的条件表述 步骤是 彻底 统一的.当在已 打开的记录集中,找不到该记录时,Eof为True.找到则目前的值便是 相符条件的记录. 第三个 部分便是增加/ 批改记录. 批改记录很 方便,先按以上的 步骤找到 有关记录之后,给记录赋值就 可以了. 比方:[( 批改密码)按 步骤(1) 打开表之后] Recordset(密码).value = 123456 Recordset.Updata 需求 留神的便是,在 批改 实现后,要调用Updata 步骤,这样 批改 威力生效. 而增加记录则 可以用以下代码来实现: Recordset.addnew Recordset(消费者名).value = Admin Recordset(密码).value = Admin Recordset.Updata 这里,先要调用Addnew 步骤,增加一条新记录, 而后对这个新记录中的各字段赋值,最终再调用Updata 步骤. 到这里就差不多了,最终说一下上面提到的几个 步骤. Recordset.Open SQL语句,数据源,游标类型, 打开 步骤 SQL语句不用说了,便是Select那啥的, 目标便是按要求从表中返回数据 数据源便是一个 打开之后的Connection对象. 填1就 可以了 打开 步骤对应了几个常数,具体哪几个 可以从对象阅读器里看 。 对应数值的 意思: 1 只读 2 独占 3 可写 4 自已可写,别人可读 。 Connection.open 衔接代码,服务器消费者名,密码 。 这里的衔接代码就不在多说了,服务器消费者名,密码惟独在衔接远程数据库时才用到 。 |