Hàm kiểm tra dữ liệu để import dữ liệu từ excel vào access

Liên hệ QC

subasatran

Thành viên hoạt động
Tham gia
17/3/13
Bài viết
114
Được thích
6
Mình có một file nguồn excel được xuất ra từ hệ thống hàng ngày(không thay đổi format được). Bây giờ mình muốn import vào access để xử lý dữ liệu.
Vấn đề gặp phải là dữ liệu file excel có một cột CODE(cột E file ví dụ) format từ hệ thống đang là number nhưng dữ liệu lại có một số dòng là text. Nên khi import các dòng này không import được.
Nhờ mọi người hướng dẫn tạo một hàm bằng VBA để kiểm tra tự động import theo dữ liệu mà không phải chỉnh lại format của file excel.
Mình có làm một hàm nhỏ để kiểm tra dữ liệu nhưng vẫn không import được. Rất mong mọi người giúp đỡ.
Mã:
Public Function ConvertNumberToText(ByVal txtnumber As String) As String
If IsNumeric(Val(txtnumber)) = True Then
    ConvertNumberToText = Format(CStr(txtnumber), "00000000")
Else
    ConvertNumberToText = CStr(txtnumber)
End If
End Function
 

File đính kèm

  • Test (1).zip
    45.2 KB · Đọc: 6
Mình có một file nguồn excel được xuất ra từ hệ thống hàng ngày(không thay đổi format được). Bây giờ mình muốn import vào access để xử lý dữ liệu.
Vấn đề gặp phải là dữ liệu file excel có một cột CODE(cột E file ví dụ) format từ hệ thống đang là number nhưng dữ liệu lại có một số dòng là text. Nên khi import các dòng này không import được.
Nhờ mọi người hướng dẫn tạo một hàm bằng VBA để kiểm tra tự động import theo dữ liệu mà không phải chỉnh lại format của file excel.
Mình có làm một hàm nhỏ để kiểm tra dữ liệu nhưng vẫn không import được. Rất mong mọi người giúp đỡ.
Mã:
Public Function ConvertNumberToText(ByVal txtnumber As String) As String
If IsNumeric(Val(txtnumber)) = True Then
    ConvertNumberToText = Format(CStr(txtnumber), "00000000")
Else
    ConvertNumberToText = CStr(txtnumber)
End If
End Function
ý bạn là viết code lưu cái dữ liệu Format lộn xộn đó vào TableName "Test_Get_Data" mà ko phải Format lại dữ liệu trên Excel cho nó phù hợp với dữ liệu cột trên Access chứ gì ????

Nếu vậy xài DAO đi nó xử bay cái vèo
 
Upvote 0
Bạn thử với hàm này:
PHP:
Function TxtToTxtNumber(Val_ As Variant) As String
Dim J As Integer

If IsNumeric(Val_) Then
    TxtToTxtNumber = CStr(Val_)
Else
    For J = 1 To Len(Val_)
        If IsNumeric(Mid(Val_, J, 1)) Then
            TxtToTxtNumber = TxtToTxtNumber & Mid(Val_, J, 1)
        Else
        End If
    Next J
End If
End Function
Hàm chỉ đáp ứng với dữ liệu như trong file của bạn; Ngoài kiểu này, hàm sẽ không đảm trách!
 
Upvote 0
ý bạn là viết code lưu cái dữ liệu Format lộn xộn đó vào TableName "Test_Get_Data" mà ko phải Format lại dữ liệu trên Excel cho nó phù hợp với dữ liệu cột trên Access chứ gì ????

Nếu vậy xài DAO đi nó xử bay cái vèo
Mình không biết xài DAO như thế nào, hướng dẫn mình với.
Bài đã được tự động gộp:

Bạn thử với hàm này:
PHP:
Function TxtToTxtNumber(Val_ As Variant) As String
Dim J As Integer

If IsNumeric(Val_) Then
    TxtToTxtNumber = CStr(Val_)
Else
    For J = 1 To Len(Val_)
        If IsNumeric(Mid(Val_, J, 1)) Then
            TxtToTxtNumber = TxtToTxtNumber & Mid(Val_, J, 1)
        Else
        End If
    Next J
End If
End Function
Hàm chỉ đáp ứng với dữ liệu như trong file của bạn; Ngoài kiểu này, hàm sẽ không đảm trách!
Nó bị Error 94 : Invalid use of Null.
Debug thì nó thẻ hiện ở dòng vòng lặp.
Nếu cho chạy tiếp thì nó import không có mấy dòng text. Bác Sa giúp với ạ
 
Upvote 0
Tiện mình đang viết lại mã nguồn trên Delphi vậy mình úp luôn cho bạn chạy thử xem đúng ý không nhé

Mở File Excel lên và chạy code nó sẻ lưu cái dữ liệu Format linh tinh đó vào TableName Access
Còn viết trên Access lấy dữ liệu từ Excel vào mình chưa làm bao giờ nên ko biết

Với Mình chỉ coi Access như là cái bao tải chứa dữ liệu vậy thôi ... còn cái khác mình không để ý
 

File đính kèm

  • GPE.rar
    3.4 MB · Đọc: 13
Upvote 0
Tiện mình đang viết lại mã nguồn trên Delphi vậy mình úp luôn cho bạn chạy thử xem đúng ý không nhé

Mở File Excel lên và chạy code nó sẻ lưu cái dữ liệu Format linh tinh đó vào TableName Access
Còn viết trên Access lấy dữ liệu từ Excel vào mình chưa làm bao giờ nên ko biết

Với Mình chỉ coi Access như là cái bao tải chứa dữ liệu vậy thôi ... còn cái khác mình không để ý
Em đăng ký file dll đó bị lỗi bác ơi.
 

File đính kèm

  • Loi DK dll.png
    Loi DK dll.png
    6.2 KB · Đọc: 4
Upvote 0
Em đăng ký file dll đó bị lỗi bác ơi.
trả lời bài số #8 bên này

 
Upvote 0
Web KT
Back
Top Bottom