




已阅读5页,还剩160页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录一、创建数据库11-1利用 DAO 创建数据库和数据表11-2 利用 ADOX 创建数据库和数据表2ADOX常用方法21-3 利用 SQL 语句创建数据库和数据表31-4 在已有的数据库中创建数据表(DAO)41-5 在已有的数据库中创建数据表(ADOX)41-6 在已有的数据库中创建数据表(SQL,Command 对象)51-7 在已有的数据库中创建数据表(SQL,Recordset 对象)61-10 利用工作表数据创建数据表(ADOX)71-11 利 用 工 作 表 数 据 创 建 数(ADO+SQL)91-12 利用工作表数据创建数据表(DAO)10二、获取数据库中的信息122-1检查数据表是否存在(ADO)12实例 2-2 检查数据表是否存在(ADOX)15实例 2-3 检查数据表是否存在(DAO)16实例 2-5 获取数据库中所有表的名称和类型(ADO)16实例 2-6 获取数据库中所有表的名称和类型(ADOX)17实例 2-7 获取数据库中所有的表的名称(DAO)18实例 2-12 检查某字段是否存在(ADO)19扩展:使用 connection 对象的 find 方法来查找某个字段是否存在19获取数据库中某数据表的所有字段信息20实例 2-20 获取数据库的所有查询信息(ADOX)20实例 2-21 获取数据库的所有查询信息(DAO)21实 例 2-22 获 取 数 据 库 的 模 式 信 (openschema)22实例 2-23 获取表的创建日期和最后更新日期(ADOX)23实例 2-24 获取表的创建日期和最后更新日期(DAO)24三、SQL各种查询操作25实例 3-1 将数据库数据导入到excel 工作表(ADO之一)25实例 3-2 数据库数据导入到excel 工作表(ADO,之三)26实例 3-4 将数据库数据导入到Excel 工作表(DAO,之一)27实例 3-6 将数据库数据导入工作表(QueryTable 集合)28实例 3-7 数据库某些字段数据导入到 Excel 工作表(ADO)29实例 3-9 查询前面的若干条记录30实 例 3-11 查 询 不 重 复 的 字 段 记 录(DISTINCT)31实例 3-12 利用 Like 运算符进行模糊查询32实 例 3-13 查 询 某 一 区 间 内 的 记 (BETWEEN)34实例 3-14 查询存在于某个集合里面的记录(IN)35实例 3-15 将查询结果进行排序 (ORDERBY)36实 例 3-16 进 行 复 杂 条 件 的 查 询(WHERE)37实例 3-17 利用合计函数进行查询(查询最大值和最小值)38实例 3-18 利用合计函数进行查询(查询合计值和平均值)39实例 3-19 将一个查询结果作为查询条件进行查询40实例 3-20 将查询结果进行分组 (GROUPBY)41实例 3-21 查询结果进行分组 (HAVING)42实例 3-22 通过计算列进行查询44实例 3-23 使用 IS NULL 运算符进行查询45实例 3-24 使用 COUNT 函数进行查询46实例 3-25 使用 FIRST 函数与 LAST 函数查询46实例 3-26 使用 Parameters 参数动态查询记录(DAO)指定单个参数47实例 3-27 使用 parameters 参数动态查询记录(DAO):指定多个参数48实例 3-28 使用 parameters 参数动态查询记录(ADO):指定单个参数49实例 3-29 使用 Parameters 参数动态查询记录(ADO):指定多个参数51实例 3-30 使用别名查询数据库52实例 3-31 将查询结果作为窗体控件的源数据53实例 3-32 通过窗体控件查询浏览数据库记录55实例 3-33 多表查询(WHERE 连接)65实例 3-34 多表查询(内连接 INNERJOINT)65实例 3-35 多表查询(左外连接 LEFTOUTER JOINT)65实例 3-36 多表查询(右外连接 RIGHTOUTER JOINT)66实例 3-37 多表查询(子查询 WHERE,ANY,SOME)66实例 3-38 多表查询(子查询 EXISTS,NOT EXISTS)66实例 3-39 从两个数据表中查询出都存在的记录分析:66实例 3-40 从两个数据表查询出只存在于某数据表的记录66实例 3-41 将查询结果生成一个数据表67实例 3-42 将查询结果保存为一个 XML文件68实例 3-43 利用工作表实现记录的分页显示69实例 3-44 利用窗体实现记录的分页显示71四、添加更新及删除记录74实例 4-1 添加新记录(ADO+addnew)74实例 4-2 添加新记录(ADO+SQL)75实例 4-3 添加新记录(DAO+addnew)76实例 4-4 添加新记录(DAO+SQL)76实例 4-5 添加新记录(Access+SQL)77实例 4-6 修改更新特定记录(ADO+SQL)77实例 4-7 修改更新特定记录(DAO+SQL)78实 例 4-8 修 改 更 新 特 定 记 录(Access+SQL)78实例 4-9 修改更新全部记录(ADO+SQL)78实 例 4-10 修 改 更 新 全 部 记 录(DAO+SQL)79实 例 4-11 修 改 更 新 全 部 记 录(Access+SQL)79实例 4-12 删除特定记录(ADO+SQL)79实例 4-13 删除特定记录(DAO+SQL)80实例 4-14 删除特定记录(Acess+SQL)80实例 4-15 删除全部记录(ADO+SQL)80实例 4-16 删除全部记录(DAO+SQL)81实例 4-17 删除全部记录(Access+SQL)81实例 4-18 通过窗体编辑记录81五、将数据保存为数据库数据83实例 5-1 将整个工作表数据都保存为新的 Access 数据库83实例 5-2 将工作表的某些区域数据保存为新 Access 数据库(Access)85实例 5-3 将工作簿的所有工作表数据分别保存为不同的数据表(Access)86实例 5-4 将多个工作簿的某个工作表数据汇总为新 Access 数据库(Access)86实例 5-5 将多个工作簿的某个工作表数据保存为不同的数据表(Access)88实例 5-6 将工作表数据保存到已有的Access 数据库(循环方式)(ADO)89实例 5-7 将工作表数据保存到已有的Access 数据库(循环方式)(DAO)91实例 5-8 将工作表数据保存到已有的Access 数据库(数组方式)(ADO)93实例 5-9 将工作表数据保存到已有的Access 数据库(数组方式)(DAO)95实例 5-10 将工作簿的所有工作表数据分别保存为不同的数据表(ADO)96实例 5-11 将工作簿的所有工作表数据分别保存为不同的数据表(DAO)98六、数据库中的数据表操作99实例 6-1 打开数据库和数据表(Getobject函数)99实 例 6-2 打 开 数 据 库 数 据 表(createobject 函数)100实例 6-3 删除数据表(ADO)101实例 6-4 删除数据表(ADOX)101实例 6-5 删除数据表(DAO+DELETE)101实例 6-6 删除数据表(DAO+SQL)101实例 6-7 删除数据表(Access)102实例 6-8 为数据表增加字段(ADO)102实例 6-9 为数据表增加字段(ADOX) 实例 6-10 为数据表增加字段(DAO)103实例 6-11 为数据表增加字段(Access)103实例 6-12 删除字段(ADO)105实例 6-13 删除字段(ADOX)105实例 6-14 删除字段(DAO)105实例 6-15 删除字段(Access)107实例 6-16 改变字段的类型(ADO)108实例 6-17 改变字段的类型(DAO)109实例 6-18 改变字段的类型(Access)109实例 6-19 改变字段的长度(ADO)110实例 6-20 改变字段的长度(DAO)110实例 6-21 改变字段的长度(Access)111实例 6-22 重命名数据表(Access)111实例 6-23 复制数据表(Access)112实例 6-24 复制数据表(ADO)112实例 6-25 复制数据表(DAO)113实例 6-26 通过窗体维护数据库114七、sql server数据库有关123八、FoxPro 数据库有关137九、141实例 9-1 从工作簿的某个工作表中查询获取数据(ADO)141实例 9-2 从工作簿的全部工作表中查询获取数据(ADO)142实例 9-3 利用 DAO 从工作表中查询数据143实例 9-4 查询其他工作簿的数据(ADO)144实例 9-5 获取其他工作簿中的工作表名称清单(ADOX)145实例 9-6 利用 ADO 对工作表数据进行多重排序146实例 9-7 利用 ADO 按照字符的长度对数据进行排序147实例 9-8 比较两张表,将两个表中相同的行数据抓取出来148实例 9-9 比较两张表,将只存在于某个表中的行数据抓取出来149实例 9-10 删除工作表数据区域内的所有空行150十、关于文本文件151一、 创建数据库1-1 利用 DAO 创建数据库和数据表首先建立对 DAO 对象库 Microsoft DAO3.6 Object Library 的引用.在 VBA 界面下:工具-引用,选中”Microsoft DAO3.6 Object Library”Public Sub1_1()Dim myDb As DAO.Database 定义 DAO 的 Database(数据库)对象变量Dim myTbl As DAO.TableDef 定义 DAO 的 TableDef(数据表)对象变量Dim myData As String 定义数据库名称变量Dim myTable As String 定义数据表名称变量设置要创建的数据库名称(包括完整路径)myData=ThisWorkbook.Path & “学生成绩管理.mdb”设置要创建的数据表名称myTable=”期末成绩”删除已经存在的数据库文件on error resume nextkill myDataon error goto 0创建数据库Set myDb=CreateDatabase(myData,dbLangChineseSimplified)创建数据表Set myTbl=myDb.CreateTableDef(myTable)为创建的数据表添加各个字段With myTbl.Fields.Append .CreateField(“学号”,dbText,10).Fields.Append .CreateField(“姓名”,dbText,6).Fields.Append .CreateField(“性别”,dbText,1).Fields.Append .CreateField(“班级”,dbText,10).Fields.Append .CreateField(“数学”,dbSingle).Fields.Append .CreateField(“语文”,dbSingle).Fields.Append .CreateField(“物理”,dbSingle).Fields.Append .CreateField(“化学”,dbSingle).Fields.Append .CreateField(“英语”,dbSingle).Fields.Append .CreateField(“总分”,dbSingle)End With将创建的数据表添加到数据库的 TableDefs 集合中myDb.TableDefs.Append myTbl关闭数据库,并释放变量myDb.CloseSet myDb=NothingSet myTbl=NothingEnd sub1-2 利用 ADOX 创建数据库和数据表引用:microsoft ADO Ext.2.X for DDL and Security代码:public sub1_2()dim mycat as new adox.catalog 定义 ADOX 的 Catalog 对象变量dim mytbl as new table 定义 table 对象变量dim mydata as string 定义数据库名称变量dim mytable as string 定义数据表名称变量设置要创建的数据库名称(包括完整路径)mydata=thisworkbook.path & “学生成绩管理.mdb”设置要创建的数据表名称mytable=”期末成绩”删除已经存在的数据库文件on error resume nextkill mydataon error goto 0创建新的数据库mycat.create”provider=microsoft.jet.oledb.4.0;data source=” & mydata创建数据表,并添加字段with =mytable.columns.append “学号”,advarwchar,10.columns.append “姓名”,advarwchar,6.columns.append “性别”,advarwchar,1.columns.append “班级”,advarwchar,10.columns.append “数学”,adSingle.columns.append “语文”,adSingle.columns.append “物理”,adSingle.columns.append “化学”,adSingle.columns.append “英语”,adSingle.columns.append “总分”,adSingleEnd with将创建的数据表添加到 ADOX 的 Tables 集合中mycat.tables.append mytbl释放变量set mycat=nothingset mytbl=nothingend sub注:在 VB 中, 常用的数据访问接口有下列三种: 数据库访问对象(DAO, DataAccess object) 、远程数据库对象(RDO,Remote Data Object) 和 ActiveX 数据对象(ADO,ActiveX Data Object)ADOX常用方法Append 方法:可以创建 columns,groups,indexes,keys,procedures,tables,users,views 等为数据表添加字段:mytbl.columns.append 字段名,数据类型,字段长度将创建的数据表添加到 ADOX 的 Tables 集合中的语句是:Mycat.tables.append mytblCreate 方法:创建一个新的数据库的语句:Mycat.create “provider=Microsoft.jet.oledb.4.0;data source=” & mydataDelete 方法:删除数据表:Mycat.tables.delete 数据表名Refresh 方法:用于更新集合中的对象1-3 利用 SQL 语句创建数据库和数据表首先引用:microsoft activeX data objects 2.X library 和 microsoft ado ext.2.x for ddl andsecurity”代码:public sub1_3()dim mycat as new adox.catalog 定义 ADOX 的 Catalog 对象变量Dim mycmd as new mand 定义 Command 对象变量dim mydata as string 定义数据库名称变量dim mytable as string 定义数据表名称变量dim SQL as string设置要创建的数据库名称(包括完整路径)mydata=thisworkbook.path & “学生成绩管理.mdb”设置要创建的数据表名称mytable=”期末成绩”删除已经存在的数据库文件on error resume nextkill mydataon error goto 0创建数据库文件mycat.create “provider=microsoft.jet.oledb.4.0;Data source=” & mydata设置数据库连接set mycmd.activeconnection=mycat.activeconnection设置创建数据表的 SQL 语句SQL = CREATE TABLE & myTable _& (学号 text(10),姓名 text(6),性别 text(1),班级 text(10), _& 数学 Single,语文 Single,物理 Single,化学 Single, _& 英语 Single,总分 Single)利用 execute 方法创建数据表with mandtext=sql.execute, , adcmdtextend with释放变量set mycat=nothingset mycmd=nothingend sub注:有两种方法来创建数据表:利用 ADODB.Command 对象的 commandtext 属性和 execute 方法:dim mycmd as new mandset mycmd.activeconnection=mycat.activeconnectionwith mandtext=SQL.execute, , adcmdtextend with利用 ADODB.Connection 对象的 execute 方法来生成几个记录集Dim cnn as new adodb.connectiondim rs as new adodb.recordsetset cnn=mycat.activeconnectionset rs=cnn.execute(sql)1-4 在已有的数据库中创建数据表(DAO)引用 DAO 对象库:microsoft DAO 3.6 object library代码:public sub1_4()dim mydb as dao.database 定义 DAO 的 database(数据库)对象变量dim mydata as string 定义数据库名称变量dim mytable as string 定义数据表名称变量设置数据库名称(包括完整路径)mydata=thisworkbook.path & “学生成绩管理.mdb”设置要创建的数据表名称mytable=”期末成绩”打开数据库set mydb=opendatabase(mydata)删除数据库中已经存在的数据表mydb.tabledefs.delete mytable创建新的数据表set mytbl=mydb.createtabledef(mytable)以下与1-1相同end sub补充:opendatabase 方法用来打开一个已有的数据库,返回一个数据库对象,并自动将该数据库对象加入到数据库对象集中。set database=workspace.opendatabase(databasename,options,read-only,connect)workspace:定义的 Workspace 类型变量,它表示所使用的工作环境,将包含新的数据库对象databasename:一个有效的 Jet 数据库文件或 ODBC 数据源options:T/F,T 表示以独占方式打开数据库,而 F 表示以共享方式打开数据库read-only:是否以只读方式打开数据库,为 T/Fconnect:说明不同连接方式以及密码扩展:利用 DAO 打开有密码的 Access 数据库set mydb=opendatabase(mydata,true,false,”;pwd=12345”)1-5 在已有的数据库中创建数据表(ADOX)引用:microsoft ADO Ext.2.x for ddl and security代码:public sub1_5()Dim mycat as new adox.catalog 定义 ADOX 的 catalog 对象变量dim mytbl as new table 定义 table 对象变量dim mydata as string 定义数据库名称变量dim mytable as string 定义数据表名称变量设置数据库名称(包括完整路径)mydata=thisworkbook.path & “学生成绩管理.mdb”设置要创建的数据表名称mytable=”期末成绩”建立与数据库的连接mycat.activeconnection=”provider=microsoft.jet.oledb.4.0;”_& “data source=” & mydata删除数据库中已经存在的数据表mycat.table.delete mytable创建数据表,并添加字段以下与1-2同end sub注:Activeconnection 属性用来指示 catalog 所属的 ADOConnection 对象,表示到数据源的打开的连接。1-6 在已有的数据库中创建数据表(SQL,Command 对象)引用:microsoft activex data objects2.x library 和 microsoft ado ext.2.x for ddl and security代码:public sub1_6()dim mycat as new adox.catalog 定义 adox 的 catalog 对象变量dim mycmd as new mand 定义 command 对象变量dim mydata as string 定义数据库名称变量dim mytable as string 定义数据表名称变量dim sql as string 设置数据库名称(包括完整路径)mydata=thisworkbook.path & “学生成绩管理.mdb”设置要创建的数据表名称mytable=”期末成绩”建立与数据库的连接mycat.activeconnection=”provider=microsoft.jet.oledb.4.0;”_& “data source=” & mydata删除数据库中已经存在的数据表mycat.tables.delete mytable设置数据库连接set mycmd.activeconnection=mycat.activeconnection设置创建数据表的 SQL 语句SQL=”CREATE TABLE” & mytable_& “(学号 text(10),姓名 text(6),性别 text(1),班级 text(10),” _& “数学 single,语文 single,物理 single,化学 single, “_& “英语 single,总分 single)”利用 Execute 方法创建数据表With mandtext=sql.execute, , adcmdtextEnd with释放变量Set mycat=nothingSet mycmd=nothing弹出信息Msgbox “数据表创建成功!”,vbinformation,”创建数据表”End sub1-7 在已有的数据库中创建数据表(SQL,Recordset 对象)引用:Microsoft ActiveX Data Objects 2.X library代码:public sub1_7()dim cnn as new adodb.connection 定义 connection 对象变量dim rs as new adodb.recordset 定义 Recordset 对象变量dim mydata as string 定义数据库名称变量dim mytable as string 定义数据表名称变量dim sql as string设置数据库名称(包括完整路径)mydata=thisworkbook.path & “学生成绩管理.mdb”设置要创建的数据表名称mytable=”期末成绩”建立与数据库的连接with vider=”microsoft.jet.oledb.4.0”.open mydataend with删除数据库中已经存在的数据表SQL=”drop table” & mytableset rs=cnn.execute(sql)设置创建数据表的 SQL 语句sql=”create table” & mytable _& “(学号 text(10),姓名 text(6), 性别 text(1), 班级 text(10),” _& “数学 single, 语文 single, 物理 single, 化学 single,” _& “英语 single, 总分 single)”利用 execute 方法创建数据表set rs=cnn.execute(sql)关闭数据库cnn.close释放变量set mycat=nothingset rs=nothingset cnn=nothing弹出信息msgbox “数据表创建成功!”, vbinformation,”创建数据表”end sub1-10 利用工作表数据创建数据表(ADOX)数据表结构ABCD1数据表名称期中成绩23 字段名称字段类型字段大小是否索引4学号adVarWChar10是5姓名adVarWChar66性别adVarWChar17班级adVarWChar108数学adSingle9语文adSingle10物理adSingle11化学adSingle12英语adSingle13总分adSingle14考试日期adDate代码:Public Sub1_10()Dim myCat As New ADOX.Catalog 定义 catalog 变量Dim myTable As New ADOX.Table 定义 table 变量Dim myColumn As ADOX.Column 定义 column 变量Dim myIdx As New ADOX.Index 定义 index 变量Dim ws As Worksheet 定义 worksheet 变量Dim i As Long Dim myData As String myData = ThisWorkbook.Path & 学生成绩管理.mdb 指定数据文件判断是否有保存数据表资料的工作表存在On Error Resume NextSet ws = Worksheets(数据表设计)On Error GoTo 0If ws Is Nothing ThenMsgBox 没有数据表资料存在!, vbCritical, 警告Exit SubEnd Ifws.Activate建立与数据库的连接myCat.ActiveConnection = provider=microsoft.jet.oledb.4.0; _& data source= & myData删除已经存在的数据表On Error Resume NextmyCat.Tables.Delete ws.Range(B1).ValueOn Error GoTo 0建立索引myIdx.Name = PrimaryKeymyIdx.PrimaryKey = True开始根据工作表的数据创建数据表With myTable.Name = ws.Range(B1).ValueFor i = 4 To ws.Range(A65536).End(xlUp).RowSet myColumn = New ColumnWith myColumn.Name = ws.Cells(i, 1).Value.Type = GetConstNo(ws.Cells(i, 2).Value)If ws.Cells(i, 3).Value 0 Then.DefinedSize = ws.Cells(i, 3).Value.Attributes = adColNullableEnd IfEnd With.Columns.Append myColumnIf ws.Cells(i, 4).Value = 是 ThenmyIdx.Columns.Append ws.Cells(i, 1).ValueEnd IfNextEnd With将表定义进行保存myCat.Tables.Append myTablemyTable.Indexes.Append myIdx弹出信息MsgBox 数据表创建成功!, _vbOKOnly + vbInformation, 创建数据表关闭连接,并释放变量Set ws = NothingSet myIdx = NothingSet myTable = NothingSet myCat = NothingEnd Sub将工作表中定义的数据类型(字符串型)转换为字段类型 VBA 常量,即编制一个自定义函数 GetConstNoFunction GetConstNo(myStr As String) As IntegerSelect Case myStrCase adBigInt: GetConstNo = 20Case adBinary: GetConstNo = 128Case adBoolean: GetConstNo = 11Case adBSTR: GetConstNo = 8Case adChapter: GetConstNo = 136Case adChar: GetConstNo = 129Case adCurrency: GetConstNo = 6Case adDate: GetConstNo = 7Case adDBDate: GetConstNo = 133Case adDBTime: GetConstNo = 134Case adDBTimeStamp: GetConstNo = 135Case adDecimal: GetConstNo = 14Case adDouble: GetConstNo = 5Case adEmpty: GetConstNo = 0Case adError: GetConstNo = 10Case adFileTime: GetConstNo = 64Case adGUID: GetConstNo = 72Case adIDispatch: GetConstNo = 9Case adInteger: GetConstNo = 3Case adIUnknown: GetConstNo = 13Case adLongVarBinary: GetConstNo = 205Case adLongVarChar: GetConstNo = 201Case adLongVarWChar: GetConstNo = 203Case adNumeric: GetConstNo = 131Case adPropVariant: GetConstNo = 138Case adSingle: GetConstNo = 4Case adSmallInt: GetConstNo = 2Case adTinyInt: GetConstNo = 16Case adUnsignedBigInt: GetConstNo = 21Case adUnsignedInt: GetConstNo = 19Case adUnsignedSmallInt: GetConstNo = 18Case adUnsignedTinyInt: GetConstNo = 17Case adUserDefined: GetConstNo = 132Case adVarBinary: GetConstNo = 204Case adVarChar: GetConstNo = 200Case adVariant: GetConstNo = 12Case adVarNumeric: GetConstNo = 139Case adVarWChar: GetConstNo = 202Case adWChar: GetConstNo = 130Case Else: GetConstNo = -1End SelectEnd Function1-11 利 用 工 作 表 数 据 创 建 数(ADO+SQL)表结构同1-10代码:Public Sub1_11()Dim cnn As New ADODB.Connection 定义 connection 对象变量Dim rs As New ADODB.Recordset 定义 recordset 对象变量Dim ws As Worksheet 定义 worksheet 对象变量Dim i As Long Dim myData As String, SQLAs StringmyData = ThisWorkbook.Path & 学生成绩管理.mdb 指定数据库文件判断是否有保存数据表资料的工作表存在On Error Resume Next Set ws = Worksheets(数据表设计)On Error GoTo 0If ws Is Nothing ThenMsgBox 没有数据表资料存在!, vbCritical, 警告Exit SubEnd Ifws.Activate建立与数据库的连接Set cnn = New ADODB.ConnectionWith cnn.Provider = microsoft.jet.oledb.4.0.Open myDataEnd With删除已经存在的数据表On Error Resume NextSQL = drop table & ws.Range(B1).ValueSet rs = cnn.Execute(SQL)On Error GoTo 0生成创建数据表的 SQL 语句字符串SQL = create table & ws.Range(B1).Value & (For i = 4 To ws.Range(A65536).End(xlUp).RowSQL = SQL & ws.Cells(i, 1).Value & & ws.Cells(i, 2).ValueIf ws.Cells(i, 3).Value 0 ThenSQL = SQL & ( & ws.Cells(i, 3).Value & )End IfIf ws.Cells(i, 4).Value = 是 ThenSQL = SQL & primary keyEnd IfSQL = SQL & ,NextSQL = Left(SQL, Len(SQL) - 1) & )创建数据表Set rs = cnn.Execute(SQL)MsgBox 数据表创建成功!, _vbOKOnly + vbInformation, 创建数据表关闭连接,并释放变量cnn.CloseSet ws = NothingSet rs = NothingSet cnn = NothingEnd Sub1-12 利用工作表数据创建数据表(DAO)引用:microsoft DAO 3.6 object library代码:Public Sub1_12()Dim myDb As DAO.Database 定义 database 变量Dim myTable As DAO.TableDef 定义 tabledef 变量Dim myIndex As DAO.Index 定义 index 变量Dim ws As Worksheet 定义 worksheet 变量Dim i As LongDim myData As StringmyData = ThisWorkbook.Path & 学生成绩管理.mdb 指定数据库文件判断是否有保存数据表资料的工作表存在On Error Resume NextSet ws = Worksheets(数据表设计)On Error GoTo 0If ws Is Nothing ThenMsgBox 没有数据表资料存在!, vbCritical, 警告Exit SubEnd Ifws.Activate建立与数据库的连接Set myDb = OpenDatabase(myData)删除已经存在的数据表On Error Resume NextmyDb.TableDefs.Delete Range(B1).ValueOn Error GoTo 0创建数据表Set myTable = myDb.CreateTableDef(Range(B1).Value)创建索引Set myIndex = myTable.CreateIndex(PrimaryKey)myIndex.Primary = True开始创建数据表字段等For i = 4 To Range(A65536).End(xlUp).RowWith myTable添加字段.Fields.Append .CreateField(Cells(i, 1).Value, _GetConstNo(Cells(i, 2).Value), Cells(i, 3).Value)对文本型字段设置是否允许零长度字符串If Cells(i, 2).Value = dbText ThenIf Cells(i, 4).Value = True Then.Fields(Cells(i, 1).Value).AllowZeroLength = TrueEnd IfEnd If设置是否为必填字段If Cells(i, 5).Value = True Then.Fields(Cells(i, 1).Value).Required = TrueElse.Fields(Cells(i, 1).Value).Required = FalseEnd If设置索引 If Cells(i, 6).Value = 是 ThenmyIndex.Fields.Append myI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕西省宝鸡市招标采购从业人员专业技术能力考试(招标采购合同管理中级)测试题库及答案(2025年)
- 设计跨学科阅读任务拓展学生视野
- 数学思想方法的多维度培养策略
- 企业预算编制过程中信息不对称的挑战与解决方案
- 校外实践基地合作企业选择与合作方式
- 基于区域合作的水库资金筹集模式探索
- 智能化技术在儿童友好校园设施中的应用
- 金融科技助力农村创业与收入提升机制分析
- 人才引进与培养机制创新
- 能源管理系统在可再生能源设备中的集成方案
- 毕业设计(论文)-水果自动分拣机设计
- 食品科技的未来2024年的食品创新与食品安全
- 我国的宗教政策课件
- 老年抑郁量表GDS、焦虑自评量表SAS、心理状态评估量表MSSNS、汉密尔顿抑郁量表(HAMD)
- 1、山东省专业技术职称评审表(A3正反面手填)
- 高级微观经济学
- 起重机械主要参数课件
- 浙大四版概率论与数理统计《一元线性回归》课件
- 可行性分析及可行性分析报告模板
- 隧道质量通病与防治措施
- TCADHOH 0003-2023 手语传译职业技能评价规范
评论
0/150
提交评论