●●●我先给大家跪下了!!●●●请大家救救我(vba)

wamlaw 2003-05-21 10:15:00
我现在这个项目,使用office97环境作vba,现在有两个问题:
1.项目(包括表、窗体等都在一个mdb里)中,想通过代码,将mdb里的所有表备份出来都放在一个mdb里如何做?
2.另外有一个excel(97)文件,想在上面加一个进度条,应该如何做?(想尝试ms progressbar,可是我有2台机器,为什么一台上有这个控件但是画不上,另一台没有这个控件?)

含泪等待救助,谢谢!!
...全文
71 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
koa3000 2003-05-21
  • 打赏
  • 举报
回复
1.

TransferDatabase 方法示例

下面的示例从 Microsoft Access 数据库 NWSales.mdb 中将“NW Sales for April”报表导入到当前数据库中“Corporate Sales for April”报表中:

DoCmd.TransferDatabase acImport, "Microsoft Access", _
"C:\DBS\NWSales.mdb", acReport, "NW Sales for April", _
"Corporate Sales for April"
下一个示例将 ODBC 数据库 (ODBC Database) 的“Authors”表链接到当前数据库中:

DoCmd.TransferDatabase acLink, "ODBC Database", _
"ODBC;DSN=DataSource1;UID=User2;PWD=www;LANGUAGE=us_english;" _
& "DATABASE=pubs", acTable, "Authors", "dboAuthors"
TransferDatabase 方法 TransferDatabase 方法执行 Visual Basic 中的 TransferDatabase 操作。有关该操作如何工作的详细内容,请参阅该操作的主题。语法DoCmd.TransferDatabase [transfertype], databasetype, databasename[, objecttype], source, destination[, structureonly][, saveloginid]TransferDatabase 方法具有下列参数:参数 说明 transfertype 下列固有常量之一: acExportacImport(默认值)acLink 如果该参数空缺,将假设为默认常量 (acImport)。 注意 acLink 传输类型不支持 Microsoft Access 项目 (.adp)。 databasetype 字符串表达式,表示一类可用来导入、导出或链接数据的数据库的名称。 Microsoft Access(默认值)Jet 2.xJet 3.xdBase IIIdBbase IVdBase 5Paradox 3.xParadox 4.xParadox 5.xParadox 7.xODBC 数据库 在“宏”窗口中的 TransferDatabase 宏的“数据库类型”操作参数列表中可以查看数据库类型。 databasename 字符串表达式,包含要导入、导出或链接的表的带有数据库路径的完整名称。 objecttype 下列固有常量之一: acTable(默认值)acQueryacFormacReportacMacroacModuleacDataAccessPageacServerViewacDiagramacStoredProcedure 代表要导入、导出或链接的表的对象类型。如果要在两个 Microsoft Access 数据库之间导入或导出表,可以指定一个对象,但不要指定 acTable。如果要将 Microsoft Access 选择查询的结果导出为另一个数据库类型,请指定 acTable 参数。 如果该参数空缺,将假设为默认常量 (acTable)。 注意 显示在“自动列表成员”列表中的 acDefault 常量对于该参数是无效的。必须选择上述常量列表中的常量。 source 字符串表达式,代表要导入、导出或链接的表的对象名称。 destination 字符串表达式,代表在目标数据库中要导入、导出或链接的表的对象名称。 structureonly 该参数为 True (-1) 时只导入或导出一个数据库的表的结构,为 False (0) 将导入或导出表的结构以及其中的数据。 如果该参数空缺,将假设为默认常量 (False)。 saveloginid 该参数为 True 时将保存数据库链接表的连接字符串中的 ODBC 数据库的登录标识 (ID) 和密码。保存之后,就不需要在每一次打开表时进行登录。当不要保存登录名和密码时,可将该参数设置为 False。 如果该参数空缺,将设为默认值 (False)。 该参数只能在 Visual Basic 中使用。 说明语法中的可选参数可以空缺,但是必须包含参数的逗号。如果有一个或多个位于末端的参数空缺,在指定的最后一个参数后面不需使用逗号。ODBC 数据库的管理者可以使 saveloginid 参数所提供的功能失效,以要求所有的用户在每一次连接到 ODBC 数据库时,输入登录标识和密码。注意 还可以使用 ActiveX 数据对象 (ADO) 来创建链接。方法是,使用 Recordset 对象的 ActiveConnection 属性。
2
TransferText 方法示例
下面的示例使用指定的标准输出 (Standard Output),从 Microsoft Access 表的外部报表 (External Report) 将数据导出到没有限制的文本文件 April.doc 中:DoCmd.TransferText acExportDelim, "Standard Output", _
"External Report", "C:\Txtfiles\April.doc" TransferText 方法 在 Visual Basic 中,TransferText 方法执行 TransferText 操作。有关该操作及其参数如何使用的详细内容,请参阅该操作主题。语法DoCmd.TransferText [transfertype][, specificationname], tablename, filename[, hasfieldnames][, HTMLtablename][, codepage]TransferText 方法具有以下参数:参数 说明 transfertype 下列固有常量之一: acExportDelimacExportFixedacExportHTMLacExportMergeacImportDelim(默认值)acImportFixedacImportHTMLacLinkDelimacLinkFixedacLinkHTML 如果该参数空缺,将假设为默认常量 (acImportDelim)。 注意 可以将文本文件中的数据连接到 HTML 文件中,但此数据在 Microsoft Access 中是只读的。 在 Microsoft Access 项目 (.adp) 中仅支持 acImportDelim、acImportFixed、acExportDelim、acExportFixed 或 acExportMerge 转换类型。 specificationname 字符串表达式,指定当前数据库中已创建或保存的导入或导出规格的名称。 对于固定长度文本文件, 必须指定参数或使用 schema.ini 文件, 该文件必须保存在导入、链接或导出的文本文件的文件夹中。若要创建一个方案文件, 可使用文本导入/导出向导创建此文件。 对于带分隔符的文本文件和 Microsoft Word 邮件合并数据文件,可以空缺此参数以选定默认导入/导出规格。 tablename 字符串表达式,代表要向其中导入文本数据、从中导出文本数据或链接文本数据的 Microsoft Access 表的名称,或者要将其结果导出到文本文件的 Microsoft Access 查询的名称。 filename 字符串表达式,代表要从其中导入、从中导出或链接的文本文件的完整名称(包括路径)。 hasfieldnames 如果该参数为 True (-1),在导入、导出或链接时,将使用文本文件中的第一行做为字段名。如果为 False (0),则将文本文件中的第一行看成普通数据。如果该参数空缺,将假设为默认值 (False)。 对 Microsoft Word 邮件合并数据文件,该参数将被忽略,必须在文件第一行中包含字段名。 HTMLtablename 字符串表达式,代表要导入或链接的 HTML 文件中的表或列表的名称。除非 transfertype 参数设置为 acImportHTML 或 acLinkHTML,否则该参数将被忽略。如果该参数空缺,将导入或链接 HTML 文件中的第一个表或列表。 如果 HTML 文件中存在 <CAPTION> 标记的话,则 HTML 文件的表或列表名称取决于该标记指定的文本。如果没有 <CAPTION> 标记,则名称由 <TITLE> 标记指定的文本决定。Microsoft Access 通过给每个表或列表名称结尾添加一个数字,如“雇员1”和“雇员2”来区分它们。 codepage Long 类型的值,用于标识代码页的字符集。 说明语法中的可选参数可以空缺,但是必须包含参数的逗号。如果位于末端的参数空缺,在指定的最后一个参数后面不需使用逗号。注意 通过设置 Recordset 对象的 ActiveConnection 属性,也可使用 ActiveX 数据对象(ADO) 来创建链接 。
3.TransferSpreadsheet 方法示例
下面的示例在 Lotus 电子表格 Newemps.wk3 的指定范围内将表导入到 Microsoft Access 的“Employees”表,并用电子表格中的第一行作为字段名。DoCmd.TransferSpreadsheet acImport, 3, _
"Employees","C:\Lotus\Newemps.wk3", True, "A1:G12"
TransferSpreadsheet 方法 在 Visual Basic 中,TransferSpreadsheet 方法执行 TransferSpreadsheet 操作。有关该操作及其参数如何使用的详细内容,请参阅该操作主题。语法DoCmd.TransferSpreadsheet [transfertype][, spreadsheettype], tablename, filename[, hasfieldnames][, range]TransferSpreadsheet 方法具有以下参数:参数 说明 transfertype 下列固有常量之一: acImport(默认值)acExportacLink 如果该参数空缺,将假设为默认常量 (acImport)。 spreadsheettype 下列固有常量或与之相等的数值设置之一: 0 acSpreadsheetTypeExcel3(默认值)6 acSpreadsheetTypeExcel45 acSpreadsheetTypeExcel55 acSpreadsheetTypeExcel78 acSpreadsheetTypeExcel88 acSpreadsheetTypeExcel92 acSpreadsheetTypeLotusWK13 acSpreadsheetTypeLotusWK37 acSpreadsheetTypeLotusWK44 acSpreadsheetTypeLotusWJ2 — 仅日文版 注意 可以链接 Lotus 1-2-3 电子表格文件中的数据,但是这些数据在 Microsoft Access 中是只读的。也可以导入和链接 Lotus .WK4 文件,但是不能将 Microsoft Access 的数据导出为这种电子表格格式。使用该方法,Microsoft Access 也不支持从 Lotus .WKS 或 Microsoft Excel 2.0 版电子表格导入、导出或链接数据。 如果该参数空缺,将假设为默认常量 (acSpreadsheetTypeExcel8)。 tablename 字符串表达式,代表要向其中导入电子表格数据、从中导出电子表格数据或链接电子表格数据的 Microsoft Access 表的名称,或要将其结果导出到电子表格的 Microsoft Access 选择查询的名称。 filename 字符串表达式,包含要从其中导入、导出到或链接到的电子表格的名称与路径。 hasfieldnames 如果该参数为 True (-1),在导入或链接时,使用电子表格中的第一行作为字段名。如果该参数为 False (0),则将电子表格中的第一行处理成普通数据。如果该参数空缺,将假设为默认值 (False)。 当向电子表格中导出 Microsoft Access 表或选择查询数据时,不论在此参数中输入什么,字段名都将被插入到电子表格的第一行中。 range 字符串表达式,代表电子表格中的单元格范围或范围的名称。该参数只能用于导入。当其空缺时将导入完整的电子表格。 当将数据导出到电子表格中,必须让该参数空缺。如果输入了一个范围,导出将失败。 说明语法中的可选参数可以空缺,但是必须包含参数的逗号。如果位于末端的参数空缺,在指定的最后一个参数后面不需使用逗号。注意 通过使用 Recordset 对象的 ActiveConnection 属性,也可以使用 ActiveX 数据对象 (DAO) 来创建一个链接。
----- Original Message -----
OFFICE之门 2003-05-21
  • 打赏
  • 举报
回复
2.另外有一个excel(97)文件,想在上面加一个进度条,应该如何做?(想尝试ms progressbar,可是我有2台机器,为什么一台上有这个控件但是画不上,另一台没有这个控件?)
两个机器的OFFICE安装不一样,把另一个机器的OFFICE再整理一下
Surpass 2003-05-21
  • 打赏
  • 举报
回复
1.项目(包括表、窗体等都在一个mdb里)中,想通过代码,将mdb里的所有表备份出来都放在一个mdb里如何做?
--------------------------------------------------------------------------------
原始mdb :m1
新mdb : m2 (备份)
辅助mdb :m3

1.在m3里面链接m1的要备份的表。
2.在m2中建立和m1一样的表。
3.在m3中做一个追加查询,做一个启动窗体。追加完数据后自动关闭。

在vb中直接打开m3就可以了。
online 2003-05-21
  • 打赏
  • 举报
回复
直接把mdb拷贝一份备份不行吗?
VVV_lucky 2003-05-21
  • 打赏
  • 举报
回复
2.另外有一个excel(97)文件,想在上面加一个进度条,应该如何做?(想尝试ms progressbar,可是我有2台机器,为什么一台上有这个控件但是画不上,另一台没有这个控件?)

不知道这个是不是你想要的解决方案。很简单,但是很实用。
开始显示
Application.DisplayStatusBar = True
Application.StatusBar = "Please wait a minute..."
进度中(动态改值)
Application.StatusBar = "Now in ..."
结束后
Application.DisplayStatusBar = False
Application.StatusBar = ""
blueice2002 2003-05-21
  • 打赏
  • 举报
回复
mdb中的表导出到一个mdb里(只导出表,不导出窗体等)??

只导数据库不行吗?
benxie 2003-05-21
  • 打赏
  • 举报
回复
呵。
我也不会。
帮你UP一下吧。
看看有没有高手出来救你了。
wamlaw 2003-05-21
  • 打赏
  • 举报
回复
还有一个问题:
如何通过代码,将mdb中的表导出到一个mdb里(只导出表,不导出窗体等)??

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧