作者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/m.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