Loi import data trong excel

  • Thread starter Thread starter Thien
  • Ngày gửi Ngày gửi
Liên hệ QC

Thien

Thành viên thường trực
Tham gia
23/6/06
Bài viết
352
Được thích
113
Dear Hiếu
Khi mình mport data trong excel thì gặp phải lỗi trong file kèm theo.
Khi ứng dụng cách lấy dữ liệu từ file đóng bằng code QueryTab và
Mã:
Table_Query "PS_T1", Sheet1, "A1", "ODBC", ThisWorkbook.Path & "\BC_0107.xls", "Select * From `CD SPS $` "
Thì không được như ý là muốn chỉ lấy dự liệu trong vùng name PS_T1 thui, nhưng ở đây cho luôn cả bảng CD SPS luôn.

Bạn có cách nào khắc phục không?.
Xem hộ nhé.


Thân.
 

File đính kèm

Sao vậy ta không ai hiểu mình đang hỏi gì hả ta.

TC.


PS: Các bạn ơi các bạn đâu mất rùi
 
Lần chỉnh sửa cuối:
Upvote 0
Các bạn ơi cổ tớ dài quá rùi, làm sao cho ngắn lại đây????.

TC.
 
Upvote 0
ThuNghi đã viết:
Sao không đưa file, sao lại up file word. cái này xem lại from CDPS...
Hỏi thẳng anh Tuân.

He he file word màn hình là lỗi không cho import khi dùng import data trong excel. Còn code là của OB, nhưng bác OB đang bận xem diễn biến cổ phiếu, dù đã nhận lời xem hộ nhưng đến giờ vẫn chưa nhận được chỉ dẫn.

Cảm ơn bạn đã quan tâm đến câu hỏi của mình. có điều mình thắc mắc là những điều mình hỏi thưòng ít mọi người quan tâm, có những người mới gia nhập diễn đàn lại được ưu ái quan tâm chỉ dẫn. Chắc họ nghỉ mình lười chứ họ đâu nghĩ mình thật không biết cách làm hoặc đôi khi mình bị mù trí.


Thân chào.
 
Upvote 0
Cảm ơn bạn đã quan tâm đến câu hỏi của mình. có điều mình thắc mắc là những điều mình hỏi thưòng ít mọi người quan tâm, có những người mới gia nhập diễn đàn lại được ưu ái quan tâm chỉ dẫn. Chắc họ nghỉ mình lười chứ họ đâu nghĩ mình thật không biết cách làm hoặc đôi khi mình bị mù trí.
Thú thật là mình không biết vể vấn đề này, chờ học thêm rồi HD lại thì lâu. Với lại nên sử dụng cái gì mình biết đã. Từ từ nghiên cứu. Học nhanh quá người HD cũng chưa update kịp.
 
Upvote 0
Cuối cùng cũng đã tìm được giải pháp cho vấn đề này.
1/Code QueryTab này đặt trong module:
Mã:
Option Explicit

Function Table_Query(strTableName As String, _
                        shDestinationSheet As Worksheet, _
           Optional strDestinationRange As String = "A1", _
           Optional strProvider As String = "ODBC", _
           Optional strDataSource As String, _
           Optional strSQL As String, _
           Optional strUserID As String, _
           Optional strPassword As String) As Object

' Cac tham so cho ham Table_Query:
'-  strTableName As String: Chuoi bieu dien Name nguon Co so du lieu, chung ta nen dat mot Name trong
'        Database de tien quan ly va truy xuat
'       (Trong vi du cua anh, mo file Data.xls de xem Name nay)
'-  shDestinationSheet As Worksheet: Bang tinh dich chi ra rang du lieu ket xuat se duoc dat vao do
'-  strDestinationRange As Range: O bat dau de du lieu dua xuong trong shDestinationSheet
'-  Optional strProvider As String = "ODBC": chi ra rang   CSDL duoc cung cap boi "Nha Cung cap" nao, mac dinh la ODBC
'-  Optional strDataSource As String: Cai ma MrOkeBiladen dang thac mac, de co duong dan thay doi theo thu muc cua File
'        chua module co code nay
'        su dung thuoc tinh Path cua ThisWorkbook (xem vi du ben duoi)
'-  Optional strSQL As String: Chuoi SQL
'-  Optional strUserID As String: (Optional)
'   Optional strPassword As String: (Optional)

If strUserID = "" Then strUserID = "ADMIN"
If strDataSource = "" Then strDataSource = ThisWorkbook.Path & "\" & ThisWorkbook.NAME

Dim strConnection As String
'NÕu sö dông tr×nh kÕt nèi ODBC, Table_Queryle sÏ ®­îc cung cÊp CommanText lµ mét SQL
If strProvider = "ODBC" Then
    strConnection = "ODBC;DBQ=" & strDataSource
    strConnection = strConnection & ";Driver={Microsoft Excel Driver (*.xls)}"
Else
    strConnection = "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;"
    strConnection = strConnection & "Password=" & strPassword & ";"
    strConnection = strConnection & "User ID=" & strUserID & ";"
    strConnection = strConnection & "Data Source=" & strDataSource
    Table_Query.CommandType = xlCmdTable & "$"
    Table_Query.AdjustColumnWidth = False
End If
' Neu shDestinationSheet.QueryTables da ton tai thi xoa di:
If shDestinationSheet.QueryTables.Count > 0 Then
    TEMP.QueryTables(1).Delete
End If
On Error GoTo TRY ' Co gang thu lai, co the shDestinationSheet chu duoc Activate (ma loi:2147024809)
REFRESH_NOW:
Set Table_Query = shDestinationSheet.QueryTables.Add(strConnection, shDestinationSheet.Range(strDestinationRange))
Table_Query.NAME = strTableName
Application.DisplayAlerts = False
Table_Query.RefreshStyle = xlOverwriteCells
Table_Query.SourceDataFile = strDataSource
Table_Query.CommandText = IIf(strProvider = "ODBC", strSQL, strTableName & "$")
Table_Query.REFRESH
Application.DisplayAlerts = True
Exit Function
TRY:
Select Case ERR.Number
Case -2147024809
    shDestinationSheet.Activate
    GoTo REFRESH_NOW
Case Else ' Khong duoc roi, xem lai chuoi ket noi da chuan chua:
    MsgBox ERR.Number & "-" & ERR.Description & ":" & vbNewLine & _
    "Connect string:" & vbNewLine & strConnection & vbNewLine & _
    "SQL string:" & vbNewLine & strSQL
End Select
End Function

2/ Code này thì đặt trong sheet:
Mã:
Private Sub CommandButton1_Click()
Table_Query "[COLOR="Red"]PS_T1[/COLOR]", [COLOR="Red"]Sheet1[/COLOR], "A1", "ODBC", ThisWorkbook.Path & "\[COLOR="Red"]BC_0107.xls[/COLOR]", "Select * From [COLOR="Red"][CD SPS $E9:F379][/COLOR] "
End Sub

Vùng CD SPS $E9:F379 chính là vùng name PS_T1 cần lấy dữ liệu.
Với cách này các bạn sẽ lấy dữ liệu từ file đóng rất nhanh mà không cần phải mở file chứa dữ liệu lên.

Thân chào.


PS: Cảm ơn trời cho mình 1 chút tỉnh táo tìm ra được giải pháp.
 
Upvote 0
Thien đã viết:
Cuối cùng cũng đã tìm được giải pháp cho vấn đề này.
PS: Cảm ơn trời cho mình 1 chút tỉnh táo tìm ra được giải pháp.
Thông cảm vì quá bận!! Tớ đã nói rằng Đào Việt Cường có mấy bài rất hay và cụ thể về vấn đề này Thế mà không chịu tham khảo . Giờ mới biết sao!!! Thân!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom