作者yimean (溫柔殺手)
看板Office
標題[算表] ADO在某些欄位的中文字無法取回
時間Wed Oct 16 14:10:38 2019
軟體:Excel
版本:2013
各位板上的大大下午好。承上篇 CopyFrom...當機的問題。
首先感謝Soyoso大大的指導幾本上ADO Open當機的問題已經解決了。
但是我把當資料取回來之後發現品名這個欄位只要有中文字就會變成空白
其他的欄位縱使有中文字也不會有問題。
下方是我的程式碼。
ADO在透過網芳取得資料這一塊好像有問題。本機都可以運作的很好。
============Notice頁面======
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
Dim DueDateS As String
D = Date
TM = Month(D)
N = 7
DueDate = DateAdd("d", N, D)
DueDateS = "#" & DueDate & "#" 'The symbol "#" is required by date
formate.
WBPath = "D:\desktop\2019生產管制表.xlsx"
MS = "SELECT * From [" & TM & "月$a:q]" & _
" WHERE 預交日期=" & DueDateS
GetData MS, WBPath
End Sub
==================Sub Module=========
Sub GetData(MS As String, WBPath As String)
'This sub is used to fetch data from produciton schedule.
On Error Resume Next
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
==========================================
原始資料
https://imgur.com/zVUKxAU
ADO取得的資料
https://imgur.com/NuLslBV
懇請高手指導,感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.116.8 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1571206240.A.B31.html
1F:→ soyoso: 模擬抓取存放該檔案的主機,回傳資料的b欄也可以正常回傳 10/16 14:42
3F:→ soyoso: 模擬上我是以模擬器開個winxp,接著共同個子目錄,再來抓 10/16 14:45
4F:→ soyoso: 的 10/16 14:45
5F:→ soyoso: 所以如果在沒有合適解決方式的話,看是否以內文所寫的本機 10/16 14:45
6F:→ soyoso: 可正常運作來看,就複製到本機暫存,讀取,刪檔之類的 10/16 14:46
7F:→ yimean: 我這個是本機抓檔的結果,網芳的話是會整個Hang住。太神奇 10/16 14:49
8F:→ soyoso: 當然這也是因為模擬不出內文情況下,所提供的方式,如有其 10/16 14:49
9F:→ yimean: 為什麼你的沒問題? 10/16 14:49
10F:→ soyoso: 他先進有解決方式的話,再提供給原po 10/16 14:49
11F:→ soyoso: 抱歉,模擬上我是以"模擬器"(應是虛擬機器)來模擬,和貴司 10/16 14:53
12F:→ soyoso: 實際情況可能有所不同,就只是模擬將檔案放置於其他的主機 10/16 14:54
13F:→ soyoso: 內,如測試連結,放於\\192.168.17.130\share這個虛擬機器 10/16 14:55
14F:→ soyoso: 資料夾,抓取;另外我測試的excel版本是2016 10/16 14:56
15F:→ yimean: 了解,感謝您。 10/16 14:57
16F:→ soyoso: 14:46方面複製filecopy,刪檔kill,刪檔方面要先將變數MR 10/16 15:10
17F:→ soyoso: nothing後再刪除 10/16 15:10
18F:→ yimean: 收到,感謝。 10/16 15:37