Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Hỏi] Lỗi khi xuất nhiều điều kiện sang excel
#1
Mình được bạn dinhtronghoa hướng dẫn xuất dữ liệu tìm kiếm sang excel. Khi chọn 1 điều kiện thì xuất sang excel được nhưng nhiều điều kiện thì hiện thông báo này và không xuất được. Mọi người xem giùm mình với!

File https://www.mediafire.com/?6a9071xdfbsh7na

[Hình: aaaaaaa_zps6a9ac757.jpg]
Chữ ký của changkhoonline77 Xin chào, mình là changkhoonline77, Tham gia http://thuthuataccess.com/forum từ ngày 25-06 -12.
Reply
Những người đã cảm ơn
#2
Chào bạn !
Theo yêu cầu của bạn theo mình:
1. Tạo 1 Function để chuyển các giá trị lừa chọn trong Com1, Com2 thành các trường HOTEN ... để thực hiện các câu lệnh SQL
Mã:
Function ConditionSearch(strKieutim As String) As String
    Dim strSearch As String
    If strKieutim = UniConvert("Ho5 te6n", "vni") Then strSearch = "HOTEN"
    If strKieutim = UniConvert("Na8m sinh", "vni") Then strSearch = "NAMSINH"
    If strKieutim = UniConvert("So61 CMND", "vni") Then strSearch = "CMND"
    ConditionSearch = strSearch
End Function
(Mình có tạo thêm 1 Function UniConvert để chuyển thành tiếng Việt)
2. Tạo Function chuyển các điều kiện đã chọn thành câu lệnh SQL:
Mã:
Function sqlSearch() As String
        Dim sql As String, strSearch, strSearch1 As String
        If Nz(Forms!search!ctr1.Value, "") = "" Then
            MsgBox "Chua chon dieu kien ctr1"
            Forms!search!ctr1.SetFocus
            Exit Function
        Else
            strSearch = ConditionSearch(Forms!search!Com1.Value)
            If Forms!search!Check1.Value = False Then
                sql = "Select * from tblData Where " & strSearch & " Like '" & "*" & Forms!search!ctr1.Value & "*" & "'"
            Else
                strSearch1 = ConditionSearch(Forms!search!Com2.Value)
                If Nz(Forms!search!ctr2.Value, "") = "" Then
                    MsgBox "Chua chon dieu kien ctr2"
                    Forms!search!ctr2.SetFocus
                    Exit Function
                Else
                    sql = "Select * from tblData Where " & strSearch & " Like '" & "*" & Forms!search!ctr1.Value & "*" & "' And " & strSearch1 & " Like '" & "*" & Forms!search!ctr2.Value & "*" & "'"
                End If
            End If
        End If
        sqlSearch = sql
End Function
3. Tại Public Sub export() bạn thay:
Mã:
Set rs = CurrentDb.OpenRecordset("Query_Search", OpenDynaset)
thành:
Mã:
Dim strSQL As String    
    strSQL = sqlSearch
    Set rs = CurrentDb.OpenRecordset(strSQL)
là OK !
Mình chỉ mới tạo để chạy phần xuất thôi nhé ! Còn bẩy lỗi, phần search bạn làm lại theo yêu cầu của bạn nhé !
Demo
Chúc thành công !
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn
#3
Theo thiết kế dữ liệu của bạn: Bạn có thể thay thế Function ở bước 1 bằng Function sau mà ko cần dùng Function Uniconvert:
Mã:
Function ConditionSearch(strKieutim As String) As String
    Dim strSearch As String
    strSearch = Nz(DLookup("[ma_cot]", "dieu_kien", "[ten_cot]='" & strKieutim& "'"), "")
    strTimdieukien = strSearch
End Function
Nút Search của bạn chỉ cần:
Mã:
Private Sub search_Click()
    Dim strSQL As String
    strSQL = sqlSearch
    Me.List1.RowSource = sqlSearch
    Me.List1.Requery    
End Sub
Là OK !
Thân chào
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn changkhoonline77
#4
(01-07-14, 02:57 PM)Minh Tiên Đã viết: Theo thiết kế dữ liệu của bạn: Bạn có thể thay thế Function ở bước 1 bằng Function sau mà ko cần dùng Function Uniconvert:
Mã:
Function ConditionSearch(strKieutim As String) As String
    Dim strSearch As String
    strSearch = Nz(DLookup("[ma_cot]", "dieu_kien", "[ten_cot]='" & strKieutim& "'"), "")
    strTimdieukien = strSearch
End Function
Nút Search của bạn chỉ cần:
Mã:
Private Sub search_Click()
    Dim strSQL As String
    strSQL = sqlSearch
    Me.List1.RowSource = sqlSearch
    Me.List1.Requery    
End Sub
Là OK !
Thân chào

Để mình thử.
Hướng dẫn ở trên của bạn báo lỗi.
Chữ ký của changkhoonline77 Xin chào, mình là changkhoonline77, Tham gia http://thuthuataccess.com/forum từ ngày 25-06 -12.
Reply
Những người đã cảm ơn
#5
File mình đã hoàn chỉnh đầy đủ:
Demo
Lưu ý: Có thể lỗi do chưa chọn đúng thư viện. Acc mình chỉ có Microsoft Excel 12.0 Object Library
Mình thấy File cũ của bạn là: Microsoft Excel 15.0 Object Library
Cách kiểm tra: Mở cửa sổ VBA --> Tools --> Reference ..> Nếu có dòng nào MISSING... check bỏ và chọn lại thư viện cho phù hợp.
Thân chào !
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn changkhoonline77
#6
Ok rồi. Cảm ơn bạn nhiều.
Chữ ký của changkhoonline77 Xin chào, mình là changkhoonline77, Tham gia http://thuthuataccess.com/forum từ ngày 25-06 -12.
Reply
Những người đã cảm ơn
#7
File demo của bạn thì tốt rồi. Nhưng khi mình import file của bạn (và đổi tên table query form moudle) thì bị lỗi bên dưới. 2 references đều giống nhau. Mình định import qua file bạn gửi mà không được do 1 số thứ .mdb hog hỗ trợ.
Bạn xem giùm mình nha

[Hình: dsef_zpse5191287.jpg]

file https://www.mediafire.com/?61uud7vybr13g2r
Chữ ký của changkhoonline77 Xin chào, mình là changkhoonline77, Tham gia http://thuthuataccess.com/forum từ ngày 25-06 -12.
Reply
Những người đã cảm ơn
#8
File bạn gửi Tiên ko mở được. Bạn dùng Acc ? T chỉ dùng Acc2007.
Bạn hãy tạo bẩy lỗi và xem chi tiết thử lỗi thuộc Pro, sub, Mod nào ? Hoặc đưa tất cả vào cùng 1 Sub (hoặc Function) bỏ bẫy lỗi ---> Run --> Sẽ xác định được dòng lỗi.
Lỗi này thường là do mất thiết lập (Set) cho đối tượng như: Set Ctrl = Controls(Arr(i)) hoặc set ...= ....
Có thể do các thư viện ko tương thích hoặc chưa khai báo biến đối tượng hoặc ...
Bạn kiểm tra lại xem sao.
Thân chào !
Chữ ký của Minh Tiên -----------------------------------------------
Đường tuy ngắn, không đi không đến
Việc tuy nhỏ, không làm không nên.
                                           Tuân Tử
-----------------------------------------------
Reply
Những người đã cảm ơn
#9
(02-07-14, 08:35 AM)Minh Tiên Đã viết: File bạn gửi Tiên ko mở được. Bạn dùng Acc ? T chỉ dùng Acc2007.
Bạn hãy tạo bẩy lỗi và xem chi tiết thử lỗi thuộc Pro, sub, Mod nào ? Hoặc đưa tất cả vào cùng 1 Sub (hoặc Function) bỏ bẫy lỗi ---> Run --> Sẽ xác định được dòng lỗi.
Lỗi này thường là do mất thiết lập (Set) cho đối tượng như: Set Ctrl = Controls(Arr(i)) hoặc set ...= ....
Có thể do các thư viện ko tương thích hoặc chưa khai báo biến đối tượng hoặc ...
Bạn kiểm tra lại xem sao.
Thân chào !
Mình sửa lại được rồi. Sai chỗ này.

Mã PHP:
Dim rs As Recordset 

Sửa lại thành
Mã PHP:
Dim rs As DAO.Recordset 

Cảm ơn bạn giúp mình nhiều!
Chữ ký của changkhoonline77 Xin chào, mình là changkhoonline77, Tham gia http://thuthuataccess.com/forum từ ngày 25-06 -12.
Reply
Những người đã cảm ơn
#10
Mình thêm nhiều combobox thì lỗi hàm like, bạn xem giùm mình cách thêm code của mình có đúng không nha.

File .mdb https://www.mediafire.com/?5p19rszro587mod
Chữ ký của changkhoonline77 Xin chào, mình là changkhoonline77, Tham gia http://thuthuataccess.com/forum từ ngày 25-06 -12.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Help] Cập nhật combobox 2 từ combobox 1 (dữ liệu ở nhiều bảng) votinh.tq 6 209 22-11-16, 11:34 PM
Bài mới nhất: votinh.tq
  Lọc có điều kiện ở listbox phiacuoiconduong 2 98 18-11-16, 06:40 PM
Bài mới nhất: ongke0711
  Lọc theo điều kiện trong listbox Ranju 3 184 06-10-16, 05:26 PM
Bài mới nhất: Ranju
  Thay đổi màu nền các dòng theo điều kiện trên form Continuous tranthanhan1962 9 1,706 27-09-16, 11:01 PM
Bài mới nhất: ongke0711
  Không cho phép điều chỉnh kích thước của Form ChiMai 1 129 18-09-16, 01:27 PM
Bài mới nhất: ongke0711

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ