资源描述:
《Excel+VBA与数据库(Access)整合笔记.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1-1利用DAO创建数据库和数据表1.首先建立对DAO对象库MicrosoftDAO3.6ObjectLibrary的引用.在VBA界面下:工具-à引用,选中”MicrosoftDAO3.6ObjectLibrary”2.代码:PublicSub1_1()DimmyDbAsDAO.Database‘定义DAO的Database(数据库)对象变量DimmyTblAsDAO.TableDef‘定义DAO的TableDef(数据表)对象变量DimmyDataAsString‘定义数据库名称变量DimmyTa
2、bleAsString‘定义数据表名称变量‘设置要创建的数据库名称(包括完整路径)myData=ThisWorkbook.Path&“学生成绩管理.mdb”‘设置要创建的数据表名称myTable=”期末成绩”‘删除已经存在的数据库文件onerrorresumenextkillmyDataonerrorgoto0‘创建数据库SetmyDb=CreateDatabase(myData,dbLangChineseSimplified)‘创建数据表SetmyTbl=myDb.CreateTableDef(m
3、yTable)‘为创建的数据表添加各个字段WithmyTbl.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.C
4、reateField(“语文”,dbSingle).Fields.Append.CreateField(“物理”,dbSingle).Fields.Append.CreateField(“化学”,dbSingle).Fields.Append.CreateField(“英语”,dbSingle).Fields.Append.CreateField(“总分”,dbSingle)EndWith‘将创建的数据表添加到数据库的TableDefs集合中myDb.TableDefs.AppendmyTbl‘关闭数
5、据库,并释放变量myDb.CloseSetmyDb=NothingSetmyTbl=Nothing‘弹出信息MsgBox”创建数据库成功!”&vbCrLf&“数据库文件名为:”&myData&vbCrLf&“数据表名称为:”&myTable&vbCrLf&“保存位置:”&ThisWorkbook.Path,vbInformation,”创建数据库”Endsub注:·CreateDatabase方法创建数据库setmydb=createdatabase(mydata,dblangchinesesimpl
6、ified)mydb:数据库类型变量dblangchinesesimplified:表达字符串比较规则,这里为简体中文·CreateTableDef方法创建数据表SetmyTbl=mydb.Createtabledef(mytable)mytbl:表类型变量mydb:数据库名mytable:表名补充:创建带密码的Access数据库Setmydb=createdatabase(mydata,dblangchinesesimplified&“;pwd=12345”)1-2利用ADOX创建数据库和数据表:引
7、用:microsoftADOExt.2.XforDDLandSecurity代码:publicsub1_2()dimmycatasnewadox.catalog‘定义ADOX的Catalog对象变量dimmytblasnewtable‘定义table对象变量dimmydataasstring‘定义数据库名称变量dimmytableasstring‘定义数据表名称变量‘设置要创建的数据库名称(包括完整路径)mydata=thisworkbook.path&“学生成绩管理.mdb”‘设置要创建的数据表名
8、称mytable=”期末成绩”‘删除已经存在的数据库文件onerrorresumenextkillmydataonerrorgoto0‘创建新的数据库mycat.create”provider=microsoft.jet.oledb.4.0;datasource=”&mydata‘创建数据表,并添加字段withmytbl.name=mytable.columns.append“学号”,advarwchar,10.columns.append“姓名”,ad