ws软件开发平台,Visual Basic专业版提供了对数据库应用的强大支持。尤其提供了使用数据控件和绑定控制项,使用数据库存取对象变量(Data Access Object Variable),直接调用ODBC 20 API接口函数等三种访问数据库的方法。对其标准内置的Ms Access数据库,它可以提供不弱于专业数据库软件的支持,可以进行完整的数据库维护、 *** 作及其事务处理。在VB中,将非Access数据库称为外来数据库。对于FoxPro、dBASE、Paradox等外来数据库。虽然借助VB的Data Manager 能够对这些数据库进行NEW、OPEN、DESIGN、DELETE等 *** 作,但在应用程序的运行状态中并不能从底层真正实现这些功能。本文从使用数据库存取对象变量的方法出发,实现了非Access格式数据库(以FoxPro数据库为例)的建新库、拷贝数据库结构、动态调入等 *** 作,阐述了从编程技巧上弥补VB对这些外来数据库支持不足的可行性 。
一 、 VB数据库的体系结构具体的VB的数据库结构。
VB数据库的核心结构是所谓的MicroSoft JET数据库引擎,JET引擎的作用就像是一块"面 板",在其上可以插入多种ISAM(Indexed Sequential Access Method,即索引顺序存取方 法) 数据驱动程序。JET引擎为Access格式数据库提供了直接的内部(build-in)支持,这就是VB对Access数据库具有丰富支持的真正原因。
VB专业版中提供了FoxPro、dBASE(或 Xbase)、Paradox、Btrieve等数据库的ISAM驱动程序,这就使得VB能支持这些数据库格 式。另外,其他的许多兼容ISAM的驱动程序也可以通过从厂商的售后服务得到。因而从理论上说,VB能支持所有兼容ISAM的数据库格式(前提是只需获得这些数据库的ISAM驱动接口程序)。
由上可见,Ms JET引擎实质上提供了:一个符合ANSI标准的语法分析器;为查询结果集的使用而提供的内存管理功能;同所支持的数据库的外部接口;为应用代码提供的内部接口。实际上,在VB中从一种数据库类型转化为另一种数据库类型几乎不需要或只需要很少的代码修改。而且,尽管dBASE、Paradox本身的DDL (Data Definition Language,即数据定义语言)和DML(Data Manipulation Language,即数据 *** 纵语言)是非结构化查询的,但它们仍然可以使用VB的SQL语句和JET引擎来 *** 纵。
从VB的程序代码的角度来看,ODBC,ISAM驱动程序以及Ms Access数据库的整个外部结构够可以统一为一个一致的编程接口。也即是说,提供给VB应用程序员的记录集对象视图同所使用的数据库格式及类型是相互独立的。即对FoxPro等数据库仍然可以使用众多的数据库存取对象变量,这就为非Access数据库的访问提供了最重要的方法。
二 、使用非Access数据库时的参数设置及配置文件的参数读取如果在VB的程序中使用了数据库的 *** 作,将应用程序生成EXE文件或打包生成安装程序后,则必须提供一个配置 (INI)文件,在INI文件中可以对不同类型的数据库进行设置。如果找不到这个INI文件, 将会导致不能访问数据库。通常情况下,INI文件的文件名和应用程序的名称相同,所以如果没有指明,VB的程序会在Windows子目录中去找和应用程序同名的INI文件。可以使用VB中的SetDataAccessOptions语句来设置INI文件。
SetDataAccessOptions语句的用法如下:SetDataAccessOptions 1 ,IniFileName其中IniFileName参数指明的是INI文件的带路径的文件名。值得注意的是,当应用程序找不到这个INI文件时,或在调用 OpenDataBase函数时对其Connect参数值没有设定为VB规定的标准值,如对FoxPro 25格式设定为了" FoxPro;"(应为" FoxPro 25; "),或者没有安装相应的ISAM驱动程序,则此时VB会显示一条错误信息" Not Found Installable ISAM "。通常,INI文件在应用程序分发出去以前已经生成,或者在安装时动态生成,也可以在应用程序中自己生成。 通常这种 INI文件中有" [Options]"、"[ISAM]"、" [Installed ISAMs]"、"[FoxPro ISAM]"、"[dBASE ISAM] " 、" [Paradox ISAM] "等设置段,对于一个完整的应用程序则还应有一个属于应用 程序自己的设置段如" [MyDB]”。可在其中设置DataType、Server、DataBase、 OpenOnStartup、DisplaySQL、QueryTimeOut等较为重要的数据库参数,并以此限定应用程序一般的运行环境。 Windows API接口函数在Kernelexe动态链接库中提供了一个OSWritePrivateProfileString函数,此函数能按Windows下配置文件(INI)的书写格式写入信息。
在通常情况下,应用程序还需要在运行时读取配置文件内相关项的参数。比如PageTimeOut(页加锁超时时限)、MaxBufferSize(缓冲区大小)、LockRetry(加锁失败时重试次数)等参数,通过对这些参数的读取对应用程序运行环境的设定、潜在错误的捕获等均会有很大的改善。
设此应用程序的配置文件为MyDBINI,则具体过程如下:Funtion GetINIString$( Byval Fname$ ,Byval szItem$ ,Byval szDeFault$ ) ' 此自定义子函数实现INI 文件内设置段内参数的读取Dim Tmp As String,x As Integer Tmp = String( 2048,32 ) x = OSGetPrivateProfileString(Fname$,szItem$ , szDefault$,Tmp,Len(Tmp) ," MyDBINI " ) GetINIString = Mid$( Tmp,1,x ) End
Function以下这些函数的声明可写在模块文件内,且每个函数的声明必须在一行内Declare Function OSGetPrivateProfileString% Lib "Kernel" Alias "GetPrivateProfileString" (ByVal AppName$, ByVal KeyName$, ByVal keydefault$, ByVal ReturnString$, ByVal NumBytes As Integer, ByVal FileName$) Declare Function OSWritePrivateProfileString% Lib "Kernel" Alias "WritePrivateProfileString" (ByVal AppName$, ByVal KeyName$, ByVal keydefault$, ByVal FileName$) Declare Function OSGetWindowsDirectory% Lib "Kernel" Alias "GetWindowsDirectory" (ByVal a$, ByVal b%) Sub Form1_Load( ) Dim st As String Dim x As Integer Dim tmp As String tmp = String$( 255, 32 ) '
INI文件内为各种数据库格式指明已安装的相应ISAM驱动程序x = OSWritePrivateProfileString(" Installable ISAMS", "Paradox 3X", "PDX110DLL", "MyDBINI" ) x = OSWritePrivateProfileString( "Installable ISAMS", "dBASE III", "XBS110DLL", "MyDBINI" ) x = OSWritePrivateProfileString( "Installable ISAMS", "dBASE IV", "XBS110DLL", "MyDBINI" ) x = OSWritePrivateProfileString( "Installable ISAMS", "FoxPro 20", "XBS110DLL", "MyDBINI" ) x = OSWritePrivateProfileString( "Installable ISAMS", "FoxPro 25", "XBS110DLL", "MyDBINI" ) x = OSWritePrivateProfileString( "Installable ISAMS", "Btrieve", "BTRV110DLL", "MyDBINI" ) x = OSWritePrivateProfileString( "dBase ISAM", "Deleted", "On", "MyDBINI" ) ' 指明 INI文件的位置x = OSGetWindowsDirectory( tmp, 255 ) st = Mid$( tmp, 1, x ) SetDataAccessOption 1, st + "/mydbini" '获得INI文件一些参数 gwMaxGridRows = Val(GetINIString( " MyDBINI " ,"MaxRows", "250" )) glQueryTimeout = Val(GetINIString( " MyDBINI " ,"QueryTimeout", "5" )) glLoginTimeout = Val(GetINIString( " MyDBINI " ,"LoginTimeout", "20" )) End Sub
三 、数据存取对象变量对外来数据库编程的方法及其实例在VB专业版数据库编程的三种方法中,第二种-使用数据库存取对象变量(DAO)的方法最具有功能强大、灵活的特点。 它能够在程序中存取ODBC 20的管理函数;可以控制多种记录集类型:Dynaset,Snapshot 及Table记录集合对象;可以存储过程和查询动作;可以存取数据库集合对象,例如 TableDefs,Fields,Indexes及QueryDefs;具有真正的事物处理能力。因而,这种方法对数据库处理的大多数情况都非常适用。
由于VB中的记录集对象与所使用的数据库格式及类型是相互独立的,所以在非Access数据库中也可以使用数据库存取对象变量的方法。因而 对FoxPro等外来数据库而言,使用数据库存取对象变量的方法同样也是一种最佳的选择。 有一点需要注意的是,VB的标准版中仅能使用数据控件(Data Control)对数据库中的记录进行访问,主要的数据库存取对象中也仅有Database、Dynaset对象可通过数据控件的属 性提供,其它的重要对象如TableDef、Field、Index、QueryDef、Snapshot、Table等均不能在VB的标准版中生成,所以使用数据存取对象变量的方法只能用VB 30以上的专业版。
(一)、非Access数据库的新建及库结构的修改VB专业版中的数据库存取对象变量可以分为两类,一类用于数据库结构的维护和管理,另一类用于数据的存取。其中表示数据库结构时可以使用下面的对象:
DataBase、TableDef、Field、Index,以及三个集合 (Collection): TableDefs、Fields和Indexes 。每一个集合都是由若干个对象组成的,这些数据对象的集合可以完全看作是一个数组,并按数组的方法来调用。一旦数据库对象建立后,就可以用它对数据库的结构进行修改和数据处理。对于非Access数据库,大部分都是对应于一个目 录,所以可以使用VB的MkDir语句先生成一个目录,亦即新建一个数据库。而每一个非 Access数据库文件可看作是此目录下的一个数据表(Table),但实际上它们是互相独立的。
下面是新建一个FoxPro 25格式数据库的程序实例。
Sub CreateNew ( ) Dim Db1 As database , Td As TableDefs Dim T1 As New Tabledef , F1 As New Field , F2 As New Field , F3 As New Field Dim Ix1 As New Index Dim Path As String Const DB_TEXT = 10 , DB_INTEGER = 3 ChDir "/" Path$ = InputBox( " 请输入新路径名: ", "输入对话框" ) MkDir Path$ ' 新建一个子目录Set Db1 = OpenDatabase(Path$, True, False, "FoxPro 25;") Set Td = Db1TableDefs T1Name =
"MyDB" '新建一个数据表,数据表名为MyDB F1Name = "Name" , F1Type = DB_TEXT , F1Size = 20 F2Name = "Class" , F2Type = DB_TEXT , F2Size = 20 F3Name = "Grade" , F3Type = DB_INTEGER T1FieldsAppend F1 '向数据表中添加这些字段T1FieldsAppend F2
就是用access建立一个数据库,步凑不外乎以下几个:\x0d\1、用access建一空数据库。\x0d\2、如果党员个人资料已经有excel形式的,在access文件栏用“获取外部数据(导入表)”即可,没有的话建立一个表。字段名自己根据需要定。如:编号、姓名、性别、家庭住址、入党时间、出生年月等等。\x0d\3、用sql语句(或在查询的设计视图中)建立需要的查询。\x0d\4、建立一个界面窗体,来管理或调用查询(可以用“宏”、也可用VBA),再建立需要格式的报表。\x0d\ 其它的,根据实际需要而定。
您问的是《access能不能使用程序设计语言》吗?能。
Access本身并不是一种编程语言,但是它可以与多种编程语言进行集成,例如VisualBasicforApplications、C#、Java等,通过编写代码来实现对Access数据库的 *** 作。因此,Access可以使用编程语言进行程序设计,实现自动化的数据处理、数据分析和数据报告等功能。
Access是由微软公司开发的一款关系型数据库管理系统软件,也是Office套件中的一个组件,其全称为MicrosoftOfficeAccess。
首先要将PDF转换为EXCEL格式,再导入Access数据库。
将PDF转换为EXCEL方法:请试用汉王PDF OCR81简体中文版的PDF识别软件,简单易用免费。网上有下载。下载安装汉王pdf ocr81,运行并打开PDF文件,如PDF的字号较小,在打开时请不用默认分辨率,自行设定最高分辨率为600DPI,逐页打开PDF文件后,可直接进行识别,但最好是进行水平调整,手工设置识别区域,分出文字区、表格区和区,然后才开始识别,这样的识别率较高,识别后进行校稿,对照原稿校正错别字。最后是选择已识别转换校对好的页面,在菜单-输出-到指定输出文件格式,可输出为TXT、RTF、XLS等文件格式。如要输出EXCEL格式,请选择XLS格式,用EXCEL打开后,按需要编辑一下即可。
以上就是关于求access 数据库全部的内容,包括:求access 数据库、如何建立一个简单的 access 数据库、access不能使用程序设计语言等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)