设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2981|回复: 4
打印 上一主题 下一主题

[查询] 查询每天定时导出到指定的文件夹,用代码如何写?。

[复制链接]
跳转到指定楼层
1#
发表于 2004-4-7 07:02:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问一个简单问题:用代码如何写将几个查询每天定时导出到指定的文件夹里,保存为XLS文件,并自动覆盖掉以前旧的XLS文件,用代码如何写?。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2004-4-7 07:12:00 | 只看该作者
全部显示

TransferSpreadsheet 方法
参阅应用于示例特性在 Visual Basic 中,TransferSpreadsheet 方法执行 TransferSpreadsheet 操作。

expression.TransferSpreadsheet(TransferType, SpreadsheetType, TableName, FileName, HasFieldNames, Range, UseOA)
expression      必需。返回“应用于”列表中的一个对象的表达式。

TransferType   可选 AcDataTransferType。

AcDataTransferType 可以是下列 AcDataTransferType 常量之一:
acExport
acImport 默认
acLink
如果将该参数留空,将采用默认常量 (acImport)。


SpreadsheetType   可选 AcSpreadSheetType。

AcSpreadSheetType 可以是这些 AcSpreadSheetType 常量之一:
acSpreadsheetTypeExcel3
acSpreadsheetTypeExcel4
acSpreadsheetTypeExcel5
acSpreadsheetTypeExcel7
acSpreadsheetTypeExcel8 默认
acSpreadsheetTypeExcel9 默认
acSpreadsheetTypeLotusWJ2 - 仅适用于日文版
acSpreadsheetTypeLotusWK1
acSpreadsheetTypeLotusWK3
acSpreadsheetTypeLotusWK4
注释  可以链接 Lotus 1-2-3 电子表文件中的数据,但是这些数据在 Microsoft Access 中是只读的。可以导入和链接 Lotus .WK4 文件,但是不能将 Microsoft Access 数据导出到此电子表格式中。而且,Microsoft Access 不再支持使用此方法导入、导出或链接 Lotus .WKS 或 Microsoft Excel 2.0 电子表中的数据。

如果将该参数留空,将采用默认常量 (acSpreadsheetTypeExcel8)。


TableName     可选 Variant 型。字符串表达式,表示要向其中导入电子表格数据、从中导出电子表格数据或链接电子表格数据的 Microsoft Access 表的名称,或要将其结果导出到电子表格的 Microsoft Access 选择查询的名称。

FileName     可选 Variant 型。字符串表达式,表示要从其中导入、导出到或链接到的电子表格的名称与路径。

HasFieldNames     可选 Variant 型。使用 True (-1) 可以在导入或链接时,将电子表格中的第一行用作字段名。使用 False (0) 可以将数据表第一行看成普通数据。如果将该参数留空,则采用默认值 (False)。在将 Microsoft Access 表或选择查询数据导出到电子表格中时,无论为该参数输入了何值,字段名称都将插入到电子表格的第一行中。

Range     可选 Variant 型。字符串表达式,表示电子表格中单元格的有效范围或范围名称。该参数仅可用于导入。若要导入整个电子表格,请将该参数留空。导出到电子表格时,必须将该参数留空。如果输入了一个范围,导出将失败。

UseOA     可选 Variant 型。

说明
有关该操作及其参数如何使用的详细信息,请参阅该操作的主题。

语法中的可选参数允许留空,但是必须包含参数的逗号。如果将位于末端的参数留空,则在指定的最后一个参数后面不需使用逗号。


注释  还可以通过使用 Recordset 对象的 ActiveConnection 属性,来使用 ActiveX 数据对象 (ADO) 创建链接。


示例
下面的示例在 Lotus 电子表格 Newemps.wk3 的指定范围内将表导入到 Microsoft Access 的“Employees”表,并用电子表格中的第一行作为字段名。

DoCmd.TransferSpreadsheet acImport, 3, _
    "Employees","C:\Lotus\Newemps.wk3", True, "A1:G12"
               
3#
发表于 2004-4-7 07:13:00 | 只看该作者
全部显示

Timer 事件
参阅应用于示例特性Timer 事件在窗体的 TimerInterval 属性指定的规则时间间隔内发生。

Private Sub Form_Timer()
说明
若要在该事件发生时执行宏或事件过程,请将 OnTimer 属性设为宏的名称或 [事件过程]。

通过在 Timer 事件发生时运行宏或事件过程,可以控制在每一计时器间隔内需要 Microsoft Access 完成的操作。例如,在指定的时间间隔内,可以重新查询基础记录或重画屏幕。

窗体的 TimerInterval 属性设置以毫秒为单位指定 Timer 事件间的间隔。间隔可以从 0 到 2,147,483,647 毫秒。将 TimerInterval 属性设为 0 时将阻止 Timer 事件发生。

示例
下面的示例演示一个在窗体上显示的数字时钟。一个标签控件根据计算机系统时钟显示当前时间。

若要试用该示例,请将下面的事件过程添加到一个窗体中,该窗体包含名为“Clock”的标签。将窗体的 TimerInterval 属性设为 1000 毫秒可每隔一秒更新一次时钟。

Private Sub Form_Timer()
    Clock.Caption = Time        ' Update time display.
End Sub

4#
发表于 2004-4-7 07:15:00 | 只看该作者

这个问题分成两步来解决:



1、导出数据到EXCEL
关于这个,请参看帖子
http://www.office-cn.net/bbs/dispbbs.asp?boardid=3&replyid=81453&id=16326&skin=1
把程序保存到一个文本文件,修改后缀为vbs
(VBS是VB脚本文件,可以双击直接运行,WIN2000以上支持,WIN98就不清楚了)
修改调试程序到满足你的要求
这种方法适用于对XLS文件格式有特殊要求的情况下(例如把数据写到指定的单元格),如果要求不高,则可以按照楼上所说使用ACCESS自身的导出命令

2、定时执行
用系统控制面板里的“任务计划”添加该脚本文件为一个定时任务即可

[此贴子已经被作者于2004-4-6 23:20:21编辑过]

5#
 楼主| 发表于 2004-4-7 10:07:00 | 只看该作者
我试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-10 05:07 , Processed in 0.082238 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表