MDB文件的导出-使用DAO

2018-06-17 17:10:33来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

在很多VB的MDB文件书籍中,都会很完整的提到:如何由其他种类的文件中將资料导入MDB文件,但是却很少有书提到:如何將MDB文件中的资料,导出到各种不同的文件类型的文件中,连VB的Help中也是这样!

或许是大家都认为MDB文件主题的重点是在MDB文件本身吧!

但是,在实际的MDB文件程式運用中,却常常需要將MDB文件导出到各种不同的文件类型的文件中,这些文件可能是DBase文件、文本文件(.Txt)、Excel文件、Html文件、Access文件或其他类型的MDB文件文件(ODBC)...等。

在本主题中,考虑到並不是每一个人都有Oracle或SQLServer的环境,为了让大家都能夠实行,我们將以AccessMDB文件来作练习,而练习的文件也使用VB本身提供的Biblio.mdb(位于各版本VB的目录下)。

预计要练习导出的文件类型有五种:DBase文件、文本文件(.Txt)、Html文件、Excel文件、Access文件。除了这五种之外,下面的命令可以將MDB文件导出到任一种VB支持的MDB文件或文件中。

在练习之前,要將导出文件的SQL命令先说明一下:

SELECTTable.FieldsINTO[dbmstype;DATABASE=path].[unqualifiedfilename]FROM[TableorTables]
SELECTTable.FieldsINTO[MDB文件种类;DATABASE=MDB文件路径].[MDB文件文件名称]FROM[TableorTables]

至于【MDB文件种类】及【MDB文件路径】,视MDB文件或文件类型之不同而异,详见【注一】。
如果上面说的都清楚了,那我们要开始这一个练习了!

在Form上放置一个CommandButton,加入MicrosoftDAO3.51ObjectLibrary,我们將使用Biblio.mdb的authorsTable,在Command1_Click中加入以下程序代码:

DimdbAsDatabase
Setdb=Workspaces(0).OpenDatabase(App.Path&"\biblio.mdb")
'db.execute"SELECTTable.FieldsINTO[dbmstype;DATABASE=path].[unqualifiedfilename]FROM[TableorTables]"

在以上程式中,db.execute指令行之指令依MDB文件或文件的种类说明如下:

一、DBase文件

SQL命令:SELECT*INTO[dBaseIII;DATABASE=MDB文件路径].[dbase文件名称]FROM[authors]
db.Execute"SELECT*INTO[dBaseIII;DATABASE=C:\test].[authors.DBF]FROM[authors]"
注意事項:
1、authors.DBF事先不可存在,否则会产生错误!
2、若您沒有Dbase,您可以使用Access来连結这个Table,以便观察結果!

二、文本文件(.Txt)

SQL命令:SELECT*INTO[Text;DATABASE=文本文件路径].[文本文件名称]FROM[authors]
db.Execute"SELECT*INTO[Text;DATABASE=C:\test].[authors.TXT]FROM[authors]"
注意事項:
1、authors.TXT事先不可存在,否则会产生错误!
2、此命令会产生的文件有二个,第一个就是文本文件authors.TXT,第二个是Schema.ini。
3、文本文件之格式为CSV之文件格式,以逗点分开,实际呈现方式如下:

  "Au_ID","Author","YearBorn"
  1,"Jacobs,Russell",1950
  2,"Metzger,PhilipW.",1942

4、Schema.ini若事先不存在会新产生一个,若已存在,则会在原文件后面直接Append。
5、至于Schema.ini的內容为此次导出的相关资讯,格式同一般的Ini档,详細內容如下:

  [authors.TXT]
  ColNameHeader=True
  CharacterSet=OEM
  Format=CSVDelimited
  Col1=Au_IDInteger
  Col2=AuthorCharWidth50
  Col3="YearBorn"Short

三、Html文件

SQL命令:SELECT*INTO[Excel8.0;DATABASE=Html文件路径].[Html文件名称]FROM[authors]
db.Execute"SELECT*INTO[HTMLExport;DATABASE=C:\test].[authors.HTM]FROM[authors]"
注意事項:
1、authors.HTM事先不可存在,否则会产生错误!
2、此命令会产生的文件有二个,第一个就是文本文件authors.HTM,第二个是Schema.ini。
3、Schema.ini若事先不存在会新产生一个,若已存在,则会在原文件后面直接Append。
4、至于Schema.ini的內容为此次导出的相关资讯,格式同一般的Ini档,详細內容如下:

  [authors.HTM]
  ColNameHeader=True
  CharacterSet=ANSI
  Format=HTML
  Col1=Au_IDInteger
  Col2=AuthorCharWidth50
  Col3="YearBorn"Short

四、Excel文件

SQL命令:SELECT*INTO[Excel8.0;DATABASE=文件路径 档名].[工作表名称]FROM[authors]
db.Execute"SELECT*INTO[Excel8.0;DATABASE=C:\test\authors.XLS].[authors]FROM[authors]"
注意事項:
1、authors.XLS可事先存在,也可以不存在,会自动产生一个。
2、工作表authors事先不可存在,否则会产生错误!

五、Access文件

SQL命令:SELECT*INTO[新MDB文件路径 档名][新表名称]FROM[authors]
'导出到同一MDB文件(新Table为authors1)
'新Tableauthors1事先不可存在,否则会产生错误!
db.Execute"SELECT*INTO[authors1]FROM[authors]"
'导出到不同的MDB文件(新MDB文件为db1,新Table为authors)
'新MDB文件db1事先必須存在,否则会产生错误!
'但是其中新Tableauthors事先不可存在,否则会产生错误!
db.Execute"SELECT*INTO[C:\test\db1.mdb].[authors]FROM[authors]"



注一:各种可能的MDB文件种类Connect属性設定方式:

MDB文件种类MDB文件宣告方式MDB文件路径(或加上档名)
MicrosoftJetDatabase[database];drive:\path\filename.mdb
dBASEIIIdBASEIII;drive:\path
dBASEIVdBASEIV;drive:\path
dBASE5dBASE5.0;drive:\path
Paradox3.xParadox3.x;drive:\path
Paradox4.xParadox4.x;drive:\path
Paradox5.xParadox5.x;drive:\path
MicrosoftFoxPro2.0FoxPro2.0;drive:\path
MicrosoftFoxPro2.5FoxPro2.5;drive:\path
MicrosoftFoxPro2.6->

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:VB应用程序中用DDE功能开发AutoCADforWindows

下一篇:PropertyBag对象实现数据连续操作