作者yimean (温柔杀手)
看板Office
标题[算表] ADO在CopyFromRecordset时当机
时间Mon Oct 14 14:50:40 2019
软体:Excel
版本:2013
各位板上的大大好。
我有一份生产管制表在区网的Server主机上
我新开了一份Excel写了如下程式,结果在最关键的CopyFromRecordset时当机了。
Sheet name = Notice
========这个是写在新开的Excel上的按钮=======
Private Sub DueDateCrossing_Click()
Dim MS As String 'SQL command
Dim WBPath As String ' Workbook Path
Dim N As Integer 'To fetch data of N days later, N must smaller than 31
Dim D As Date ' D is refered to Date
Dim TM As Integer ' TM is refered to this month
Dim DueDate As Date 'DueDate is refered to DueDate
D = Date
TM = Month(D)
N = 3
DueDate = DateAdd("d", N, D)
WBPath = "\\Server\共用\2019生产管制表.xlsx"
MS = "SELECT * From [" & TM & "月$]" & _
" WHERE 预交日期=" & DueDate
GetData MS, WBPath
End Sub
============以下是写在Module里的Sub=======
Sub GetData(MS As String, WBPath As String)
'This sub is used to fetch data from produciton schedule.
Dim MC As String 'MC is refered to My Connection
Dim MR As ADODB.Recordset 'MR is refered to My Recordset
MC = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & WBPath & ";" & _
"Extended Properties=Excel 12.0"
Set MR = New ADODB.Recordset
MR.Open MS, MC, adOpenStatic, adLockReadOnly
Worksheets("Notice").Range("A2").CopyFromRecordset MR
End Sub
请问这是哪边出问题了呢?
烦请高手解惑,感恩。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.33.116.8 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1571035842.A.9E8.html
※ 编辑: yimean (114.33.116.8 台湾), 10/14/2019 14:57:06
1F:→ soyoso: 有测试内文巨集,并无於range.copyfromrecordset时出现问 10/14 15:27
3F:→ soyoso: 预交日期符合2019/10/17方面带入,只是如果来源档2019生产 10/14 15:28
4F:→ soyoso: 管制表内预交日期如果是符合日期序例值的话变数duedate前 10/14 15:29
5F:→ soyoso: 後是要加上# 10/14 15:29
6F:→ soyoso: 因此产生内文问题方面,看区网其他档案是可正常复制记录到 10/14 15:32
7F:→ soyoso: 储存格内?亦或要提供2019生产管制表的档案来测试看看 10/14 15:32
8F:→ yimean: @s大感谢您的提醒,我把格式改了还是不行,请问我应该要 10/14 16:12
9F:→ yimean: 怎麽跟你分享生产管制表?Google cloud? 10/14 16:13
10F:→ soyoso: 丢到云端再分享连结(缩网址)之类的 10/14 16:15
12F:→ yimean: @s大,请参照上面连结,感谢。 10/14 16:20
13F:→ soyoso: sql内有写到where预交日期的部分,但该预交日期是出现在 10/14 16:27
14F:→ soyoso: 储存格a273,所以是要条件判断上是a栏的意思吗? 10/14 16:28
15F:→ yimean: 是的,找到该笔资料後把该笔资料复制到Notice页面 10/14 16:39
16F:→ yimean: 不好意思该文档被我排序过了,所以才出现这样的情况 10/14 16:40
17F:→ soyoso: 测试,於mr.open时就excel程式就会当掉 10/14 16:43
18F:→ soyoso: 看一下档案,ctrl+end会到ddg栏,可能读入时就a:ddg栏达 10/14 16:45
19F:→ soyoso: 2815个栏,所以变数ms,月$改为月$a:q,试试 10/14 16:46
20F:→ soyoso: 这样执行我测试上,excel程式就没有当掉了 10/14 16:47
21F:→ soyoso: a:q是看档案框线的栏位范围,再依实际调整看看 10/14 16:48
22F:→ yimean: 感恩S大,我晚点试试。 10/14 16:56
23F:→ yimean: @s大,感恩您的指导确实可以了。愿神祝福您有一个美好的夜 10/14 20:47