VB创建access数据表字段代码
VB连接ACCESS例子及全部代码

VB连接ACCESS例子及全部代码VB连接ACCESS例子及全部代码2007-03-19 13:40:32| 分类:sql相关|字号订阅1.首先创建一个新工程,取名为OpenSql,即Open Sql的缩写,意思是在Open方法中采用Sql查询。
2.打开“引用”对话框,选取Microsoft ActiveX Data Object 2.1 Library3.打开“部件”对话框,选取Microsoft Windows Common Control 6.0,工具箱中便添加了若干控件,其中一个名为ListView的控件.4.将控件ListView控件加载到窗体中,取名为ListView1.窗体中中有这样一个控件,别无其他,所以是一个特别简单的界面。
5.在代码窗口中的全部代码如下。
Dim WithEvents myConnection As ADODB.ConnectionDim myRecordset As New ADODB.RecordsetPrivate Sub Form_Load()Dim myPath As StringDim srtConec As StringSet myConec = New ADODB.ConnectionmyPath = App.Path & "\TD.mdb;"strconec = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & myPathmyConec.Open strconec'If strconec <= 0 Then' MsgBox "Connection Failed!"'Else' MsgBox "Congratulations,Established!"'End IfDim strSql As StringListView1.Top = 0ListView1.Left = 0myRecordset.CursorType = adOpenKeysetmyRecordset.LockType = adLockReadOnlystrSql = "select * from TBillInfo"myRecordset.Open strSql, myConec, , , adCmdTextShowListViewmyRecordset.ClosemyConec.CloseEnd SubPublic Sub ShowListView()Dim clmHead As ColumnHeaderDim ListItm As ListItemDim i As IntegerListView1.ColumnHeaders.ClearListView1.ListItems.ClearListView1.FullRowSelect = TrueListView1.View = lvwReportFor i = 0 To myRecordset.Fields.Count - 1Set clmHead = ListView1.ColumnHeaders.Add()clmHead.Text = myRecordset.Fields(i).Name NextmyRecordset.MoveFirstDo While Not myRecordset.EOFSet ListItm = ListView1.ListItems.Add()If IsNull(myRecordset.Fields(0).Value) ThenListItm.Text = "NULL"ElseListItm.Text = myRecordset.Fields(0).Value End IfFor i = 1 To myRecordset.Fields.Count - 1If IsNull(myRecordset.Fields(i).Value) ThenListItm.SubItems(i) = "NULL"ElseListItm.SubItems(i) = myRecordset.Fields(i).Value End IfNextmyRecordset.MoveNextLoopListView1.View = lvwReportEnd SubPrivate Sub Form_Resize()ListView1.Width = Width - 200ListView1.Height = Height - 400End SubPrivate Sub Form_Terminate()Set myRecordset = NothingSet myConnection = NothingEnd SubPrivate Sub ListView1_BeforeLabelEdit(Cancel As Integer) End Sub---------------------------。
用VB的代码创建Access数据库

怎样用VB的代码创建Access数据库用ADOX:'菜单“工程”--> "引用"--> Microsoft ADO for DDL ado Security' 建数据库:Private Sub Form_Load()Dim cat AsSet cat = New'在当前目录下建立名为newdata的Access数据库( "Provider= Source= " + & "\ " + "; ")MsgBox "数据库已经创建成功!"End Sub' 建表:Private Sub Command1_Click()Dim cn As New= "Provider= Source= " & & ";Persist Security Info=False ""CREATE TABLE [aaa]([学生姓名]Text(20),[年龄]Integer,[成绩]Double) "End Sub'删表:Private Sub Command2_Click()Dim cn As New= "Provider= Source== " & & ";Persist Security Info=False ""DROP TABLE [aaa] "End Subalue = False( "AutoIncrement ").Value = Truecol, 0'增加一个文本字段Dim col2 AsSet col2 = New= cat= "Description "( "Jet OLEDB:Allow Zero Length ").Value = Falsecol2, 25'增加一个货币型字段Dim col4 AsSet col4 = New= cat== "xx "col4,'增加一个OLE字段Dim col5 AsSet col5 = New= cat== "OLD_FLD "col5,'增加一个数值型字段Dim col3 AsSet col3 = New= cat== "ll "col3,Dim p AsFor Each p In& ": " & & ": " & & ": " &Next'设置主键"PrimaryKey ", "id ", " ", " "tblMsgBox "数据库表:" + + "已经创建成功!"Set tbl = NothingSet cat = NothingEnd Subfor DDL and Security.”。
(完整版)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 数据库"引用"--> 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。
VBA在Access中实现表单设计与数据录入详解

VBA在Access中实现表单设计与数据录入详解Microsoft Access是一款功能强大的关系数据库管理系统,它可以帮助用户高效地创建、管理和分析数据库。
VBA(Visual Basic for Applications)是一种基于Visual Basic语言的编程工具,它可以与Access无缝集成,为用户提供更高级的数据处理和应用开发功能。
本文将详细介绍如何使用VBA在Access中实现表单设计与数据录入。
一、表单设计1. 创建表单在Access中,可以通过表单来直观地呈现数据库中的数据,方便用户进行数据录入和查看。
VBA提供了创建表单的功能,通过编写VBA代码,可以实现自定义的表单设计。
2. 设计表单控件在设计表单时,可以使用各种控件来展示和编辑数据。
例如,文本框、组合框、下拉列表框、按钮等。
通过VBA,可以为这些控件添加事件处理程序,实现更丰富的交互功能。
3. 设置表单属性除了控件的设计,还可以通过VBA设置表单的各种属性,以实现更好的用户体验。
例如,可以设置表单的标题、背景颜色、字体等。
二、数据录入1. 绑定表单数据源在Access中,数据是存储在表中的,通过将表与表单绑定,可以方便地在表单中显示和编辑数据。
通过VBA,可以编写代码来实现数据的绑定操作。
2. 数据录入与编辑有了绑定的数据源,用户可以直接在表单中录入和编辑数据。
通过VBA,可以为表单的控件添加事件处理程序,实现数据验证、格式化和计算等操作。
3. 数据导航与查询在数据录入过程中,用户可能需要进行数据导航和查询功能。
通过VBA,可以编写代码来实现数据的导航操作,例如下一条、上一条、首条、尾条等。
同时,还可以实现数据的快速查询功能,以提高用户的工作效率。
三、示例代码下面是一个简单的示例代码,演示了如何使用VBA在Access中实现表单设计与数据录入:```Private Sub Form_Load()' 设置表单标题Me.Caption = "学生信息录入表单"' 绑定数据源Me.RecordSource = "学生信息表"End SubPrivate Sub cmdSave_Click()' 保存数据到表Me.Dirty = FalseEnd SubPrivate Sub cmdNext_Click()' 导航到下一条数据DoCmd.GoToRecord , "", acNext End SubPrivate Sub cmdPrevious_Click()' 导航到上一条数据DoCmd.GoToRecord , "", acPrevious End SubPrivate Sub cmdFirst_Click()' 导航到首条数据DoCmd.GoToRecord , "", acFirst End SubPrivate Sub cmdLast_Click()' 导航到尾条数据DoCmd.GoToRecord , "", acLast End Sub```通过这段示例代码,可以看到如何使用VBA编写表单的加载事件、按钮点击事件等操作。
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版都有,很多人对它已经很熟悉,在此我们不再详细介绍。
VB6+Access编程中的数据库操作方法

附件2:VB6+Access编程中的数据库操作方法例1:首先,在工程里引用microsoft activex data objects 2.7 libraryDim cn As New ADODB.Connection, rs1 As New ADODB.Recordset, sql As String '在通用声明里定义,其中cn是连接对象,rs1是记录集,sql是查询语句cn.Open "provider=microsoft.jet.oledb.4.0;data source=" + App.Path + "\数据库名.mdb" + ""sql = "select * from 表名"rs1.Open sql, cnrs1.MoveFirstDo While Not rs1.EOFCombo1.AddItem rs1("字段名")rs1.MoveNextLooprs1.Close例2:一个用户登录系统'准备工作: 数据库D:\Mydb.mdb 数据库中,建数据表:UserInfo,数据表中,建字段:User,Password,并添加一条记录'点工程->引用选中Microsoft Activex Data Objects 2.7 Library'控件:添加一个文本框,一个命令按钮Private Sub Command1_Click()Dim s As StringDim Conn As New ADODB.ConnectionDim Rs As New ADODB.RecordsetConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\mydb.mdb"'请将数据库名及路径换成你的实际数据库名及路径Dim UserName As StringDim Password As Strings = Text1.TextIf s = "1" Or s = "2" ThenUserName = InputBox("请输入用户名")Password = InputBox("请输入用户密码")sql = "Select * From [UserInfo] where User='" & UserName & "'"'UserInfo请换成你的实际数据表名Rs.Open sql, Conn, 1, 3If Rs.EOF ThenMsgBox "没有找到此用户"ElseIf Rs("Password") = Password ThenIf s ="1" ThenMsgBox "123"ElseIf s = "2" ThenMsgBox "456"End IfElseMsgBox "密码错误"End IfEnd IfEnd IfEnd Sub上面的例子实现了查询如果是要添加,删除,更新等操作,只要编写相应的SQL语句,再用Conn.Execute SQL 就可以了,如:添加的:SQL="Insert Into [UserInfo](User,Password) Values('aaaa','1234')"Conn.Execute SQL '执行后,就添加了一条记录删除:SQL="Delete From [UserInfo] Where User='aaaa'"Conn.Execute SQL '删除用户名为aaaa的用户记录更新:SQL="Update [UserInfo] Set Password='abcdefg' Where User='aaaa'"Conn.Execute SQL '执行后,修改用户aaaa的密码为abcdefg以上只是示例,在实际使用过程中,可以将一些内容用控件输入等方式进行,这样就有很大的灵活性了例3:Private Sub Form_Load()Dim cnn As ADODB.ConnectionDim my_recordset As ADODB.RecordsetDim connect_string As StringDim statestring As StringSet cnn=New ADODB.ConnectionSet my_recordset=New ADODB.Recordset'连接Access数据库connect_string="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\aaa.mdb;Pe rsist Security Info=False"cnn.Open connect_stringSelect Case cnn.StateCase adStateClosestatestring="adStateClosed"Case adStateOpenstatestring="adStateOpen"End Select'显示连接的状态MsgBox "连接成功!",,statestring'对wzdz表进行查询操作my_recordset.Open "Select * from wzdz",cnnmy_recordset.CloseEnd Sub例4:Dim strConn As String '连接字符串Dim strSql As String 'SQL命令Dim conn As ADODB.Connection '数据源Dim Ado As ADODB.Recordset '记录集strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\aaa.mdb;Persist Se curity Info=False"strSql = "SELECT * FROM bbb"Set conn = New ADODB.Connectionconn.ConnectionString = strConnconn.Open。
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语⾔中,⼀个单引号开头表⽰注释。
AccessVBAExcel-Access表及字段创建-03

AccessVBAExcel-Access表及字段创建-03系统:Windows 10软件:Excel 2010 / Access 2010•这个系列开展一个新的篇章,重点关注Access数据库•主体框架:以Excel作为操作界面,Access作为数据库•今天讲讲如何新建工作表和字段(列)•涉及知识:ADO,SQL今日歌曲:Part 1:前面的话1.对Access数据库的大部分操作都可以通过SQL语言来实现2.SQL:Structure Query Language,结构化查询语言,语法简单,非常容易学3.SQL语言的执行可借助于ADO,ADO本身也支持对数据库的各种操作,但是涉及到一些其它知识的学习4.这个系列中,除非无法用SQL来实现,否则会使用SQL5.SQL作为数据库操作的通用语言,学会了后也可用于对其它数据库的操作,那也是极好的Part 2:本篇目标1.对已有空白数据库创建一个数据表2.根据要求创建新的字段,指定字段的约束3.基本逻辑过程:•连接数据库•确定SQL语句•执行SQL语句•根据需求重复上面两步•关闭数据库的连接记得引用Microsoft ActiveX Data Objects 2.8 Library Part 3:代码Sub test() Dim cnn As New ADODB.Connection '连接 Dim rs As New ADODB.Recordset Dim SQL As String Dim tblName Dim dbAddr dbAddr = ThisWorkbook.Path & '\学生信息.accdb' tblName = '学生信息表' '连接数据库 With cnn .Provider = 'Microsoft.ACE.OLEDB.12.0' .Open 'Data Source=' & dbAddr End With SQL = 'CREATE TABLE ' & tblName & ' (ID AUTOINCREMENT primary key)' Set rs = cnn.Execute(SQL) field1 = '姓名 text(6)' field2 = '学号 single' field3 = '性别 text(1)' SQL = 'ALTER TABLE ' & tblName & ' ADD ' & field1 & ',' & field2 & ',' & field3 Set rs = cnn.Execute(SQL) cnn.Close Set rs = Nothing Set cnn = Nothing End Sub执行结果:新建表执行结果:新建字段Part 4:部分代码解读1.ADO连接不同数据库采用不同引擎•Microsoft.ACE.OLEDB.12.0 连接Access•老版本的Access(.mdb后缀的)可以使用引擎Microsoft.Jet.OLEDB.4.0CREATE TABLE ' & tblName & ' (ID AUTOINCREMENT primary key)创建了一个工作表,并设置一个字段(主键,唯一且自增)•CREATE TABLE 工作表名称(字段信息),中文释义可以理解为:新建数据表XX,字段XX且为主键•ID这个字段每增加一行记录,会自增1,设为主键SQL = 'ALTER TABLE ' & tblName & ' ADD ' & field1 & ',' & field2 & ',' & field3,新增字段•ALTER,修改,上面的SQL中文释义可以理解为,修改数据表XX增加字段XX,其实还是比较直白的field2 = '学号 single',设置字段特性,字段名称为学号,类型为Single,单精度实数Set rs = cnn.Execute(SQL),运行该SQL语句字段约束主键官方定义:主键是表中的一个字段或字段集,为每条记录提供一个唯一的标识符。
Access-VBA编程(使用技巧大全)[1]
![Access-VBA编程(使用技巧大全)[1]](https://img.taocdn.com/s3/m/5ad42e632f60ddccda38a0c3.png)
ACCESS-VBA编程.控件:常量控件acBoundObjectFrame 绑定对象框acCheckBox 复选框acComboBox 组合框acCommandButton 命令按钮acCustomControl ActiveX(自定义)控件acImage 图像acLabel 标签acLine 线条acListBox 列表框acObjectFrame 未绑定对象框或图表acOptionButton 选项按钮acOptionGroup 选项组acPage 页acPageBreak 分页符acRectangle 矩形acSubform 子窗体/子报表acTabCtl 选项卡acTextBox 文本框acToggleButton 切换按钮在VB中对窗体控件的引用键入包含控件的窗体或报表的标识符,后面紧接 ! 运算符和控件的名称。
例如,下列标识符将引用“订单”窗体上“订单ID”控件值:Forms![订单]![订单ID]引用子窗体或子报表上的控件,不必使用“窗体”或“报表”属性为窗体或报表指定完整的标识符。
例如,可以使用下列标识符来引用“订单”子窗体上的“数量”控件:Forms![订单]![订单子窗体]![数量]判断窗体或报表中控件的数目,然后将该数目赋给一个变量。
Dim intFormControls As IntegerDim intReportControls As IntegerintFormControls = Forms!Employees.CountintReportControls = Reports!FreightCharges.Count设置控件可见性Dim i, ii As IntegerFor ii = 3 To 10Me.Controls.Item(ii).Visible = TrueNextFor i = 11 To 22Me.Controls.Item(i).Visible = FalseNext按特殊名在VBA中设置控件的可见性:For i = 27 To 47If Me.Controls.Item(i).Name Like "A*" ThenMe.Controls.Item(i).Visible = FalseEnd IfNext指定一个控件能否接受焦点Enabled属性:me.控件.Enabled = true'能=false'不能指定一个控件能否被编辑:locked如:me.控件.Locked = trueme.控件.Locked = false设置控件标题显示的文字Me.控件.Caption = "显示窗体"设置标签颜色:belColor =200获得焦点及失去焦点时字段变更颜色。
Access_VBA_手册

Function FindFile(st rSearchP ath, strTitle, strFilterFil ename, strFilterEx tname) As String ' 显示打开 文件对话 框让用户 定位 ' 特定的文 件。返回 文件的完 整路径。
Dim msaof As MSA_OP ENFILEN AME
16 打开外部数据库中的报表
实现打开 外部数据 库中的报 表。 Private Declare Function apiSetFor egroundW indow Lib "user32" _
Alias "SetForeg roundWin dow" _
(ByVal hwnd As Long) _
Response = acDataErr Continue
If MsgBox(" 您输入的 名称不在 列表中, 在列表中 添加新记 录吗?", 68, "银河 酒业") = 6 Then
Me![名 称] = Null
Байду номын сангаас
8 窗体真正居中显示
如下代码 可以做到 真正居中 显示
Private Sub Form_Loa d() DoCmd.E cho False Dim x, y As Integer DoCmd.M aximize x= Me.Windo wWidth y= Me.Windo wHeight DoCmd.R estore DoCmd.E cho True Move (x Me.Windo wWidth) / 2, (y Me.Windo wHeight) / 2 End Sub
10 用代码选择图表样式
仓库管理系统VBAccess源代码

仓库管理系统项目的建立这是本人利用闲暇之余在上制作的一个简陋的类库管系统,现图文结合的方式一步一步展现制作过程;由于本人是个初学者,里面存在很多不足之处望得到高手们的指导;此文可作供初学者们学习交流;作者联系方式:E-mail最终运行效果打开软件出现如下登录界面输入系统预设用户名及密码 1 1 单击“登录”或单击“新用户”添加新用户进入如下主界面:建立工程1、创建标准EXE2、按“打开”3、添加MDI窗体——打开4、编辑菜单在空白处右击——点击“菜单编辑器”在“标题”里输入“系统”,在“名称”里输入“Sys”注意此处不能为汉字点击“下一个”再点击“”“确定”退到MDI界面点击“系统”——“退出”如下,然后编写代码;代码如下:Private Sub Exit_ClickEndEnd Sub数据库的建立中可以创建Access数据库;如下建立一个“用户表”的数据库,用来存放用户信息及一些出入库管理信息;如下图单击“外接程序”再单击“可视化数据管理器”出现如图点击“文件”——“新建”——“Microsoft Access”——“Version MDB”输入数据库名,“保存”出现如下图在数据窗口中右击——“新建表”,最终如下往数据表里添加数据在这里就不罗嗦了,请查阅相关书籍;登录界面窗口的建立最终界面如下:1、Adodc1的添加过程为:单击“工程”——“部件”出现下图所示,选择“控件”下的“Microsoft ADO Data Control OLEDB”单击“确定”在工具栏中会出现“”图标,单击它并拖动到相应位置即可;其它元件不在一一说明;2、本窗体代码如下:Private Sub Command1_Click '“登录”、“确定”按钮If = "确定" And = "取消" Then '如果为“确定”则添加新用户If = "" Then '提示用户输入用户名MsgBox "请输入用户名", , "登录信息提示:"Exit SubElse 'Dim usename As String '检测用户名是否已经存在 Dim strS As Stringusename = TrimstrS = "select from 用户登录信息表 where 用户名='" & usename & "'"= adCmdText= strSIf = False ThenMsgBox "您输入的用户已存在", , "登录提示信息:"= ""= ""= ""Exit SubEnd IfEnd IfIf = "" Then '提示用户密码不能为空MsgBox "密码不能为空", , "登录提示信息:"Exit SubEnd IfIf = "" ThenMsgBox "请再次输入密码", , "登录提示信息:"Exit SubEnd IfIf <> ThenMsgBox "两次输入的密码不一致,请确认", , "登录提示信息:"= ""= ""Exit SubElse'添加新用户"用户名" = Trim"密码" = TrimMsgBox "添加新用户成功,现在您可以登陆系统了"= False= False= "登录"= "退出"End IfElse '“登录”按钮,用户登录 Dim strSno As StringDim strSelect As StringstrSno = Trim '检测用户名是否存在strSelect = "select 密码 from 用户登录信息表 where 用户名 = '" & strSno & "'"= adCmdText= strSelectIf = True ThenMsgBox "用户名不存在,请重新输入", , "登录提示信息:"= ""= ""Exit SubEnd IfIf "密码" = Trim Then '检测密码是否正确'Unload Me'MsgBox "登陆成功", , "登录提示信息:"ElseMsgBox "密码不正确,请重新输入", , "登录提示信息:"= ""End IfEnd IfEnd SubPrivate Sub Command2_Click '“退出”或“取消”按钮 If = "取消" Then= False= False= "登录"= "退出"= ""= ""ElseEnd 'Unload MeEnd IfEnd SubPrivate Sub Command3_Click '“新用户”按钮= True= True= ""= ""= ""= "确定"= "取消"End SubPrivate Sub Command3_MouseDownButton As Integer, Shift As Integer, X As Single, Y As Single= TrueEnd SubPrivate Sub Command3_MouseUpButton As Integer, Shift As Integer, X As Single, Y As Single= FalseEnd SubPrivate Sub Form_Load= False= FalseEnd SubPrivate Sub Timer1_Timer '时间time1控件的time事件代码,用来'显示向左移动的欢迎字幕If + > 0 Then '当标签右边位置大于0时,标签向左移- 80Else '否则标签从头开始=End IfIf + > 0 Then- 80Else=End IfEnd Sub主界面窗体如下:代码:Private Sub AddNew_Click= True= FalseEnd SubPrivate Sub CHKPMCHX_Click= "出库信息"Dim pm As StringDim n As Stringpm = InputBox"产品名", "请输入", 0n = "select from 出库表 where 品名 = '" & pm & "'"= adCmdText= nCall InitGrid1End SubPrivate Sub CHKXHCHX_Click= "出库信息"Dim XH As StringDim n As StringXH = InputBox"产品型号", "请输入", 0n = "select from 出库表 where 型号 = '" & XH & "'"= adCmdText= nEnd SubPrivate Sub CKCZ_Click'End SubPrivate Sub CKJSHR_Click= "出库信息"Dim JSHR As StringDim n As StringJSHR = InputBox"经手人", "请输入", 0n = "select from 出库表 where 经手人 = '" & JSHR & "'"= adCmdText= nCall InitGrid1End SubPrivate Sub CKSHJ_Click= "出库信息"Dim CHKRQ As StringDim n As StringCHKRQ = InputBox"出库日期,格式为:月/日/年如:12/1/2011", "请输入", 0 n = "select from 出库表 where 出库日期 = '" & CHKRQ & "'"= adCmdText= nCall InitGrid1End SubPrivate Sub CKZCX_Click= "出库信息"Dim ZB As StringZB = "select from 出库表 "= adCmdText= ZBCall InitGrid1End SubPrivate Sub Command1_ClickIf = "" Then '提示用户输入用户名MsgBox "请输入用户名", , "登录信息提示:"Exit SubElse 'Dim usename As String '检测用户名是否已经存在 Dim strS As Stringusename = TrimstrS = "select from 用户登录信息表 where 用户名='" & usename & "'"= adCmdText= strSIf = False ThenMsgBox "您输入的用户已存在", , "登录提示信息:"= ""= ""= ""Exit SubEnd IfEnd IfIf = "" Then '提示用户密码不能为空MsgBox "密码不能为空", , "登录提示信息:"Exit SubEnd IfIf = "" ThenMsgBox "请再次输入密码", , "登录提示信息:"Exit SubEnd IfIf <> ThenMsgBox "两次输入的密码不一致,请确认", , "登录提示信息:"= ""Exit SubElse'添加新用户"用户名" = Trim"密码" = TrimDim X As IntegerX = MsgBox"成功添加新用户,是否要重新登录", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息" If X = vbYes ThenUnload MeEnd If'MsgBox "成功添加新用户"' = False' = False' = "登录"' = "退出"End If= False= True= ""= "'"= ""'End SubPrivate Sub Command2_Click= False= TrueEnd SubPrivate Sub CXDL_Click'Unload MeEnd SubPrivate Sub Exit_ClickEndUnload Form1Unload Form2Unload Form3Unload Form4Unload Form5Unload Form6Unload Form7End SubPrivate Sub Form_LoadTextUserName = Trim Unload Form1= FalseCall InitGrid0= - 1060= - 560==End SubPrivate Sub GHCZ_Click'End SubPrivate Sub GHPMCX_Click= "归还信息"Dim pm As StringDim n As Stringpm = InputBox"产品名", "请输入", 0n = "select from 归还表 where 品名 = '" & pm & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub GHRCX_Click= "归还信息"Dim JCR As StringDim n As StringJCR = InputBox"归还人", "请输入", 0n = "select from 归还表 where 归还人 = '" & JCR & "'" = adCmdText= nCall InitGrid2End SubPrivate Sub GHSJCX_Click= "归还信息"Dim JCRQ As StringDim n As StringJCRQ = InputBox"归还日期,格式为:月/日/年如:12/1/2011", "请输入", 0 n = "select from 归还表 where 归还日期 = '" & JCRQ & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub GHXHCX_Click= "归还信息"Dim XH As StringDim n As StringXH = InputBox"产品型号", "请输入", 0n = "select from 归还表 where 型号 = '" & XH & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub GHZCX_Click= "归还信息"Dim ZB As StringZB = "select from 归还表 "= adCmdText= ZBCall InitGrid2End SubPrivate Sub JCCZ_Click'End SubPrivate Sub JCHPMCHX_Click= "借出信息"Dim pm As StringDim n As Stringpm = InputBox"产品名", "请输入", 0n = "select from 借出表 where 品名 = '" & pm & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub JCHXHCHX_Click= "借出信息"Dim XH As StringDim n As StringXH = InputBox"产品型号", "请输入", 0n = "select from 借出表 where 型号 = '" & XH & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub JCRCX_Click= "借出信息"Dim JCR As StringDim n As StringJCR = InputBox"借出人", "请输入", 0n = "select from 借出表 where 借出人 = '" & JCR & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub JCSHJCX_Click= "借出信息"Dim JCRQ As StringDim n As StringJCRQ = InputBox"借出日期,格式为:月/日/年如:12/1/2011", "请输入", 0 n = "select from 借出表 where 借出日期 = '" & JCRQ & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub JCZCX_Click= "借出信息"Dim ZB As StringZB = "select from 借出表 "= adCmdText= ZBCall InitGrid2End SubPrivate Sub JSHRCHX_Click= "归还信息"Dim JSHR As StringDim n As StringJSHR = InputBox"经手人", "请输入", 0n = "select from 归还表 where 经手人 = '" & JSHR & "'" = adCmdText= nCall InitGrid2End SubPrivate Sub JSHRCX_Click= "借出信息"Dim JSHR As StringDim n As StringJSHR = InputBox"经手人", "请输入", 0n = "select from 借出表 where 经手人 = '" & JSHR & "'" = adCmdText= nCall InitGrid2End SubPrivate Sub PMCX_Click= "库存信息"Dim pm As StringDim n As Stringpm = InputBox"产品名", "请输入", 0n = "select from 库存表 where 品名 = '" & pm & "'"= adCmdText= nCall InitGrid0End SubPrivate Sub RKCZ_Click'End SubPrivate Sub RKJSHR_Click= "入库信息"Dim JSHR As StringDim n As StringJSHR = InputBox"经手人", "请输入", 0n = "select from 入库表 where 经手人 = '" & JSHR & "'"= adCmdText= nCall InitGrid1End SubPrivate Sub RKPMCHX_Click= "入库信息"Dim pm As StringDim n As Stringpm = InputBox"产品名", "请输入", 0If Lenpm > 0 Thenn = "select from 入库表 where 品名 = '" & pm & "'"= adCmdText= nEnd IfCall InitGrid1End SubPrivate Sub RKSHJ_Click= "入库信息"Dim RKRQ As StringDim n As StringRKRQ = InputBox"入库日期,格式为:月/日/年如:12/1/2011", "请输入", 0 n = "select from 入库表 where 入库日期 = '" & RKRQ & "'"= adCmdText= nCall InitGrid1End SubPrivate Sub RKXHCHX_Click= "入库信息"Dim XH As StringDim n As StringXH = InputBox"产品型号", "请输入", 0If LenXH > 0 Thenn = "select from 入库表 where 型号 = '" & XH & "'"= adCmdText= nEnd IfCall InitGrid1End SubPrivate Sub RKZCX_Click= "入库信息"Dim ZB As StringZB = "select from 入库表 "= adCmdText= ZBCall InitGrid1End SubPrivate Sub Timer1_TimerIf + > 0 Then '当标签右边位置大于0时,标签向左移- 80Else '否则标签从头开始 =End IfIf + > 0 Then- 80Else=End IfIf + > 0 Then- 80Else=End IfIf + > 0 Then- 80Else=End IfEnd SubPrivate Sub XGMM_Click'End SubPrivate Sub XHCX_Click= "库存信息"Dim XH As StringDim n As StringXH = InputBox"产品型号", "请输入", 0If LenXH > 0 Then 'And ValXH <> 0n = "select from 库存表 where 型号 = '" & XH & "'"= adCmdText= nEnd IfCall InitGrid0End SubPrivate Sub ZB_Click= "库存信息"Dim ZB As String'Dim N As String'PM = InputBox"产品名", "请输入", 0ZB = "select from 库存表 " 'where 品名 = '" & PM & "'" = adCmdText= ZBCall InitGrid0End SubPrivate Sub InitGrid0With DataGrid1.Columns0.Width = 1600.Columns1.Width = 2200.Columns2.Width = 2200.Columns3.Width = 1000.Columns4.Width = 1000.Columns5.Width = 4000End WithEnd SubPrivate Sub InitGrid1With DataGrid1.Columns0.Width = 800.Columns1.Width = 1600.Columns2.Width = 1600.Columns3.Width = 800.Columns4.Width = 800.Columns5.Width = 1000.Columns6.Width = 800.Columns7.Width = 4000End WithEnd SubPrivate Sub InitGrid2With DataGrid1'.Columns0.Caption = "学号"' .Columns1.Caption = "课程名"'.Columns2.Caption = "学分"' .Columns3.Caption = "成绩"'设置DtgCond的列宽.Columns0.Width = 800.Columns1.Width = 1600.Columns2.Width = 1600.Columns3.Width = 800.Columns4.Width = 800.Columns5.Width = 800.Columns6.Width = 1000.Columns7.Width = 800.Columns8.Width = 4000End WithEnd Sub用户重新登录界面代码:Private Sub Command1_ClickDim strSno As StringDim strSelect As StringstrSno = Trim '检测用户名是否存在 strSelect = "select 密码 from 用户登录信息表 where 用户名 = '" & strSno & "'" = adCmdText= strSelectIf = True ThenMsgBox "用户名不存在,请重新输入", , "登录提示信息:"= ""= ""Exit SubEnd IfIf "密码" = Trim Then '检测密码是否正确Unload Me'MsgBox "登陆成功", , "登录提示信息:"ElseMsgBox "密码不正确,请重新输入", , "登录提示信息:"= ""End IfEnd SubPrivate Sub Command2_ClickUnload MeEnd Sub修改用户密码界面代码:Private Sub Command1_ClickIf Trim <> ThenMsgBox "用户名不正确,请确认", , "信息提示"= ""Exit SubElseDim name As StringDim names As Stringname = Trimnames = "select from 用户登录信息表 where 用户名='" & name & "'" = adCmdText= namesIf = "" ThenMsgBox "请输入旧密码", , "信息提示"Exit SubEnd IfIf "密码" <> Trim ThenMsgBox "旧密码不正确,请确认", , "信息提示"= ""Exit SubEnd IfIf = "" ThenMsgBox "请输入新密码", , "信息提示"Exit SubEnd IfIf = "" ThenMsgBox "请再次输入新密码", , "信息提示"Exit SubEnd IfIf Trim <> Trim ThenMsgBox "两次输入的新密码不一致", , "信息提示" = ""= ""Exit SubElse"密码" = TrimMsgBox "密码修改成功"Unload Me'End IfEnd IfEnd SubPrivate Sub Command2_ClickUnload Me'End Sub入库管理代码:Private Sub Command1_ClickIf = "" And = "" ThenMsgBox "“品名”和“型号”不能同时为空,必须输入其中一项", , "提示信息" Exit SubElseIf = "" And = "" ThenMsgBox "请输入产品“数量”或“单位”之一", , "提示信息"Exit SubEnd IfIf = "" ThenMsgBox "请经手人签名", vbCritical, "提示信息"Exit SubEnd If'添加"品名" = Trim"型号" = Trim"数量" = Trim"单位" = Trim"经手人" = Trim"入库日期" = Date"说明" = TrimEnd IfDim pm As StringDim pms As StringDim n As StringDim m As Stringpm = Trimn = Valpms = "select from 库存表 where 品名='" & pm & "'"= adCmdText= pmsIf ThenWith Form2. ."品名" = Trim."型号" = Trim."数量" = Trim."单位" = Trim."说明" = Trim. End WithElsem = "数量".ValueIf "型号" = Trim Then"数量" = Valm + ValnEnd IfEnd IfDim X As IntegerX = MsgBox"产品入库登记成功,是否继续添加产品", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息" If X = vbNo ThenUnload Me'Else= ""= ""= ""= ""= ""= ""= ""End If= "入库信息"Dim ZB As StringZB = "select from 入库表 " 'where 品名 = '" & PM & "'"= adCmdText= ZBSubPrivate Sub Command2_Click= ""= ""= ""= ""= ""= ""= ""End SubPrivate Sub Command3_ClickUnload Me'End Sub出库管理代码:Private Sub Command1_ClickIf = "" And = "" Then ' = "" And = "" ThenMsgBox "“品名”和“型号”不能同时为空,必须输入其中一项", , "提示信息" Exit SubElseIf = "" And = "" Then ' = "" ThenMsgBox "请输入产品“数量”或“单位”之一", , "提示信息"Exit SubEnd IfIf = "" ThenMsgBox "请经手人签名", vbCritical, "提示信息"Exit SubEnd If'添加"品名" = Trim 'Trim"型号" = Trim 'Trim"数量" = Trim"单位" = Trim 'Trim"经手人" = Trim"出库日期" = Date"说明" = TrimEnd IfDim pm As StringDim pms As StringDim n As StringDim m As Stringpm = Trimn = Valpms = "select from 库存表 where 品名='" & pm & "'"= adCmdText= pmsm = "数量".ValueIf "型号" = Trim Then"数量" = Valm - ValnEnd IfDim X As IntegerX = MsgBox"产品出库登记成功,是否继续添加产品", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息" If X = vbNo ThenUnload Me'End If= ""= ""= ""= ""= ""= ""= ""= "出库信息"Dim ZB As StringZB = "select from 出库表 " 'where 品名 = '" & PM & "'"= adCmdText= ZBSubPrivate Sub Command2_Click= ""= ""= ""= ""= ""= ""End SubPrivate Sub Command3_ClickUnload Me'End SubPrivate Sub Form_LoadDo Until "型号""品名""单位"LoopEnd Sub借出管理代码:Private Sub Command1_ClickIf = "" And = "" Then ' = "" And = "" ThenMsgBox "“品名”和“型号”不能同时为空,必须输入其中一项", , "提示信息" Exit SubElseIf = "" And = "" Then ' = "" ThenMsgBox "请输入产品“数量”或“单位”之一", , "提示信息"Exit SubEnd IfIf = "" ThenMsgBox "请经手人签名", vbCritical, "提示信息"Exit SubEnd If'添加"品名" = Trim 'Trim"型号" = Trim 'Trim"数量" = Trim"单位" = Trim 'Trim"经手人" = Trim"借出人" = Trim"借出日期" = Date"说明" = TrimEnd IfDim pm As StringDim pms As StringDim n As StringDim m As Stringpm = Trimn = Valpms = "select from 库存表 where 品名='" & pm & "'"= adCmdText= pmsm = "数量".ValueIf "型号" = Trim Then"数量" = Valm - ValnEnd IfDim X As IntegerX = MsgBox"产品借出登记成功,是否继续添加产品", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息" If X = vbNo ThenUnload MeEnd If= ""= ""= ""= ""= ""= ""= ""= "借出信息"Dim ZB As StringZB = "select from 借出表 " 'where 品名 = '" & PM & "'"= adCmdText= ZBSubPrivate Sub Command2_Click= ""= ""= ""= ""= ""= ""End SubPrivate Sub Command3_ClickUnload MeEnd SubPrivate Sub Form_LoadDo Until "品名""型号""单位"LoopEnd Sub归还管理代码:Private Sub Command1_ClickIf = "" And = "" Then ' = "" And = "" ThenMsgBox "“品名”和“型号”不能同时为空,必须输入其中一项", , "提示信息" Exit SubElseIf = "" And = "" Then ' = "" ThenMsgBox "请输入产品“数量”或“单位”之一", , "提示信息"Exit SubEnd IfIf = "" ThenMsgBox "请经手人签名", vbCritical, "提示信息"Exit SubEnd IfIf = "" ThenMsgBox "请输入归还人姓名", vbCritical, "提示信息"Exit SubEnd If'添加"品名" = Trim 'Trim"型号" = Trim 'Trim"数量" = Trim"单位" = Trim 'Trim"经手人" = Trim"归还人" = Trim"归还日期" = Date"说明" = TrimEnd IfDim pm As StringDim pms As StringDim n As StringDim m As Stringpm = Trimn = Valpms = "select from 库存表 where 品名='" & pm & "'"= adCmdText= pmsm = "数量".ValueIf "型号" = Trim Then"数量" = Valm + ValnEnd IfDim X As IntegerX = MsgBox"产品归还登记成功,是否继续添加产品", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息" If X = vbNo ThenUnload MeEnd If= ""= ""= ""= ""= ""= ""= ""= "归还信息"Dim ZB As StringZB = "select from 归还表 " 'where 品名 = '" & PM & "'" = adCmdText= ZBSubPrivate Sub Command2_Click= ""= ""= ""= ""= ""= ""= ""End SubPrivate Sub Command3_ClickUnload MeEnd SubPrivate Sub Form_Load' Dim i As String' i = 0'' ' Do Until ' "品名"' "型号"' "单位"' ' i = i + 1' LoopCall pmEnd SubPrivate Sub pmDim i As VariantDim j As VariantDim k As VariantDim a As VariantDim b As VariantDim c As VariantDim s As VariantDim D As Varianti = 0j = 0Do Until a = a + "," + "品名"b = b + "," + "型号"b = b + "," + "单位"i = i + 1LoopD = Splita, ","If j < i Thens = D2s'k = 0'If k < j And Dk <> Dj Then'If Dk <> Dj Then' Dj' k = k + 1' Else' k = k + 1'End If'End Ifj = j + 1End If= s 'a + "," + D2 + D1 '+ " " + Vali + " " + Valj + " " + Valk = j' D1End 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。
VB创建access数据表字段代码

VB创建access数据表字段代码Private 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=" + App.Path & "\new data.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.At tributesNext'设置主键tbl.Keys.Append "PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "id", "", "" cat.Tables.Append tblMsgBox "数据库表:" + + "已经创建成功!"Set tbl = NothingSet cat = NothingDim adocon As ADODB.ConnectionSet adocon = New ADODB.Connectionadocon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\n ewdata.mdb;" & "Mode=Share Deny Read|Share Deny Write;Persist Security Info= False;Jet OLEDB:Database Password="Set cat = New ADOX.CatalogSet cat.ActiveConnection = adoconFor i = 0 To cat.Tables.Count - 1Debug.Print cat.Tables(i).Name '取出表名If cat.Tables(i).Name = "MyTable" ThenFor j = 0 To cat.Tables(i).Columns.Count - 1Debug.Print cat.Tables(i).Columns(j) '取出列名Debug.Print cat.Tables(i).Columns(j).Type '取出数据类型For Each p In cat.Tables(i).Columns(j).PropertiesDebug.Print p.Type & & p.Attributes '取出列的属性NextNext jEnd IfNext icat.Tables.Item("MyTable").Columns("ll").Properties("Jet OLEDB:Allow Zero Length"). Value = True '设置零长度正确Set cat = Nothingadocon.CloseSet adocon = NothingEnd SubType 属性指示Parameter、Field 或Property 对象的操作类型或数据类型。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB创建access数据表字段代码Private 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=" + App.Path & "\new data.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.At tributesNext'设置主键tbl.Keys.Append "PrimaryKey", ADOX.KeyTypeEnum.adKeyPrimary, "id", "", "" cat.Tables.Append tblMsgBox "数据库表:" + + "已经创建成功!"Set tbl = NothingSet cat = NothingDim adocon As ADODB.ConnectionSet adocon = New ADODB.Connectionadocon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\n ewdata.mdb;" & "Mode=Share Deny Read|Share Deny Write;Persist Security Info= False;Jet OLEDB:Database Password="Set cat = New ADOX.CatalogSet cat.ActiveConnection = adoconFor i = 0 To cat.Tables.Count - 1Debug.Print cat.Tables(i).Name '取出表名If cat.Tables(i).Name = "MyTable" ThenFor j = 0 To cat.Tables(i).Columns.Count - 1Debug.Print cat.Tables(i).Columns(j) '取出列名Debug.Print cat.Tables(i).Columns(j).Type '取出数据类型For Each p In cat.Tables(i).Columns(j).PropertiesDebug.Print p.Type & & p.Attributes '取出列的属性NextNext jEnd IfNext icat.Tables.Item("MyTable").Columns("ll").Properties("Jet OLEDB:Allow Zero Length"). Value = True '设置零长度正确Set cat = Nothingadocon.CloseSet adocon = NothingEnd SubType 属性指示Parameter、Field 或Property 对象的操作类型或数据类型。
设置和返回值设置或返回下列DataTypeEnum 值之一。
相应的OLE DB 类型标识符在下表的说明栏的括号中给出。
有关OLE DB 数据类型的详细信息,请参阅第10 章和《OLE DB 程序员参考》的附录A。
常量说明AdArray 与其他类型一起加入逻辑OR 以指示该数据是那种类型的安全数组(DBTYPE_ARRAY)。
AdBigInt 8 字节带符号的整数(DBTYPE_I8)。
AdBinary 二进制值(DBTYPE_BYTES)。
AdBoolean 布尔型值(DBTYPE_BOOL)。
adByRef 与其他类型一起加入逻辑OR 以指示该数据是其他类型数据的指针(DBTYPE_BYREF)。
adBSTR 以空结尾的字符串(Unicode) (DBTYPE_BSTR)。
adChar 字符串值(DBTYPE_STR)。
adCurrency 货币值(DBTYPE_CY)。
货币数字的小数点位置固定、小数点右侧有四位数字。
该值保存为8 字节范围为10,000 的带符号整型值。
adDate 日期值(DBTYPE_DATE)。
日期按双精度型数值来保存,数字全部表示从1899 年12 月30 开始的日期数。
小数部分是一天当中的片段时间。
adDBDate 日期值(yyyymmdd) (DBTYPE_DBDATE)。
adDBTime 时间值(hhmmss) (DBTYPE_DBTIME)。
adDBTimeStamp 时间戳(yyyymmddhhmmss 加10 亿分之一的小数)(DBTYPE_DBTIMESTAMP).adDecimal 具有固定精度和范围的精确数字值(DBTYPE_DECIMAL)。
adDouble 双精度浮点值(DBTYPE_R8)。
adEmpty 未指定值(DBTYPE_EMPTY)。
adError 32 - 位错误代码(DBTYPE_ERROR)。
adGUID 全局唯一的标识符(GUID) (DBTYPE_GUID)。
adIDispatch OLE 对象上Idispatch 接口的指针(DBTYPE_IDISPA TCH)。
adInteger 4 字节的带符号整型(DBTYPE_I4)。
adIUnknown OLE 对象上IUnknown 接口的指针(DBTYPE_IUNKNOWN)。
adLongVarBinary 长二进制值(仅用于Parameter 对象)。
adLongVarChar 长字符串值(仅用于Parameter 对象)。
adLongVarWChar 以空结尾的长字符串值(仅用于Parameter 对象)。
adNumeric 具有固定精度和范围的精确数字值(DBTYPE_NUMERIC)。
adSingle 单精度浮点值(DBTYPE_R4)。
adSmallInt 2 字节带符号整型(DBTYPE_I2)。
adTinyInt 1 字节带符号整型(DBTYPE_I1)。
adUnsignedBigInt 8 字节不带符号整型(DBTYPE_UI8)。
adUnsignedInt 4 字节不带符号整型(DBTYPE_UI4)。
adUnsignedSmallInt 2 字节不带符号整型(DBTYPE_UI2)。
adUnsignedTinyInt 1 字节不带符号整型(DBTYPE_UI1)。