用VB的代码创建Access数据库
vb连接access数据库及数据读写操作
ACCESS 数据库和VB 的连接Edited by Ryan 20221 、建立Access 数据库2 、启动VB,建立标准EXE图13 、添加ActiveX 控件鼠标指向任意VB 控件,单击右键,选择“部件(O)”,浮现图 3 所示界面图2图3选择部件“Microsoft ADO Data Control 6.0 (OLEDB)”,浮现如图4 所示控件图44、添加控件Adodc图54 、在控件Adodc 上添加数据源鼠标指向控件Adodc1,单击右键,选择“ADODC 属性”,弹出如图7 所示界面图6图7单击“生成(U). . . ”,弹出如图8 所示界面图8选择“Microsoft Jet 4.0 OLE DB Provider”,单击“下一步(N) >>”,弹出如图9 所示界面图9单击“. . . ”,添加数据源(第一步所建Access 数据库),如图10 所示图10单击“测试连接(T)”,浮现提示框,如图11 所示图11之后点击“确定”,退回到如图12 所示界面图12单击“记录源”,弹出如图13 所示界面图13在“命令类型”下,选择“1 - adCmdText”,在“命令文本 (SQL)”下,输入“Select * from test1”,最后单击“应用”,“确定”即可之后,进入程序书写部份程序部份需要注意接头形式及简单例子如下:Private Sub Command1_Click() ‘VB 按钮控件Dim mydb As New ADODB.Connection ‘定义新的数据库连接mydb.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\read database\test1\test1.mdb" ‘数据库绝对路径Dim rs As New ADODB.Recordset ‘定义数据库的一个对象mydb.Open ‘打开数据库rs.Open "select * from test1", mydb, 3, 3 ‘打开数据库中的表test1For i = 1 To 1 ! For 循环控制选择哪一行rs.MoveNextNext iMe.Text1.Text = rs.Fields(1).Value ‘读取指定行中的哪个数据给文本框rs.Update ‘数据显示rs.Close ‘关闭表End Sub。
VBA操作Access数据库的综合案例
VBA操作Access数据库的综合案例在本篇文章中,我将介绍一个基于VBA的综合案例,该案例涉及使用VBA操作Access数据库。
我们将通过一个具体的示例来展示如何利用VBA编写代码,以实现对Access数据库的读取、写入和更新等操作。
这个案例将帮助读者了解和学习如何使用VBA来操作Access数据库,并在实际应用中发挥作用。
首先,我们需要明确本案例的目标。
我们将创建一个学生信息管理系统,该系统可以用于记录学生的个人信息及其成绩。
我们将使用Access数据库来存储学生信息,然后通过VBA编写代码来实现对数据库的操作。
在开始编写代码之前,我们需要先创建一个Access数据库,并在其中创建一个名为"Student"的表格,该表格包含以下字段:学生ID、学生姓名、性别、年龄、班级、数学成绩、英语成绩、总分。
接下来,我们将通过VBA来实现对这个表格的各种操作。
我们首先需要在VBA中引用Microsoft Access Object库,这样才能使用Access的相关功能。
在VBA编辑器中选择"工具"->"引用",然后勾选上"Microsoft Access 16.0 Object Library"。
这样我们就可以使用Access的对象、方法和属性了。
接下来,我们可以开始编写代码。
我们将以以下功能为例进行说明:1. 添加新学生信息:我们可以通过以下代码向数据库中添加新的学生信息。
```vbaSub AddNewStudent()Dim db As DAO.DatabaseDim rs As DAO.Recordset'read student informationDim studentID As LongDim studentName As StringDim gender As StringDim age As IntegerDim className As String'connect to the databaseSet db = CurrentDb()Set rs = db.OpenRecordset("Student", dbOpenDynaset) 'input student informationstudentID = InputBox("Enter Student ID:")studentName = InputBox("Enter Student Name:")gender = InputBox("Enter Gender:")age = InputBox("Enter Age:")className = InputBox("Enter Class Name:")'add new record to the tableWith rs.AddNew!StudentID = studentID!StudentName = studentName!Gender = gender!Age = age!ClassName = className.UpdateEnd With'close the recordset and the databasers.Closedb.CloseSet rs = NothingSet db = NothingMsgBox "New student added successfully!"End Sub```上述代码首先连接到数据库,然后通过InputBox函数获取用户输入的学生信息,在表格中添加新的记录,最后关闭数据库。
(完整版)vb连接access数据库及数据读写操作
ACCESS数据库和VB的连接Edited by Ryan 20131、建立Access数据库2、启动VB,建立标准EXE图13、添加ActiveX控件鼠标指向任意VB控件,单击右键,选择“部件(O)”,出现图3所示界面图2图3选择部件“Microsoft ADO Data Control 6.0 (OLEDB)”,出现如图4所示控件图44、添加控件Adodc图54、在控件Adodc上添加数据源鼠标指向控件Adodc1,单击右键,选择“ADODC 属性”,弹出如图7所示界面图6图7单击“生成(U). . .”,弹出如图8所示界面图8选择“Microsoft Jet 4.0 OLE DB Provider”,单击“下一步(N) >>”,弹出如图9所示界面图9单击“. . .”,添加数据源(第一步所建Access 数据库),如图10所示图10单击“测试连接(T)”,出现提示框,如图11所示图11之后点击“确定”,退回到如图12所示界面图12单击“记录源”,弹出如图13所示界面图13在“命令类型”下,选择“1 - adCmdText”,在“命令文本(SQL)”下,输入“Select * from test1”,最后单击“应用”,“确定”即可之后,进入程序书写部分程序部分需要注意接头形式及简单例子如下:Private Sub Command1_Click() ‘VB按钮控件Dim mydb As New ADODB.Connection ‘定义新的数据库连接mydb.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\read database\test1\test1.mdb" ‘数据库绝对路径Dim rs As New ADODB.Recordset ‘定义数据库的一个对象mydb.Open ‘打开数据库rs.Open "select * from test1", mydb, 3, 3 ‘打开数据库中的表test1For i = 1 To 1 ! For循环控制选择哪一行rs.MoveNextNext iMe.Text1.Text = rs.Fields(1).Value ‘读取指定行中的哪个数据给文本框rs.Update ‘数据显示rs.Close ‘关闭表End Sub。
怎样用VB的代码创建Access数据库
怎样用VB的代码创建Access数据库怎样用VB的代码创建Access数据库用ADOX:'菜单“工程”--> "引用"--> Microsoft ADO Ext.2.7 for DDL ado Security' 建数据库:Private Sub Form_Load()Dim cat As ADOX.CatalogSet cat = New ADOX.Catalog'在当前目录下建立名为newdata的Access数据库cat.Create ( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + App.Path & "\newdata.mdb " + "; ")MsgBox "数据库已经创建成功!"End Sub' 建表:Private Sub Command1_Click()Dim cn As New ADODB.Connectioncn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "newdata.mdb;Persist Security Info=False "cn.Opencn.Execute "CREATE TABLE [aaa]([学生姓名]Text(20),[年龄]Integer,[成绩]Double) "cn.CloseEnd Sub'删表:Private Sub Command2_Click()Dim cn As New ADODB.Connectioncn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source== " & App.Path & "newdata.mdb;Persist Security Info=False "cn.Opencn.Execute "DROP TABLE [aaa] "cn.CloseEnd Sub/////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// ////////////////// Option ExplicitDim i As IntegerDim j As IntegerPrivate Sub Form_Load()'菜单“工程”--> "引用"--> "Microsoft ActiveX Data Objects 2.7 Library "'Microsoft ADO Ext.2.7 for DDL ado SecurityDim cat As ADOX.CatalogSet cat = New ADOX.Catalogcat.Create ( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\newdata.mdb " + "; ")MsgBox "数据库已经创建成功!"Dim tbl As ADOX.T ableSet tbl = New ADOX.Tabletbl.ParentCatalog = cat/doc/66407893.html, = "MyTable "'增加一个自动增长的字段Dim col As ADOX.ColumnSet col = New ADOX.Columncol.ParentCatalog = catcol.Type = ADOX.DataTypeEnum.adInteger ' // 必须先设置字段类型/doc/66407893.html, = "id "col.Properties( "Jet OLEDB:Allow Zero Length ").Value = False col.Properties( "AutoIncrement ").Value = Truetbl.Columns.Append col, ADOX.DataTypeEnum.adInteger, 0 '增加一个文本字段Dim col2 As ADOX.ColumnSet col2 = New ADOX.Columncol2.ParentCatalog = cat/doc/66407893.html, = "Description "col2.Properties( "Jet OLEDB:Allow Zero Length ").Value = False tbl.Columns.Append col2, ADOX.DataTypeEnum.adVarChar, 25'增加一个货币型字段Dim col4 As ADOX.ColumnSet col4 = New ADOX.Columncol4.ParentCatalog = catcol4.Type = ADOX.DataTypeEnum.adCurrency/doc/66407893.html, = "xx "tbl.Columns.Append col4, ADOX.DataTypeEnum.adCurrency '增加一个OLE字段Dim col5 As ADOX.ColumnSet col5 = New ADOX.Columncol5.ParentCatalog = catcol5.Type = ADOX.DataTypeEnum.adLongVarBinary/doc/66407893.html, = "OLD_FLD "tbl.Columns.Append col5, ADOX.DataTypeEnum.adLongVarBinary'增加一个数值型字段Dim col3 As ADOX.ColumnSet col3 = New ADOX.Columncol3.ParentCatalog = catcol3.Type = ADOX.DataTypeEnum.adDouble/doc/66407893.html, = "ll "tbl.Columns.Append col3, ADOX.DataTypeEnum.adDoubleDim p As ADOX.PropertyFor Each p In col3.PropertiesDebug.Print /doc/66407893.html, & ": " & p.Value & ": " & p.Type & ": " & p.AttributesNext'设置主键tbl.Keys.Append "PrimaryKey ", ADOX.KeyTypeEnum.adKeyPrimary, "id ", " ", " "cat.Tables.Append tblMsgBox "数据库表:" + /doc/66407893.html, + "已经创建成功!"Set tbl = NothingSet cat = NothingEnd Sub/////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// ////////////////// 本例中我们使用ADOX来创建Access数据库。
用VB的代码创建Access数据库
怎样用VB 的代码创建Access 数据库"引用"--> Microsoft ADO Ext.2.7 for DDL ado SecurityPrivate Sub Form_Load()Dim cat As ADOX.CatalogSet cat = New ADOX.Catalog'在当前目录下建立名为 newdata 的Access 数据库Comma nd1_Click() As New ADODB.Co nn ectioncat.Create ( "+ App.P ath &"\n ewdata.mdb " MsgBox End Sub"P rovider=Microsoft.Jet.OLEDB40;Data Source= "数据库已经创建成功! + ";") II "& App.Path cn.Open cn .Execute cn .Co nn ectio nStri ng= "P rovider=Microsoft.Jet.OLEDB40;Data &"n ewdata.mdb ;P ersist Security In fo=False " "CREATE cn .CloseEnd Sub '删表:Source= TABLE [aaa ]([学生姓名]Text(20),[年龄]Integer,[成绩]Double)" Private Sub Comma nd2_Click() Dim cn As New ADODB.Co nn ection "& App.Path cn.Opencn .Execute cn .Co nn ectio nStr in g= "P rovider=Microsoft.Jet.OLEDB40;Data & "n ewdata.mdb ;P ersist Security In fo=False "Source== cn .Close End Sub"DROP TABLE [aaa ]" ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Dim i As In teger Dim j As In tegerPrivate Sub Form_Load() Op tion Exp licit 菜单 工程"--> "引用"--> "Microsoft ActiveX Data Objects 2.7 Library "'Microsoft ADO Ext.2.7 for DDL ado Security Dim cat As ADOX.CatalogSet cat = New ADOX.Catalog cat.Create ( "P rovider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\newdata.mdb " + ";")用 ADOX:'菜单 工程”--> '建数据库:'建表:Private Sub Dim cnMsgBox "数据库已经创建成功!“ Dim tbl As ADOX.Tabletbl. Pare ntCatalog = "MyTable "'增加一个自动增长的字段Dim col As ADOX.Colu mncol2 .Paren tCatalog = "Descri ption "col2. Pro perties( "Jet OLEDB:Allow Zero Len gth ").Value = tbl.Colum ns.A ppend col2, ADOX.DataTy peE num.adVarChar, 25'增加一个货币型字段Dim col4 As ADOX.Colum ncol4 .P are ntCatalogcol4.T ype = ADOX.DataTypeEn um.adCurre ncy = "xx " tbl.Colum ns.Append col4, ADOX.DataT ypeEn um.adCurre ncy'增加一个OLE 字段Dim col5 As ADOX.Colum ncol5 .Paren tCatalogcol5.T ype = ADOX.DataTypeEnum.adL on gVarBi nary = "OLD FLD " tbl.Colum ns.Append col5, ADOX.DataT ypeEnum.adL on gVarBi nary '增加一个数值型字段Dim col3 As ADOX.Colum nSet col3 New ADOX.Colu mn col3 .Paren tCatalog catSet tbiNew ADOX.Tablecat Set colNew ADOX.Colu mn col. Pare ntCatalogcol.Type =ADOX.DataT ypeEn um.adI nteger = "id "cat //必须先设置字段类型 col. Prop erties( "Jet OLEDB:Allow ZeroLen gth ").Value = col. Prop erties( "Auto In creme nt ").Value= True tbl.Colum ns.Append col, ADOX.DataT ypeEn um.ad In teger,0 False '增加一个文本字段Dim col2 As ADOX.Colum nSet col2New ADOX.Colu mncat FalseSet col4New ADOX.Colu mncat Set col5New ADOX.Colu mn catADOX.DataTy peEn um.adDouble "ll "Next'设置主键tbl.Keys.A ppend"Pr imaryKey ", ADOX.KeyTy peEn um.adKe yP rimary, "id ",cat.Tables.A ppend tblMsgBox "数据库表:“+ + "已经创建成功! “ Set tbl = Noth ingNothi ng End Sub /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////本例中我们使用ADOX 来创建Access 数据库。
VBA创建Access数据库的4种方法
VBA创建Access数据库的4种方法Excel由于本身的局限性,存储数据量过大的时候,往往会导致工作簿假死无反应,电脑卡顿等情况。
那么,将数据存取到Access数据库中就是一种好的解决方法。
今天,我们谈谈怎么使用Excel VBA来创建数据库,数据表的几种方法。
本次所有方法创建的数据表如下图:方法一:使用Access.Application(Access对象库)创建数据库。
在编写代码之前,我们需要先引用Access对象库。
操作方法:单击VBE窗口上的【工具】按钮,在弹出的快捷菜单中单击【引用】按钮,接下来,在弹出的对话框选择【Microsoft Access 16.0 Object Library】。
单击确定即引用了Access对象库。
注意:不同Office版本的Access对象库名称略有不同。
如下表:Microsoft Access 9.0 Object Library Microsoft 2000Microsoft Access 10.0 Object LibraryMicrosoft 2002Microsoft Access 11.0 Object LibraryMicrosoft 2003Microsoft Access 12.0 Object LibraryMicrosoft 2007Microsoft Access 14.0 Object LibraryMicrosoft 2010Microsoft Access 15.0 Object LibraryMicrosoft 2013Microsoft Access 16.0 Object LibraryMicrosoft 2016这样,我们就搭建好了编程环境,然后输入下图代码即可。
方法二:使用DAO对象(Data Access Object)创建数据库(已被ADOX取代)。
DAO(Data Access Object) 数据访问对象是一个面向对象的数据库接口,它显露了 Microsoft Jet 数据库引擎(由 Microsoft Access 所使用),并允许 Visual Basic 开发者通过 ODBC 像直接连接到其他数据库一样,直接连接到Access 表。
常用VB操作ACCESS数据库代码
常用VB操作ACCESS数据库代码常用VB操作ACCESS数据库代码'VB引用项目如下:'Microsoft ADO Ext. 2.8 for DDL and Security'Microsoft ActiveX Data Objects 2.8 Library'COM+ Services Type Library'Microsoft DAO 3.6 Object LibrarySub CreateDatabase(mdbPath, mdbPassword)Dim cat As New ADOX.CatalogIf mdbPassword = "" Thencat.Create"Provider=Microsoft.Jet.OLEDB.4.0;Password=;Data Source" & mdbPath & ";"Elsecat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Password=" & mdbPassword & ";Data Source=" & mdbPath & ";"'cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mdbPath & ";"End IfMsgBox "数据库" & mdbPath & "建立成功", vbOKOnly'Set wspDefault = DBEngine.Workspaces(0)'Set dbs = wspDefault.CreateDatabase("Newdb.mdb", _'dbLangGeneral & ";pwd=NewPassword", dbEncrypt)End SubSub CreateTable(mdbPath, mdbTableName, mdbSqlColumns, mdbPrimaryKey)'建立列的sql语句'mdbPath="c:\test.mdb"'mdbTableName="User"'mdbSqlColumns="ID,adInteger;UserName,adVarWChar,20; Password,adVarWChar,20"'mdbPrimaryKey="ID"Dim tbl As New TableDim cat As New ADOX.CatalogDim con As ADODB.Connectioncat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Password=;Data Source=" & mdbPath & ";"Dim ArrayColumn As String = mdbTableName'添加数据表字段(字段格式:字段名字段类别,字段长度;最末字段没有分号)ArrayTotalColumn = Split(mdbSqlColumns, ";", -1, 1)For i = 0 To UBound(ArrayTotalColumn)ArraySingleColumn = Split(ArrayTotalColumn(i), ",", -1, 1)If UBound(ArraySingleColumn) = 1 Then'tbl.Columns.Append ArraySingleColumn(0), ArraySingleColumn(1)tbl.Columns.Append ArraySingleColumn(0), adIntegerElse'tbl.Columns.Append ArraySingleColumn(0), ArraySingleColumn(1), ArraySingleColumn(2)tbl.Columns.Append ArraySingleColumn(0), adVarWChar, CInt(ArraySingleColumn(2))End IfNext'设置数据表主键'tbl.Columns(mdbPrimaryKey).Properties("AutoIncrement") = Truecat.Tables.Append tbl'设置列的必填属性为“否”'tbl.Columns("Weight").Attributes = adColNullable'设置列的允许空字符串为“是”'tbl.Columns("FirstName").Properties("Jet OLEDB:Allow Zero Length") = TrueSet tbl = NothingSet cat = NothingMsgBox "数据表" & mdbPath & "-" & mdbTableName & "建立成功", vbOKOnlyEnd Sub'这个准备编写成一个类。
在VB程序中实现新建一个新的access数据库
在VB程序中实现新建一个新的access数据库Option Explicit'====================================== ========================================= ===='引用:Microsoft DAO 3.51 Object Library'====================================== ========================================= ====Private dbDataBase As DAO.Database '本模块内的数据库对象Private tdTable As DAO.TableDef '本模块内的表对象Private fldField As DAO.Field '本模块内的字段对象'新建一个数据库,cDataBase(数据库的路径,数据库的密码(可选,默认空))Public Function cDataBase(ByVal PathFile As String, Optional ByVal Password As String = " ") As Boolean On Error Resume NextSet dbDataBase = CreateDatabase(PathFile, dbLangGe neral, dbEncrypt)dbDataBase.NewPassword " ", PasswordSet dbDataBase = NothingcDataBase = (Err.Number = 0)End Function'新建一个表,必须有一个字段,cTable(数据库的路径,新建的表名,第一个字段名,字段的类型,字段的大小,这个数据库的密码(可选,默认空))Public Function cTable(ByVal MdbFile As String, ByVa l TableName As String, ByVal DefaultFieldName As String, ByVal FieldType As DAO.DataTypeEnum, ByVal FieldSiz e As Long, Optional ByVal Password As String = " ") As BooleanOn Error Resume NextSet dbDataBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd= " & Password & "; ")Set tdTable = dbDataBase.CreateT ableDef(TableName) Set fldField = tdTable.CreateField(DefaultFieldName, Fi eldType, FieldSize)tdTable.Fields.Append fldFielddbDataBase.TableDefs.Append tdTableSet fldField = NothingSet tdTable = NothingSet dbDataBase = NothingcTable = (Err.Number = 0)End Function'重命名一个表,ReNameTable(数据库的路径,旧的表名,新的表名,这个数据库的密码(可选,默认空))Public Function ReNameTable(ByVal MdbFile As Strin g, ByVal OldTable As String, ByVal NewTable As String, Optional ByVal Password As String = " ") As Boolean On Error Resume NextSet dbDataBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd= " & Password & "; ")Dim i As LongFor i = 0 To dbDataBase.TableDefs.Count - 1Set tdTable = dbDataBase(i)If = OldTable Then Exit ForSet tdTable = NothingNext = NewTableReNameTable = (Err.Number = 0)End Function'新建一个字段,cField(数据库的路径,表名,字段名,字段的类型,字段的大小,这个数据库的密码(可选,默认空))Public Function cField(ByVal MdbFile As String, ByVal TableName As String, ByVal FieldName As String, ByVa l FieldType As DAO.DataTypeEnum, ByVal FieldSize As L ong, Optional ByVal Password As String = " ") As BooleanOn Error Resume NextSet dbDataBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd= " & Password & "; ")Dim i As LongFor i = 0 To dbDataBase.TableDefs.Count - 1Set tdTable = dbDataBase(i)If = TableName Then Exit ForSet tdTable = NothingNextSet fldField = tdTable.CreateField(FieldName, FieldType , FieldSize)tdTable.Fields.Append fldFieldSet fldField = NothingSet tdTable = NothingSet dbDataBase = NothingcField = (Err.Number = 0)End Function'删除一个表,dTable(数据库的路径,删除的表名,这个数据库的密码(可选,默认空))Public Function dTable(ByVal MdbFile As String, ByV al TableName As String, Optional ByVal Password As S tring = " ") As BooleanOn Error Resume NextSet dbDataBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd= " & Password & "; ")dbDataBase.TableDefs.Delete (TableName)Set dbDataBase = NothingdTable = (Err.Number = 0)End Function'删除一个字段,dField(数据库的路径,表名,字段名,这个数据库的密码(可选,默认空))Public Function dField(ByVal MdbFile As String, ByVa l TableName As String, ByVal FieldName As String, Opt ional ByVal Password As String = " ") As Boolean On Error Resume NextSet dbDataBase = DAO.OpenDatabase(MdbFile, True, False, ";pwd= " & Password & "; ")Dim i As LongFor i = 0 To dbDataBase.TableDefs.Count - 1Set tdTable = dbDataBase(i)If = TableName Then Exit ForSet tdTable = NothingNexttdTable.Fields.Delete (FieldName)Set tdTable = NothingSet dbDataBase = NothingdField = (Err.Number = 0)End Function。
VB创建ACCESS数据库大全
1: 问题的提出在Visual Basic中,常用的数据访问接口有下列三种:数据库访问对象(DAO,Data Access Object)、远程数据库对象(RDO,Remote Data Object)和ActiveX数据对象(ADO,ActiveX Data Object )。
数据库访问技术一直在不断进步,而这三种接口的每一种都分别代表了该技术的不同发展阶段。
最新的是ADO,它是比RDO和DAO更加简单,然而更加灵活的对象模型。
正因如此,越来越多的人在用VB开发数据库软件时使用ADO作为数据访问接口。
在开发过程中,我们通常的使用的方法是:先使用数据库管理系统(例如:Microsoft Access)或VB中的可视化数据管理器建立好数据库和数据表结构,然后在程序中通过使用ADODC数据库控件或引用ADO对象与数据库中的表建立连接,再通过数据库感知控件(例如:文本框、DataGrid等)来进行数据库的各种操作。
在这种开发过程中,我们有时需要面对这样一个问题:如何让用户在程序运行过程中动态地建立自己所需的数据库和数据表以提高程序的灵活性呢?在程序运行过程中建立自己所需的数据库和数据表,其本质就是用代码(或者说通过编程)来建立数据库和数据表。
众所周知,在Foxpro或ASP编程中,这是很容易的一件事件。
那么在VB数据库编程中又是怎样来操作的呢?在VB数据库编程中,如果使用DAO作为数据库访问接口技术,则可以用CreateDatabase结合CreateTableDef 方法来实现,目前已有不少书和杂志都讲到了这种方法,本文就不再讲述了;但你如果使用的是最新的数据库访问接口技术ADO,你却发现目前的书和杂志上没有文章讲到如何用代码来建立数据库和数据表的方法,可有时我们非常需要用到这种方法,下面我们就来解决这个问题。
2: ADO与ADOX我们先来对ADO 和ADOX进行简单的认识。
在VB6中,使用ADO开发数据库应用程序时,我们要引用对象库"Microsoft ActiveX Data Objects 2.5 Library",这个东西的简称就是ADO,它是VB6数据库最核心的对象群,也是VB数据库开发人员经常所引用的对象库,在VB6中你可以看到它的各种版本,从2.0版到2.6版都有,很多人对它已经很熟悉,在此我们不再详细介绍。
vb连接Access数据库实例
vb连接Access数据库实例下面我们给出一个连接到Access数据库的实例,此例中用到的数据库为Access 2003。
首先在e盘建立一个名为vb的文件夹,然后打开Access 2003,单击“文件”→“新建”,在右侧出现的任务窗格中单击“空数据库”,在出现的对话框中,我们在"文件名"项后输入给新数据库起的名称并选择保存位置,这里我们为新数据库命名为Access_db并保存到我们刚才建立的文件夹中,如下图,单击"创建"按钮后,系统就生成了一个新的Access空数据库。
在空数据库中,还没有任何用户所创建的表,接下来我们就要使用设计器(如下图)为Access_db数据库建立表。
首先我们为Access_db创建一个名为“wzdz”的表,该表由以下4个字段组成:(1)编号:此为Access自动添加的主键字段,我们直接拿来使用。
我们可直接设置后三个字段,在输入完了wzdz表的各个字段之后,此时关闭表设计器,Access 会提示是否要进行保存表,选择“是”,然后为表起名为“wzdz”。
因为没有定义主键(primary Key),Access会提示为表加上一个主键,按提示将编号设置为主键即可。
(2)后三个字段分别为网站名称、网站地址和网站描述,三个字段的属性是相同的,如下:▲数据类型:文本。
▲字段大小:50▲有效性规则:无。
▲必填字段:否▲允许空字符串:否▲索引:无设置完以上字段后,再重新在设计视图中打开wzdz表(方法:在设计器中右击wzdz表名,选“设计视图”命令),应如下图所示:有了数据库和表之后,如果想让VB应用程序访问数据库,还需进行数据源的配置。
只有在配置完成了数据源之后,才能让VB应用程序同数据库进行正确的连接工作,在VB应用程序中才可以通过ADO对象来进行具体数据的操作,如果在建立了数据库之后没有对数据源进行配置或者对数据源的配置工作出现错误,则在此之前所做的一切工作都是白费的。
vb操作access数据库的方法
VB操作Access数据库方法使用ADODB首先,声明一个链接变量,并根据需要声明记录集变量。
建立与数据库的链接,如果数据库没有口令,最后一行可以不写(写上也不会错)。
这种方法虽然代码长一些,但对数据环境要求低,且结构清晰,所编写的发布程序也大为减小。
由于与链接SQL Server等数据库的方法一样,因而大量的操作数据库的代码相同,当数据库需要由Access扩充到一些大型数据库,或由一些大型数据库裁剪出一个简单数据库时,程序的移植会比较方便。
另外,这种方法对于Access97及Access2000均能很好地支持,兼容性好。
对于大量插入、删除、修改等操作,只在Connection层进行即可,既可提高速度又可减少代码。
如果还要获取具体的记录集内容,则须再根据条件打开具体的库表,代码如下:ADO常用方法下面是我所掌握的使用ADO对数据库操作的一些常用方法,主要是提供给初学者作为参考,有不对的地方请指正。
如有补充不胜荣幸准备工作========Dim conn As New ADODB.Connection '创建一个 Connection 实例,在这里使用New等于将Dim和Set合并为一段代码执行Dim rs As ADODB.Recordset '创建一个 Recordset 实例,不使用New 是因为,经常需要重复使用Set,因此没必要在这里使用Dim CnStr As String, Sql As String '创建两个字符串变量分别存放两个集合的SQL语句代码段1、装载数据库(不属于Recordset集合)=============Dim FileNamw$, DbIp$, DbName$, DbUser$, DbPw$'以上5个字符串变量分别表示文件路径和文件名、数据库地址、数据库名、数据操作员用户名、操作员密码FileName = App.Path & "\'数据库名'"DbIp = "数据库地址"DbName = "数据库名"DbUser = "数据操作员用户名"DbPw = "操作员密码"'以上变量根据数据库类型的不同而不同,有可能只需要1至两个变量'1)连接Access数据库:'-------------------CnStr = "PROVIDER=microsoft.jet.oledb.3.51;persist security info =fal se;data source=" & FileName & ";Jet OLEDB:Database Password=" & DbPw'2)连接Oracle数据库:'-------------------CnStr = "PROVIDER=MSDAORA.1;Password=" & DbPw & ";User ID=" & DbUser & ";Data Source=" & FileName & ";Persist Security Info=True"'其中:'PASSWORD: 密码'User ID: 用户号'Data Source: 数据库名'Persist Security Info:'Provider:'3)连接VF的DBF库:'----------------CnStr = "PROVIDER=MSDASQL.1;Persist Security Info=False;Driver={Microsoft Visual FoxPro Driver};UID=" & DbUser & ";SourceDB=" & FileName & ";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;"'4)连接SQL的数据库'------------------CnStr = "PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;uid=" & DbUser & ";pwd=" & DbPw & ";DRIVER=SQL Server;DATABASE=" & DbName & ";WSID=GQS OFT;SERVER=" &DbIP'也可以使用这段简易代码 CnStr = "Provider=SQLOLEDB;Data Source=" & Db Ip & ";DATABASE=" & DbName & ";UID=" & DbUser & ";pwd=" & DbPwConn.Open cnstr '使用 Connection 集合的 Open 方法与数据库建立连接2、Recordset集合的常用方法=========================='1)打开一个表'------------Sql = "select * from 表名" 'SQL查询语句Set rs = New ADODB.Recordset '新建一个实例rs.Open Sql, conn '使用 Open 方法打开数据库中的一个表'注意,这种打开方式只能使用 rs.MoveNext (即,向后移动行坐标)而不能像其他方向,并且不能修改数据内容''rs.Open Sql, conn,1 '虽然只加了个“1”,但这种方法可以向任何方向移动行坐标。
Access数据库VBA数据库编程
Access数据库VBA数据库编程Access数据库是Microsoft Office Suite中专门用于管理和存储数据的工具。
它提供了一种方便的方式来创建、修改和查询数据库。
Access VBA Visual Basic for Applications)是一种编程语言,它允许用户使用VBA代码来自动化和定制Access数据库的功能。
在Access数据库VBA编程中,我们可以使用VBA代码执行各种任务,如创建表格、添加数据、查询数据、更新数据等。
下面是一些常见的Access数据库VBA编程任务的示例:1. 创建表格:可以使用CreateTableDef方法来创建一个新的表格,在代码中定义表格的字段和属性。
例如,以下代码将创建一个名为"Employees"的表格,并定义了"ID"、"FirstName"和"LastName"字段:```Sub CreateTable()Dim db As DatabaseDim tbl As TableDefSet db = CurrentDbSet tbl = db.CreateTableDef("Employees")With tbl.Fields.Append .CreateField("ID", dbLong).Fields.Append .CreateField("FirstName", dbText).Fields.Append .CreateField("LastName", dbText)End Withdb.TableDefs.Append tblSet tbl = NothingSet db = NothingEnd Sub```2. 添加数据:可以使用Recordset对象来添加数据到表格中。
VB操作Access数据库小记
VB操作Access数据库⼩记因⼯作需要,同时为了避免⼤量繁琐⼯作,特研究了⼀下VB操作Access数据库,代码编写好后⼀劳永逸,极⼤提⾼了效率。
本⼈是VB⼩⽩,在⽹上查阅了⼀些资料后动⼿操作,记录以备查阅。
⼯作环境:Windows操作系统,Microsoft Access2010(需安装完整版)数据库部分字段和内容如下图:数据库部分字段图数据库数据图有了⽶,开始下锅,⼤致步骤是:新建窗体——放置按钮——为按钮编写事件代码。
打开上图⽂件名为users的Access数据库(库中包含⼀个users表,表内有上千条数据),然后按如下步骤操作。
1、创建窗体2、在窗体上放置按钮将窗体模式改为设计视图为按钮设置⼀个标题为按钮注册事件进⼊到VB编辑模式:编写VB代码,在Private Sub Command0_Click()和End Sub之间编写代码,如下图:语句str1、str2的完整代码如下:str1 = "UPDATE users SET carWeight=carWeight-overWeight-int(rnd(billNum)*800),overWeightPercent='0' WHERE overWeight>1000 AND limiteWeight<>0 AND date BETWEEN '" + startDate + "' AND '" + endDate + "'"str2 = "UPDATE users SET carWeight=int(carWeight/10)*10,overWeight=0 WHERE overWeight>1000 AND limiteWeight<>0 AND date BETWEEN '" + startDate + "' AND '" + endDate + "'"特别需要注意的是:Access数据库中SQL语句中⽇期值要⽤单引号引起来,在VB语⾔中,⼀个单引号开头表⽰注释。
vb连接access数据库常用的方法两种示例
这里以链接access数据库为例。
第一部分是通过语句链接,第二部分是通过控件链接通过语句链接数据库,然后把相应的数据赋值给某个文本框就行了。
1. 首先定义几个全局变量Dim cn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim constr As String2. 给这些变量赋值,方便链接数据库constr = "Provider=Microsoft.Jet.OLEDB.4.0;" & Source="Data科学效应数据库.mdb"红色部分写你自己的数据库路径。
3. 打开数据库cn.open constr打开表rs.open “ select * from 效应表where id=5 “,cn 取字符串并赋值给相应的文本Text1.text=rs.fields(效应和现“象名称”)Text2.text=rs.fields(文字解说“ ”)关闭表rs.close关闭数据库cn.close注意,最后两步骤一定要有,不然下次打开数据库的时候会提示出错的,这样的话,在窗口上建立两个文本框就够了。
但是,在此之前还有一步一定要做,点"工程"-"引用"-找到"Microsoft ActiveX Data Object2.6 ",如图所示:L n x|.[□加■匚^IX运行砂 宣询咲)ItRd ) IRd ) 弊虫)■口加 «Jih JL ■ ;"抵葩i” 整 JUS .BU JJI T#r»Op[} CtrliH枷険仁crd 口i (EI 辿图电:工堤② 格弍口 调法妙 国空诲口 E^Q )工貝⑴外罢枉序⑴ ®n 帮iftco I 討唔"屯1?決煽仙行匚町 cn. open constrrs. open ^select * fron 效应農 whatra id =6*t Taxtl. Tait = r 吕.F 让ld ・("效应和现象据称") T«tXTert ■ rs. fields 宇轉说"}却i ; Fiu.iw氈件功. Di rtt ; 1 j 1 N — 3 SAlWff v 口動mi 齢旺) 恳启嗣t :护 冲為扭曲少|匚| 习辰砂户曲01%盘呃」寸塑. 刖 V-U1«»■SR AU 13a.lv 启JoimreL ?BC * 君丽 帖“ ErvLTflfffl*Dlt 卫爭Ml"』阳序tlJ .. 爾皿瓷皆卽..CuliD________ ^cardawt Dim canstr As StringconsLr = ^PrQvi^er^icrosoft. Jet - OLEDB- 4-0:" _ *D&ta S QUC e=J: '■.Effect&olution ■,科学我应魏夷荤 cndb"FanOption 5\p-i;;;P T i vs* e Suh F QFITD LHI cn As D LJU rs As XewDErr ccn"tr Ar String corstr - ^Provider^M *Data Source=D:\Effecn. open conetr rci.oper °EK ?1 枣c:Tentl.T rxt - rs.r^Kt2.1 ext = rs.引艸-za 【* from Jfc 应表 where id -5"> fields 和臥象名称") field. 文字解说:• 显示的结果如下图所示:IW曝炸指一个化学反应能不断地自我加速而在瞬间完成,并伴随有光的发射寰系统温度顺势达到极大值和气体的压力急骤变化段以致形成冲击波等现象二爆炸可通过化学反宦、放电、激光束效应、核反应等方法获得口通过与效应表对比发现显示正确。
VB与Access连接的方法
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数据库的连接相同。
vb使用dao操作access
vb使用dao操作accessDAO(Data Access Object)全称为数据访问对象,它是数据库编程的重要方法之一。
DAO的一种面向对象的界面接口,特色为它不是可视化的对象,使用它全部都要靠编码来完成,DAO是设计关系型数据库系统结构的对象类的集合。
它提供了完成管理这样一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等工具。
由于ADO(ActiveX Data Object ActiveX 数据对象)的出现,DAO的使用已大大减少,但它无须使用ODBC(开放数据库连接)便可连接各个数据源,因而我们仍经常用经典的DAO。
下面我向大家详细介绍如何使用DAO编程。
DAO使用之前必须先引用。
方法为打开VB6.0 , 从VB 的"工程"菜单中,选择"引用"项,当"引用"对话框出现后,从库的列表中,选择"Microsoft DAO 3.51 Object Library",单击"确定"。
现在便可以使用DAO对象库提供的所有对象进行编程了。
一、创建数据库:在DAO中用CreatDataBase方法可以根据用户需求动态的创建数据库。
这一点在程序中是非常有用的。
用户可以根据要求实时建立数据库。
建立过程如下:Private Sub Com_creat_Click()On Error GoTo Err100CreatDataBase "数据库名称.mdb" ,dbLangGeneralMsgbox "数据库建立完毕"Exit SubErr100:MsgBox "不能建立数据库! " amp; vbCrLf amp; vbCrLf amp; Err.Description, vbInformationEnd Sub这样,数据库便在当前默认的路径下建立了。
VB对Microsoft Access数据库的运用代码
VB对Microsoft Access数据库的调用管理.用VB6.0计算机编程语言,和Microsoft Access的数据库建立连接。
以便对VB窗口控键,通过VB编程代码对Access数据库进行读取,存储,修改,编辑,管理和计算。
(基本功能如下图)编辑窗体界面及所需参数设计:VB窗体界面编辑及所需参数设计是下面相应控件属性及编程的基础和前提,.通过VB软件的工程下拉菜单的引用命令实现VB和Microsoft Access的数据库建立连接,以便进一步通过VB界面来对数据库的进一步操作。
具体对数据库的一般操作:首记录;上记录;下记录,末记录及搜索,修改,保存,新增记录等功能的详细VB代码如下:Public mydb As DatabasePublic myrs As RecordsetDim step1 As IntegerPrivate Sub Timer1_Timer()Call mymoveEnd SubPublic Sub mymove()Label17.Move Label17.Left + 50 * step1If Label17.Left + 1 * Label17.Width > Form1.Width Then step1 = -1ElseIf Label17.Left < 0 Thenstep1 = 1End IfEnd SubPrivate Sub Command10_Click()Form1.ShowForm2.HideForm3.HideEnd SubPrivate Sub Command11_Click()Form3.ShowForm2.HideForm1.HideEnd SubPrivate Sub Form_Load()Dim i As SingleSet mydb = OpenDatabase(App.Path + "\合同数据库.mdb")Set myrs = mydb.OpenRecordset("合同数据库", dbOpenDynaset)Command9.Enabled = False step1 = -1Timer1.Interval = 100Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text5.Text = ""Text6.Text = ""Text7.Text = ""Text8.Text = ""Text9.Text = ""Text10.Text = ""Text11.Text = ""Text12.Text = ""Text13.Text = ""Text14.Text = ""End SubPrivate Sub Command1_Click() '首记录Dim nm As StringDim nm1 As StringDim nm2 As StringCommand9.Enabled = FalseCommand12.Enabled = TrueCommand13.Enabled = TrueCommand2.Enabled = FalseCommand4.Enabled = TrueCommand1.Enabled = FalseCommand3.Enabled = Truemyrs.MoveFirstCall shuchuEnd SubPrivate Sub Command2_Click() '上记录Dim nm As StringDim nm1 As StringDim nm2 As StringCommand9.Enabled = FalseCommand12.Enabled = TrueCommand13.Enabled = TrueCommand3.Enabled = TrueCommand4.Enabled = Truemyrs.MovePreviousIf myrs.BOF Thenmyrs.MoveFirstCommand2.Enabled = FalseCommand1.Enabled = FalseElse' myrs.MovePreviousEnd IfCall shuchu' List1.AddItem myrs.Fields(1)End SubPrivate Sub Command3_Click() '下记录Dim nm As StringDim nm1 As StringDim nm2 As StringCommand9.Enabled = False Command12.Enabled = True Command13.Enabled = TrueCommand1.Enabled = TrueCommand2.Enabled = TrueIf myrs.EOF Thenmyrs.MoveLastCommand3.Enabled = FalseCommand4.Enabled = False End Ifmyrs.MoveNextIf myrs.EOF Thenmyrs.MoveLastCommand3.Enabled = FalseCommand4.Enabled = FalseEnd IfCall shuchuEnd SubPrivate Sub Command4_Click() '末记录Dim nm As StringDim nm1 As StringDim nm2 As StringCommand9.Enabled = FalseCommand12.Enabled = TrueCommand13.Enabled = Truemyrs.MoveLastCommand1.Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = FalseCommand4.Enabled = False'Command4.Enabled = FalseCall shuchuEnd SubPrivate Sub Command6_Click() '快速查询Dim findph As StringDim nm As StringDim nm1 As StringDim nm2 As StringCommand4.Enabled = Falsefindph = InputBox("请输入合同号=", "按合同号搜索")If findph <> "" Thenfindph = "合同号='" & findph & "'"'findph = "IP地址='" & findph & "'"myrs.FindFirst (findph)If myrs.NoMatch ThenMsgBox "没有相应合同号的资料记录", vbInformation, "信息"ElseCall shuchuEnd IfEnd IfEnd SubPrivate Sub Command13_Click() '新增记录Command9.Enabled = TrueText1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text5.Text = ""Text6.Text = ""Text7.Text = ""Text8.Text = ""Text9.Text = ""Text10.Text = ""Text11.Text = ""Text12.Text = ""Text13.Text = ""'List1.ClearCommand12.Enabled = Falsemyrs.AddNewText1.SetFocusMsgBox "现在你可以填写数据了,填写完毕后确定请按保存按钮", vbInformation, "系统提示"End SubPrivate Sub Command12_Click() '编辑myrs.EditText1.SetFocusMsgBox "现在你可以修改数据了,修改完后确定请按保存按钮", vbInformation, "系统提示"Command9.Enabled = TrueEnd SubPrivate Sub Command8_Click() '重新输入Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""Text5.Text = ""Text6.Text = ""Text7.Text = ""Text8.Text = ""Text9.Text = ""Text10.Text = ""Text11.Text = ""Text12.Text = ""Text13.Text = ""Text14.Text = ""' List1.ClearEnd SubPrivate Sub Command9_Click() '保存myrs.Fields("合同号") = Text1.Textmyrs.Fields("ID号") = Text2.Textmyrs.Fields("产品类型") = Text3.Textmyrs.Fields("产品代号") = Text10.Textmyrs.Fields("定货数") = Text4.Textmyrs.Fields("单价") = Text5.Textmyrs.Fields("收到合同日期") = Text6.Textmyrs.Fields("交货日期") = Text7.Textmyrs.Fields("图纸投入生产日期") = Text9.Textmyrs.Fields("完成人员") = Text8.Textmyrs.Fields("备注") = Text11.Textmyrs.Fields("Order NO") = Text12.Textmyrs.Fields("产品净重") = Text13.Textmyrs.Fields("客户代码") = Text14.TextMsgBox "合同资料记录保存成功", vbInformation, "信息"myrs.UpdateCommand12.Enabled = True'Command4.Enabled = TrueCommand9.Enabled = FalseEnd SubPrivate Sub Command5_Click() myrs.Closemydb.CloseEndEnd SubPublic Sub shuchu() ' 输出子程序Dim xx As StringDim yy As StringDim kk As StringDim ph As SingleText1.Text = myrs.Fields(0)Text2.Text = myrs.Fields(1)Text3.Text = myrs.Fields(2)Text4.Text = myrs.Fields(4)Text5.Text = myrs.Fields(5)Text6.Text = myrs.Fields(6)Text7.Text = myrs.Fields(7)Text8.Text = myrs.Fields(9)Text9.Text = myrs.Fields(8)Text10.Text = myrs.Fields(3)Text11.Text = myrs.Fields(10)Text12.Text = myrs.Fields(11)Text13.Text = myrs.Fields(12)Text14.Text = myrs.Fields(13) End Sub。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
怎样用VB的代码创建Access数据库用 ADOX:'菜单“工程”--> "引用 "--> Microsoft ADO Ext.2.7 for DDL ado Security ' 建数据库:Private Sub Form_Load()Dim cat As ADOX.CatalogSet cat = New ADOX.Catalog'在当前目录下建立名为newdata的Access数据库cat.Create ( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + App.Path & "\newdata.mdb " + "; ")MsgBox "数据库已经创建成功! "End Sub' 建表:Private Sub Command1_Click()Dim cn As New ADODB.Connectioncn.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "newdata.mdb;Persist Security Info=False "cn.Opencn.Execute "CREATE TABLE [aaa]([学生姓名]Text(20),[年龄]Integer,[成绩]Double) "cn.CloseEnd Sub'删表:Private Sub Command2_Click()Dim cn As New ADODB.Connectioncn.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source== " & App.Path & "newdata.mdb;Persist Security Info=False "cn.Opencn.Execute "DROP TABLE [aaa] "cn.CloseEnd Sub/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Option Explici tDim i As IntegerDim j As IntegerPrivate Sub Form_Load()'菜单“工程”--> "引用 "--> "Microsoft ActiveX Data Objects 2.7 Library " 'Microsoft ADO Ext.2.7 for DDL ado SecurityDim cat As ADOX.CatalogSet cat = New ADOX.Catalogcat.Create ( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\newdata.mdb " + "; ")MsgBox "数据库已经创建成功! "Dim tbl As ADOX.TableSet tbl = New ADOX.Tabletbl.ParentCatalog = cat = "MyTable "'增加一个自动增长的字段Dim col As ADOX.ColumnSet col = New ADOX.Columncol.ParentCatalog = catcol.Type = ADOX.DataTypeEnum.adInteger ' // 必须先设置字段类型 = "id "col.Properties( "Jet OLEDB:Allow Zero Length ").Value = Falsecol.Properties( "AutoIncrement ").Value = Truetbl.Columns.Append col, ADOX.DataTypeEnum.adInteger, 0'增加一个文本字段Dim col2 As ADOX.ColumnSet col2 = New ADOX.Columncol2.ParentCatalog = cat = "Description "col2.Properties( "Jet OLEDB:Allow Zero Length ").Value = Falsetbl.Columns.Append col2, ADOX.DataTypeEnum.adVarChar, 25'增加一个货币型字段Dim col4 As ADOX.ColumnSet col4 = New ADOX.Columncol4.ParentCatalog = catcol4.Type = ADOX.DataTypeEnum.adCurrency = "xx "tbl.Columns.Append col4, ADOX.DataTypeEnum.adCurrency'增加一个OLE字段Dim col5 As ADOX.ColumnSet col5 = New ADOX.Columncol5.ParentCatalog = catcol5.Type = ADOX.DataTypeEnum.adLongVarBinary = "OLD_FLD "tbl.Columns.Append col5, ADOX.DataTypeEnum.adLongVarBinary'增加一个数值型字段Dim col3 As ADOX.ColumnSet col3 = New ADOX.Columncol3.ParentCatalog = catcol3.Type = ADOX.DataTypeEnum.adDouble = "ll "tbl.Columns.Append col3, ADOX.DataTypeEnum.adDoubleDim p As ADOX.PropertyFor Each p In col3.PropertiesDebug.Print & ": " & p.Value & ": " & p.Type & ": " & p.AttributesNext'设置主键tbl.Keys.Append "PrimaryKey ", ADOX.KeyTypeEnum.adKeyPrimary, "id ", " ", " "cat.Tables.Append tblMsgBox "数据库表: " + + "已经创建成功! "Set tbl = NothingSet cat = NothingEnd Sub/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////本例中我们使用ADOX来创建Access数据库。
Microsoft® ActiveX®Data Objects Extensions for Data Definition Language and Security (ADOX) 是对 ADO 对象和编程模型的扩展。
ADOX 包括用于模式创建和修改的对象,以及安全性。
由于它是基于对象实现模式操作,所以用户可以编写对各种数据源都能有效运行的代码,而与它们原始语法中的差异无关。
ADOX 是核心 ADO 对象的扩展库。
它显露的其他对象可用于创建、修改和删除模式对象,如表格和过程。
它还包括安全对象,可用于维护用户和组,以及授予和撤消对象的权限。
要通过开发工具使用 ADOX,需要建立对 ADOX 类型库的引用。
对 ADOX 库的说明为“Microsoft ADO Ext. for DDL and Security.”。
ADOX 库文件名为“Msadox.dll”,程序 ID (ProgID) 为“ADOX”。
有关建立库引用的详细信息,请参阅开发工具的文档。
使用ADOX对象模型中的Catalog对象来创建数据库,创建Access数据库的方式非常简单,使用的字符串和ADODB.Connection对象的连接字符串是一样的。
较为简单的示例如下:1、创建数据库'声明Catalog对象Dim cat As New ADOX.Catalog'设置创建数据库用到的字符串,和ADODB.Connection对象的连接字符串相同Dim Workstring As StringWorkstring = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & "E:\test27.mdb"'创建数据库cat.Create Workstringcat.ActiveConnection = Workstring'声明Table对象Dim tb1 As New ADOX.Table = "表1"cat.Tables.Append tb12、下面的代码将字段添加到表中,我们以一个单精度字段和一个文本字段为例。
tb1.Columns.Append "成绩", adSingletb1.Columns("成绩").Properties("default").Value = 0 '字段默认值为0'要说明的是,设置默认值和充许为空相冲突,所以这句可以和上句互换'tb1.Columns("成绩").Attributes = adColNullabletb1.Columns.Append "文本", adVarWChar, 50tb1.Columns("文本").Properties("default").Value = "5362"'以这种方式添加文本列的时候不能指定Attributes属性为adColNullable,希望能有人指点下3、较为完整的添加字段的方法,与第二节没什么区别Dim col1 As New ADOX.ColumnDim col2 As New ADOX.Columncol1.ParentCatalog = cat = "成绩"col1.Type = adSinglecol1.Properties("default").Value = 0'col1.Attributes = adColNullabletb1.Columns.Append col1col2.ParentCatalog = cat = "文本"col2.Type = adVarWCharcol2.DefinedSize = 50col2.Attributes = adColNullable'col2.Properties("default").Value = "2222"tb1.Columns.Append col2'如果先添加列,tb1.Columns.Append col1,而后设置其属性,可以不用col1.ParentCatalog = cat 这一句4、在数据库已经存在的情况下,可以使用SQL语句创建表和字段,仍以添加一个单精度字段和一个文本字段为例,代码如下:Dim conn As New ADODB.ConnectionDim Workstring As StringWorkstring = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & "E:\test.mdb" conn.Open Workstringstrsql = "CREATE TABLE test9(编号 single default 0,姓名 text (50) not null default XXXX)" conn.Execute strsqlSet conn = Nothing相比较而言,第4段代码中添加表和字段的方法较为简练。