VB与Access数据库相关操作

上传人:飞*** 文档编号:35854053 上传时间:2018-03-21 格式:DOC 页数:13 大小:434.50KB
返回 下载 相关 举报
VB与Access数据库相关操作_第1页
第1页 / 共13页
VB与Access数据库相关操作_第2页
第2页 / 共13页
VB与Access数据库相关操作_第3页
第3页 / 共13页
VB与Access数据库相关操作_第4页
第4页 / 共13页
VB与Access数据库相关操作_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《VB与Access数据库相关操作》由会员分享,可在线阅读,更多相关《VB与Access数据库相关操作(13页珍藏版)》请在金锄头文库上搜索。

1、VBVB 与数据库:与数据库:VB 访问数据库的方式很多,也很灵活,这是 VB 的一大优点,也体现了 VB本身自由环境的精神,提供了简捷方便的界面,更重要的是提供了很多有用的控件,我们可以直接使用控件就可以完成很多复杂的设计。VB 本身是面向对象的的语言,所以操作起来也非常简单,特别是对控件的使用比起 VC+来相当的方便。VB 支持的 Access 格式是 97 格式的,可以通过 VB 提供的环境建立数据库这种数据库直接可以用于 VB 程序设计,不需要转换格式。建库过程为:外接程序-可视化数据管理器-文件-新建-Microsoft Access-Version 7.0 MDB(7)在接下来弹出

2、的文件框中写好数据库的名称和选择数据库的存储位置,最后点击保存,这样一个数据库就建立好了。视图如下所示: 接下来要建立自己的表,鼠标选中 Properties 如上,右键-新建表操作完上面这个表后点击生成表,一个表就建立了.按照同样的方式可以建立其他的表以及查询,在做到有关多表查询的程序设计是离不开建立一个查询这种操作,在 sql server 里面还可以通过新建视图的来达到相同的目的,但是在Access 里面没有视图。接下来是要建立程序与数据库的联系,我把它分为使用控件和不使用控件两类。第一类:不使用控件第一类:不使用控件直接定义 Database 和 Recordset 对象,不过使用之前

3、要添加库:Microsoft DAO 3.51 Object Library 。在打开的 VB 界面上 按工程-应用- Microsoft DAO 3.51 Object Library 就可以添加成功。以下是建立连接的关键代码。下面这两句属于模块级变量,在工程管理器中的右键-添加-添加模块添加模块Public db As DatabasePublic rsData As Recordset接下来在程序的任何地方都可以使用以下代码打开数据库和数据库表SetSet dbdb = = OpenDatabase(“DatabasePath”)OpenDatabase(“DatabasePath”)

4、打开数据库打开数据库DatabasePath 是数据库所在位置的路劲可以是绝对和相对路劲SetSet rsDatarsData = = db.OpenRecordset(“TableName“)db.OpenRecordset(“TableName“) 打开数据库表打开数据库表TableName 是数据库中存在的一个表名通过以下代码可以关闭数据库表和数据库,一般是先关闭数据库表再关闭数据库本身:rsData.closedb.close这样就可以在程序的其他地方操作数据库了。 直接通过数据环境设计器(Data Environment)来连接数据库,在属性窗口中随便选中一个东西,右键-添加- Da

5、ta Environment 就会弹出如下的界面:选中 Connetion1 右键-属性将出现如下的界面这个界面有点熟悉,很像 Adodc 的连接方式,其实原理是一样的,按照上面的方式操作就可以了。接下来再次选中 Connection1,右键-添加命令就会出现Command1,然后选中 Comaand1 右键-属性就会出现下面的界面:在上表中数据库对象选择表,然后再对象名称中就会自动出现数据库中的表选择自己需要的表,点击应用-确定就 OK 了。然后展开 Comaand1 就可以看到表的各个属性列的信息了。这样就可以通过一种简捷的方式建立窗体上的控件与数据库的表的联系了,在这里甚至不用自己画控件

6、,新建一个空白窗体,同时打开窗体和上面的页面,选中 Command1 一直按住鼠标左键拖动到新建窗体上,这样窗体上就会有相应的控件出现,这些控件已经和数据库表连接好了,只要调整一下位置和大小就可以了,不需要手动连接。如下图所示:上面已经完成与数据库的“通信“了,接下来程序怎么写呢,下面是基于上面操作操作数据库的代码:使用 DataEnvironment1.rsCommand1 可以操作表中数据,它作为一个记录集对象Private Sub CmdNext_Click() 将记录指针向后移动If DataEnvironment1.rsCommand1.EOF ThenDataEnvironment

7、1.rsCommand1.MoveFirstElseDataEnvironment1.rsCommand1.MoveNextEnd IfEnd Sub到这里突然想到 VB 还为我们提供了一个更快的生成完整“窗体”的功能。通过“外接程序”打开一个数据库之后,在“实用程序”程序里面有个“数据窗体设计器” ,如下图所示单击“数据库窗体设计器”出现下面界面完成界面的内容设计后,单击“生成窗体” ,这样一个窗体就诞生了,而且还有添加删除和修改等功能,几乎是“完美的”了。基于上述设置所生成的窗体如下第二类:使用控件第二类:使用控件使用 Data 控件,次控件默认是在工具箱里的,不需要添加通过 Data 控

8、件的 DatabaseName 属性连接数据库可以相对和绝对路劲,通过RecordSourse 属性连接数据库表,在属性窗口里面即可直接设置。但是这样做存在一个问题,在 Form_Load 函数里面不能使用 Data 控件的记录集 RecordSet 来操作数据库,这也是 Adodc 控件比 Data 控件要强大的地方之一。这种情况可以通过另一种方式解决,就是把对 Data 控件的连接放在窗体装载函数中,这样在之后的任何地方都可以访问。使用 Adodc 控件,通过 工程-部件-Microsoft ADO Data Control 6.0(OLEDB)添加此控件。选中此控件,右键-ADODC 属

9、性进入属性页就可以设置 Adodc 与数据库的连接了,如下图所示:点击生成将出现如下对话框,按照图示选择点击下一步后,出现选择好数据库后,点击测试连接,如果弹出测试连接成功会有提示。最后点击上图的确定,数据库的连接完成了。接着点击属性页中的记录源,命令类型选择 2 adCmdTable,表或存储过程名称中的下来框就会自动列出数据库里的表和查询。这样就完成 Adodc 与数据库的连接了。另外也可以像 Data 控件一样使用程序来连接数据库,如下面的代码:Adodc1.ConnectionString=“Provider=Microsoft.Jet.OLEDB.4.0;Password=;Data

10、Source=“Persist Security Info=True“Adodc1.RecordSource = “SELECT * FROM 表名“Adodc1.RefreshVCVC 与数据库:与数据库:我使用 VC 的 MFC 来实现对 Access 数据库的连接,感觉比 VB 要复杂得多,不过整体来说 VC 功能更强大。虽然是复杂了点,但是感觉很“安全” 。目前我只使用两种方式访问数据库。一种是使用 C+的动态链接库动态加载 ADO“控件”这个控件不是 VB 中那种有形的控件,只是一种称呼,其实全是程序。还有一种就是使用 MFC 自带的基类来定义操作数据库和记录集的对象,只要包含相关头

11、文件就可以了。第一种:导入动态链接库,加载第一种:导入动态链接库,加载 adoado默认情况下 ado 动态链接库是存放在“C:Program FilesCommon FilesSystemadomsado15.dll“目录下的。将下面这句话写到 Stdafx.h 头文件中#import “C:Program FilesCommon FilesSystemadomsado15.dll“ no_namespace rename(“EOF“,“adoEOF“)rename(“BOF“,“adoBOF“)这样就可以加载 ADO 控件了,在编译的时候会有一个警告:warning C4146: unar

12、y minus operator applied to unsigned type, result still unsigned不过这个警告可以不用管它,这是允许的。接下来分别定义连接对象和记录对象用来连接数据库和数据库表。_ConnectionPtr m_pConnection; /连接对象_RecordsetPtr m_pRecordset; /记录对象以下是 VC 通讯录中实现连接和退出连接的相关函数代码:void CADODlg:OnInitADOConn() /连接数据库 try /创建连接对象实例 m_pConnection.CreateInstance(“ADODB.Connec

13、tion“); /设置连接字符串 CString strConnect=“DRIVER=Microsoft Access Driver (*.mdb); uid=;pwd=;DBQ=shujuku.mdb;“; /shujuku.mdb为任意存在的数据名 /使用Open方法连接数据库 m_pConnection-Open(_bstr_t)strConnect,“,“,adModeUnknown); catch(_com_error e) AfxMessageBox(e.Description(); void CADODlg:AddToGrid() /此函数将数据库表中的信息显示在列表控件中 /

14、连接数据库 OnInitADOConn(); /设置查询字符串 _bstr_t bstrSQL = “select * from employees order by 编号 desc“; /SQL语句 /创建记录集指针对象实例 m_pRecordset.CreateInstance(_uuidof(Recordset); /打开记录集 m_pRecordset-Open(bstrSQL,m_pConnection.GetInterfacePtr(), adOpenDynamic,adLockOptimistic,adCmdText);while(!m_pRecordset-adoEOF) m_

15、Grid.InsertItem(0,“); m_Grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset-GetCollect(“编号“);m_Grid.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset-GetCollect(“姓名“);m_Grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset-GetCollect(“性别“);m_Grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset-GetCollect(“学历“);/将

16、记录集指针移动到下一条记录 m_pRecordset-MoveNext(); /断开数据库连接 ExitConnect();void CADODlg:ExitConnect() /关闭记录集和连接if(m_pRecordset!=NULL) m_pRecordset-Close(); m_pConnection-Close(); 看上去确实很烦人的,不过代码还是很整齐的,也是有条理的。第二种:第二种:引入头文件引入头文件#include先定义数据库对象和记录集对象如下:先定义数据库对象和记录集对象如下:CDaoDatabase *pDstDatabase; /数据库对象CDaoRecordset *pDstRecordset; /记录集对象以下是连接数据库的函数代码以下是连

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号