ExcelVBA与数据库Access整合笔记1上课讲义.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《ExcelVBA与数据库Access整合笔记1上课讲义.doc》由会员分享,可在线阅读,更多相关《ExcelVBA与数据库Access整合笔记1上课讲义.doc(657页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Good is good, but better carries it.精益求精,善益求善。ExcelVBA与数据库Access整合笔记1-1-1利用DAO创建数据库和数据表1. 首先建立对DAO对象库MicrosoftDAO3.6ObjectLibrary的引用.在VBA界面下:工具-引用,选中”MicrosoftDAO3.6ObjectLibrary”2. 代码:PublicSub1_1()DimmyDbAsDAO.Database定义DAO的Database(数据库)对象变量DimmyTblAsDAO.TableDef定义DAO的TableDef(数据表)对象变量DimmyDataAsS
2、tring定义数据库名称变量DimmyTableAsString定义数据表名称变量设置要创建的数据库名称(包括完整路径)myData=ThisWorkbook.Path&“学生成绩管理.mdb”设置要创建的数据表名称myTable=”期末成绩”删除已经存在的数据库文件onerrorresumenextkillmyDataonerrorgoto0创建数据库SetmyDb=CreateDatabase(myData,dbLangChineseSimplified)创建数据表SetmyTbl=myDb.CreateTableDef(myTable)为创建的数据表添加各个字段WithmyTbl.Fie
3、lds.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.
4、CreateField(“化学”,dbSingle).Fields.Append.CreateField(“英语”,dbSingle).Fields.Append.CreateField(“总分”,dbSingle)EndWith将创建的数据表添加到数据库的TableDefs集合中myDb.TableDefs.AppendmyTbl关闭数据库,并释放变量myDb.CloseSetmyDb=NothingSetmyTbl=Nothing弹出信息MsgBox”创建数据库成功!”&vbCrLf&“数据库文件名为:”&myData&vbCrLf&“数据表名称为:”&myTable&vbCrLf&“保存
5、位置:”&ThisWorkbook.Path,vbInformation,”创建数据库”Endsub注:CreateDatabase方法创建数据库setmydb=createdatabase(mydata,dblangchinesesimplified)mydb:数据库类型变量dblangchinesesimplified:表达字符串比较规则,这里为简体中文CreateTableDef方法创建数据表SetmyTbl=mydb.Createtabledef(mytable)mytbl:表类型变量mydb:数据库名mytable:表名补充:创建带密码的Access数据库Setmydb=create
6、database(mydata,dblangchinesesimplified&“;pwd=12345”)1-2利用ADOX创建数据库和数据表:引用:microsoftADOExt.2.XforDDLandSecurity代码:publicsub1_2()dimmycatasnewadox.catalog定义ADOX的Catalog对象变量dimmytblasnewtable定义table对象变量dimmydataasstring定义数据库名称变量dimmytableasstring定义数据表名称变量设置要创建的数据库名称(包括完整路径)mydata=thisworkbook.path&“学生
7、成绩管理.mdb”设置要创建的数据表名称mytable=”期末成绩”删除已经存在的数据库文件onerrorresumenextkillmydataonerrorgoto0创建新的数据库mycat.create”provider=microsoft.jet.oledb.4.0;datasource=”&mydata创建数据表,并添加字段withmytbl.name=mytable.columns.append“学号”,advarwchar,10.columns.append“姓名”,advarwchar,6.columns.append“性别”,advarwchar,1.columns.appe
8、nd“班级”,advarwchar,10.columns.append“数学”,adSingle.columns.append“语文”,adSingle.columns.append“物理”,adSingle.columns.append“化学”,adSingle.columns.append“英语”,adSingle.columns.append“总分”,adSingleEndwith将创建的数据表添加到ADOX的Tables集合中mycat.tables.appendmytbl释放变量setmycat=nothingsetmytbl=nothing弹出信息msgbox“创建数据库成功!”&
9、vbcrlf&“数据库文件名为:”&mydata&vbcrlf&“数据表名称为:”&mytable&vbcrlf&“保存位置:”&thisworkbook.path,vbinformation,”创建数据库”endsub注:在VB中,常用的数据访问接口有下列三种:数据库访问对象(DAO,DataAccessobject)、远程数据库对象(RDO,RemoteDataObject)和ActiveX数据对象(ADO,ActiveXDataObject)ADOX的常用方法:Append方法:可以创建columns,groups,indexes,keys,procedures,tables,users
10、,views等为数据表添加字段:mytbl.columns.append字段名,数据类型,字段长度将创建的数据表添加到ADOX的Tables集合中的语句是:Mycat.tables.appendmytblCreate方法:创建一个新的数据库的语句:Mycat.create“provider=Microsoft.jet.oledb.4.0;datasource=”&mydataDelete方法:删除数据表:Mycat.tables.delete数据表名Refresh方法:用于更新集合中的对象1-3利用SQL语句创建数据库和数据表首先引用:microsoftactiveXdataobjects2.
11、Xlibrary和microsoftadoext.2.xforddlandsecurity”代码:publicsub1_3()dimmycatasnewadox.catalog定义ADOX的Catalog对象变量Dmand定义Command对象变量dimmydataasstring定义数据库名称变量dimmytableasstring定义数据表名称变量dimSQLasstring设置要创建的数据库名称(包括完整路径)mydata=thisworkbook.path&“学生成绩管理.mdb”设置要创建的数据表名称mytable=”期末成绩”删除已经存在的数据库文件onerrorresumenex
12、tkillmydataonerrorgoto0创建数据库文件mycat.create“provider=microsoft.jet.oledb.4.0;Datasource=”&mydata设置数据库连接setmycmd.activeconnection=mycat.activeconnection设置创建数据表的SQL语句SQL=CREATETABLE&myTable_&(学号text(10),姓名text(6),性别text(1),班级text(10),_&数学Single,语文Single,物理Single,化学Single,_&英语Single,总分Single)利用execute方法
13、创建数据表mandtext=sql.execute,adcmdtextendwith释放变量setmycat=nothingsetmycmd=nothing弹出信息msgbox“创建数据库成功!”&vbcrlf&“数据库文件名为:”&mydata&vbcrlf&“数据表名称为:”&mytable&vbcrlf&“保存位置:”&thisworkbook.path,vbinformation,”创建数据库”endsub注:有两种方法来创建数据表:利用ADODB.Command对象的commandtext属性和execute方法:mandsetmycmd.activeconnection=mandt
14、ext=SQL.execute,adcmdtextendwith利用ADODB.Connection对象的execute方法来生成几个记录集Dimcnnasnewadodb.connectiondimrsasnewadodb.recordsetsetcnn=mycat.activeconnectionsetrs=cnn.execute(sql)1-4在已有的数据库中创建数据表(DAO)引用DAO对象库:microsoftDAO3.6objectlibrary代码:publicsub1_4()dimmydbasdao.database定义DAO的database(数据库)对象变量dimmydat
15、aasstring定义数据库名称变量dimmytableasstring定义数据表名称变量设置数据库名称(包括完整路径)mydata=thisworkbook.path&“学生成绩管理.mdb”设置要创建的数据表名称mytable=”期末成绩”打开数据库setmydb=opendatabase(mydata)删除数据库中已经存在的数据表mydb.tabledefs.deletemytable创建新的数据表setmytbl=mydb.createtabledef(mytable)为创建的数据表添加各个字段Withmytbl.fields.append.createfield(学号,dbtext,
16、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.createfi
17、eld(英语,dbsingle).fields.append.createfield(总分,dbsingle)endwith将创建的数据表添加到数据库的TableDefs集合中mydb.tabledefs.appendmytbl关闭数据库mydb.close释放变量setmydb=nothingsetmytbl=nothing弹出信息msgbox”数据表创建成功!”,vbinformation,”创建数据表”endsub补充:opendatabase方法用来打开一个已有的数据库,返回一个数据库对象,并自动将该数据库对象加入到数据库对象集中。setdatabase=workspace.opend
18、atabase(databasename,options,read-only,connect)workspace:定义的Workspace类型变量,它表示所使用的工作环境,将包含新的数据库对象databasename:一个有效的Jet数据库文件或ODBC数据源options:T/F,T表示以独占方式打开数据库,而F表示以共享方式打开数据库read-only:是否以只读方式打开数据库,为T/Fconnect:说明不同连接方式以及密码扩展:利用DAO打开有密码的Access数据库setmydb=opendatabase(mydata,true,false,”;pwd=12345”)1-5在已有的数
19、据库中创建数据表(ADOX)引用:microsoftADOExt.2.xforddlandsecurity代码:publicsub1_5()Dimmycatasnewadox.catalog定义ADOX的catalog对象变量dimmytblasnewtable定义table对象变量dimmydataasstring定义数据库名称变量dimmytableasstring定义数据表名称变量设置数据库名称(包括完整路径)mydata=thisworkbook.path&“学生成绩管理.mdb”设置要创建的数据表名称mytable=”期末成绩”建立与数据库的连接mycat.activeconnect
20、ion=”provider=microsoft.jet.oledb.4.0;”_&“datasource=”&mydata删除数据库中已经存在的数据表mycat.table.deletemytable创建数据表,并添加字段withmytbl.name=mytable.columns.append“学号”,advarwchar,10.columns.append“姓名”,advarwchar,6.columns.append“性别”,advarwchar,1.columns.append“班级”,advarwchar,10.columns.append“数学”,adsingle.columns.
21、append“语文”,adsingle.columns.append“物理”,adsingle.columns.append“化学”,adsingle.columns.append“英语”,adsingle.columns.append“总分”,adsingleendwith将创建的数据表添加到ADOX的tables集合中mycat.tables.appendmytbl释放变量setmycat=nothingsetmytbl=nothing弹出信息msgbox“数据表创建成功!”,vbinformation,”创建数据表”endsub注:Activeconnection属性用来指示catalo
22、g所属的ADOConnection对象,表示到数据源的打开的连接。1-6在已有的数据库中创建数据表(SQL,Command对象)引用:microsoftactivexdataobjects2.xlibrary和microsoftadoext.2.xforddlandsecurity代码:publicsub1_6()dimmycatasnewadox.catalog定义adox的catalog对象变量mand定义command对象变量dimmydataasstring定义数据库名称变量dimmytableasstring定义数据表名称变量dimsqlasstring设置数据库名称(包括完整路径)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ExcelVBA 数据库 Access 整合 笔记 上课 讲义
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内