ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4225|回复: 8

请问如何让这段程序在ACCESS的模块中运行?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-2-19 17:18 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这段程序在EXCEL的VBA环境中运行良好,但不能在ACCESS的模块中运行,请问怎么修改才能让它在ACCESS的模块中运行,或有什么其他的办法能达到同样的效果? Public Sub 采集日报()
Dim Dayi As Integer
Dateinput = CDate(InputBox("请输入日报日期"))
Dayi = Day(Dateinput)
Monthi = Month(Dateinput)
DayStr = Monthi & "月" & Dayi & "日"

If Application.GetOpenFilename = False Then Resume
Weekinput = CurDir
LD = Dir(Weekinput & "\*" & DayStr & "*.xls")
Do While LD <> "" ' 开始循环。
' 跳过当前的目录及上层目录。
If LD <> "." And LD <> ".." Then
' 使用位比较来确定 MyName 代表一目录。
Workbooks.Open LD
ActiveWorkbook.Worksheets(Format(Dayi)).Activate
日报采集
ActiveWorkbook.Close SaveChanges:=False
End If
LD = Dir ' 查找下一个目录。
Loop
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-2-20 08:58 | 显示全部楼层
loadhigh: 每次您的指导都能让我的问题迎刃而解,非常感谢! 但是还存在一个问题,即以Weekinput = CurDir ld = Dir(Weekinput & "\*" & DayStr & "*.xls")

取不到想要的文件夹目录,以至不能继续下面的子程序 Option Compare Database
Dim xlapp As New Excel.Application
Dim xlbook As Excel.Workbook
Dim xlsheet As Excel.Worksheet
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset Public Sub 单目录采集日报()
' Dim xlapp As New Excel.Application
' Dim xlbook As Excel.Workbook
' Dim cnn As New ADODB.Connection
' Dim rst As New ADODB.Recordset
Dim Dayi As Integer
Dateinput = CDate(InputBox("请输入日报日期", 系统提示, Date - 1))
Dayi = Day(Dateinput)
Monthi = Month(Dateinput)
DayStr = Monthi & "月" & Dayi & "日"

If xlapp.GetOpenFilename = False Then Resume
Weekinput = CurDir
ld = Dir(Weekinput & "\*" & DayStr & "*.xls")
Do While ld <> "" ' 开始循环。
' 跳过当前的目录及上层目录。
'If ld <> "." And ld <> ".." Then
' 使用位比较来确定 MyName 代表一目录。
Set xlbook = xlapp.Workbooks.Open(ld)
xlbook.Worksheets(Format(Dayi)).Activate
Set xlsheet = xlbook.Worksheets(Format(Dayi))
日报采集
xlbook.Close SaveChanges:=False
' xlbook.Close
xlapp.Quit

rst.Close
Set xlbook = Nothing
Set xlapp = Nothing
Set rst = Nothing
' End If
ld = Dir ' 查找下一个目录。
Loop
End Sub
[此贴子已经被作者于2004-2-20 13:01:38编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-2-20 14:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
loadhigh: 你好! 我的文件不是在同一目录下的,而是根据实际情况在不同的文件中选取的,在excel中,可以用weekinput=curdir随机选择文件,但这个在access中却行不通,不知道有没有其他的方法,另外在我所选择的文件夹中的文件都是*.xls.不需要设定文件的类型. 在下面这个过程中,出现类型不匹配,可能是因为在excel中.Cells(t, 3)是公式,所以不能引入access中,不知怎么解决? t = 4
With xlbook.Worksheets(bm)

Do
rst.AddNew
rst!机型 = .Cells(t, 1).Value
rst!数量 = .Cells(t, 2).Value
rst!单价 = .Cells(t, 3).Value
rst!金额 = .Cells(t, 4).Value
rst!税金 = .Cells(t, 5).Value
rst!不含税金额 = .Cells(t, 6).Value
rst.Update

t = t + 1
Loop Until .Cells(t, 1) = ""
End With 感谢!!!!
[此贴子已经被作者于2004-2-20 15:19:06编辑过]

TA的精华主题

TA的得分主题

发表于 2004-2-26 23:57 | 显示全部楼层
请教一个很菜的问题(别扔鸡蛋),就是怎么才能再ACCESS中录制宏(像在EXCEL中那样)?

TA的精华主题

TA的得分主题

发表于 2004-2-21 17:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2004-2-21 17:42 | 显示全部楼层
Weekinput = currentproject.path 也不能运行通过吗?

TA的精华主题

TA的得分主题

发表于 2004-2-20 13:23 | 显示全部楼层
谢谢你的鼓励。 dir和curdir函数应该是可以在access里运行的。如果你的access文件和那些excel文件都在同一个目录内,应该是可以的。而且你的excel文件名称都是诸如 *1月1日*.xls的吗? 你也可以将Weekinput = CurDir 改为Weekinput = currentproject.path 试试看。

TA的精华主题

TA的得分主题

发表于 2004-2-19 19:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
将这句:Workbooks.Open LD
改为:set xlbook = xlapp.workbooks.open(LD)

TA的精华主题

TA的得分主题

发表于 2004-2-19 19:14 | 显示全部楼层
在access的模块内首先需要引用microsoft excel application library.(操作在菜单内,工具->引用) 在这段代码内,需要加入如下代码: dim xlapp as new excel.application dm xlbook as excel.workbook 将代码内所有application 替换 xlapp. 将所有的activeworkbook和workboks 替换为xlbook.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-14 15:09 , Processed in 0.041702 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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