• Lọc dữ liệu từ textbox
  • Lọc dữ liệu từ textbox

    thanhtruong > 21-01-17, 11:36 AM

    Chào mọi người.

    Mình có tham khảo Hàm tách họ tên, tại Tại đây
    Nhưng nó chỉ tách được họ hoặc tên, chứ không tách được như ý muốn.
    ý của mình là thế này:
    ví dụ: 
    Textbox 1 có nội dung là: "NGUYỄN THỊ A | NGUYỄN THỊ B | NGUYỄN THỊ C" cách nhau bỏi dấu |
    Textbox 2 mình muốn lấy "NGUYỄN THỊ B" từ textbox 1 thì mình dùng hàm nào.

    mình đã dùng hàm FIND, Hay Seach, hàm len, nói chung nó không hề lấy được. Hình như các hàm này trong excel,
    Còn access mình phải làm sao?
    Xin cho ý kiến!
  • RE: Lọc dữ liệu từ textbox

    ongke0711 > 21-01-17, 02:21 PM

    Cách tôi làm sẽ đưa textbox1 này vô 1 biến. Dùng hàm Split biến này thành biến mảng. Sau đó đọc các phần tử mảng này đưa vô table hay làm gì đó tùy bạn
       Dim ArrayText() as String
       Dim i as Integer
       ArrayText=Split(Textbox1,"|")
       For i=0 to Ubound(ArrayText)
           Debug.Print ArrayText (i)
       Next
  • RE: Lọc dữ liệu từ textbox

    lehongduc > 21-01-17, 09:45 PM

    (21-01-17, 02:21 PM)ongke0711 Đã viết: Cách tôi làm sẽ đưa textbox1 này vô 1 biến. Dùng hàm Split biến này thành biến mảng. Sau đó đọc các phần tử mảng này đưa vô table hay làm gì đó tùy bạn
       Dim ArrayText() as String
       Dim i as Integer
       ArrayText=Split(Textbox1,"|")
       For i=0 to Unbound(ArrayText)
           Debug.Print ArrayText (i)
       Next

    Bác ghi nhầm "UBound" thành "Unbound" rồi.
    Theo tôi, đoạn:
    Trích dẫn:For i=0 to UBound(ArrayText)
         Debug.Print ArrayText (i)
    Next
    nên viết như sau sẽ linh hoạt hơn:
    Trích dẫn:For i=LBound(ArrayText) to UBound(ArrayText)
         Debug.Print ArrayText (i)
    Next
  • RE: Lọc dữ liệu từ textbox

    thanhtruong > 22-01-17, 02:49 PM

    (21-01-17, 09:45 PM)lehongduc Đã viết:
    (21-01-17, 02:21 PM)ongke0711 Đã viết: Cách tôi làm sẽ đưa textbox1 này vô 1 biến. Dùng hàm Split biến này thành biến mảng. Sau đó đọc các phần tử mảng này đưa vô table hay làm gì đó tùy bạn
       Dim ArrayText() as String
       Dim i as Integer
       ArrayText=Split(Textbox1,"|")
       For i=0 to Unbound(ArrayText)
           Debug.Print ArrayText (i)
       Next

    Bác ghi nhầm "UBound" thành "Unbound" rồi.
    Theo tôi, đoạn:
    Trích dẫn:For i=0 to UBound(ArrayText)
         Debug.Print ArrayText (i)
    Next
    nên viết như sau sẽ linh hoạt hơn:
    Trích dẫn:For i=LBound(ArrayText) to UBound(ArrayText)
         Debug.Print ArrayText (i)
    Next

    Cảm ơn vì đã chỉ dẫn, nhưng công nhận mình gà quá, không biết đưa biến này vào chổ nào, sử dụng nó ra sao? Xin cho góp ý ạ.
  • RE: Lọc dữ liệu từ textbox

    ongke0711 > 22-01-17, 04:49 PM

    (21-01-17, 11:36 AM)thanhtruong Đã viết: ví dụ: 
    Textbox 1 có nội dung là: "NGUYỄN THỊ A | NGUYỄN THỊ B | NGUYỄN THỊ C" cách nhau bỏi dấu |
    Textbox 2 mình muốn lấy "NGUYỄN THỊ B" từ textbox 1 thì mình dùng hàm nào.

    Bạn nói rõ hơn về cách. thức bạn tìm nhé. Bạn muốn tìm tên người đứng vi trí thứ 2 trong danh liệt kê (Textbox1) hay bạn gõ tên NGUYEN THI B rồi tìm trong Textbox1 có hay không? Hay muốn tách danh sách này thành nhưng tên riêng biệt nằm trên nhưng dòng khác nhau?  hay như thế nào khác?
  • RE: Lọc dữ liệu từ textbox

    thanhtruong > 22-01-17, 06:01 PM

    (22-01-17, 04:49 PM)ongke0711 Đã viết:
    (21-01-17, 11:36 AM)thanhtruong Đã viết: ví dụ: 
    Textbox 1 có nội dung là: "NGUYỄN THỊ A | NGUYỄN THỊ B | NGUYỄN THỊ C" cách nhau bỏi dấu |
    Textbox 2 mình muốn lấy "NGUYỄN THỊ B" từ textbox 1 thì mình dùng hàm nào.

    Bạn nói rõ hơn về cách. thức bạn tìm nhé. Bạn muốn tìm tên người đứng vi trí thứ 2 trong danh liệt kê (Textbox1) hay bạn gõ tên NGUYEN THI B rồi tìm trong Textbox1 có hay không? Hay muốn tách danh sách này thành nhưng tên riêng biệt nằm trên nhưng dòng khác nhau?  hay như thế nào khác?

    đúng là cái ý này: "Muốn tách danh sách này thành những tên riêng biệt nằm trên những dòng khác nhau"
  • RE: Lọc dữ liệu từ textbox

    ongke0711 > 22-01-17, 10:23 PM

    Bạn xem link file demo.
    http://www.mediafire.com/file/ut5ny872bs...hChuoi.mdb

    - Tạo table tạm tblListTemp dùng để lưu danh sách tên sau khi tách ra.
    - Textbox txtTextSplit chứa chuỗi cần tách, cách nhau bằng dấu "|". 


    Mã PHP:
    Option Compare Database
    Option Explicit

    Private Sub cmdXuLy_Click()
       Dim x As StringArrayText() As String
       Dim i 
    As Integerstt As Integer
       Dim db 
    As DAO.Database
       
       Set db 
    CurrentDb
       db
    .Execute "DELETE * FROM tblListTemp"
       
       x 
    Me.txtTextSplit
       ArrayText 
    Split(x"|")
       stt 0
       For i 
    LBound(ArrayTextTo UBound(ArrayText)
           stt stt 1
           db
    .Execute "INSERT INTO tblListTemp (Stt,Ten) " _
                       
    "VALUES (" stt ",'" Trim(ArrayText(i)) & "')"dbFailOnError
       Next
       Me
    .tblListTemp_subform.Requery
       
       db
    .Close

    End Sub 
  • RE: Lọc dữ liệu từ textbox

    thanhtruong > 23-01-17, 08:10 AM

    Cảm ơn Anh nhiều
    Và đó là lưu tạm, nhưng Mình phải truyền các tham số vừa tách được vào một table để lưu, vậy cách truyền các tham số đó thế nào vậy anh? đây là file cần truyền tham số đó vào. Link demo
    MÌnh dùng hàm Me.tach1=Child9.Form!ten mà mình biết nó sai vì nó không biết truyền thằng nào cho đúng
    Xem giùm mình với
  • RE: Lọc dữ liệu từ textbox

    ongke0711 > 23-01-17, 05:55 PM

    Thì thay vì lưu vào table tạm tôi làm ví dụ, bạn thay nó bằng table lưu của bạn.
    Tôi cũng không hiểu cấu trúc table bạn muốn lưu trong file demo. Bạn làm sao biết tách từ chuỗi ra bao nhiêu phần tử mà tạo sẳn 6 Field đặt tên tach1 -> tach6 ?? nếu có hơn 6 dòng tách ra thì sao?
    Bạn làm lại logic xử lý nghiệp vụ này, lưu như thế nào cho khả thi chứ hiện tại thì tôi thấy không ổn rồi. Bạn nói rõ nghiệp vụ này, tôi xem đóng góp ý kiến thêm.
  • RE: Lọc dữ liệu từ textbox

    thanhtruong > 06-02-17, 11:16 AM

    (23-01-17, 05:55 PM)ongke0711 Đã viết: Thì thay vì lưu vào table tạm tôi làm ví dụ, bạn thay nó bằng table lưu của bạn.
    Tôi cũng không hiểu cấu trúc table bạn muốn lưu trong file demo. Bạn làm sao biết tách từ chuỗi ra bao nhiêu phần tử mà tạo sẳn 6 Field đặt tên tach1 -> tach6 ?? nếu có hơn 6 dòng tách ra thì sao?
    Bạn làm lại logic xử lý nghiệp vụ này, lưu như thế nào cho khả thi chứ hiện tại thì tôi thấy không ổn rồi. Bạn nói rõ nghiệp vụ này, tôi xem đóng góp ý kiến thêm.

    CHÚC MỪNG NĂM MỚI 2017
    CHÚC ANH (CHỊ) TRONG DIỄN ĐÀN NĂM MỚI AN KHANG – HẠNH PHÚC –THÀNH CÔNG
    ------------------------------------------------------------
    Nghiệp vụ của mình là thế này
    Trong thẻ BHYT nó có mã QR, khi quét mã này nó sẽ trả về 1 chuỗi ký tự như sau
    HS7790900400931|4E677 579E1BB856E204E67E1BB8D63205068C6B0C6A16E67205468616E68|
    01/08/2006|2|
    5472C6B0E1BB9D6E67205469E1BB83752068E1BB8D63204368C3AD204C696E68|
    79 - 032|01/10/2012|30/09/2013|06/09/2013|790900200883|
    4CC3AA205468E1BB8B204E67E1BB8D6320517579C3
    AA6E205068E1BAA16D2056C4836E2044C6B0E1BBA16E67|
    5|01/01/2015|3CCF511358E91762-0101|$


    Thông tin cụ thể các trường theo thứ tự như sau: Mình muốn tách dữ liệu cách nhau dấu | ra tại ô “Tên 1” đến ô “Tên 15”

    1.      HS7790900400931: Mã thẻ

    2.      4E677579E1BB856E204E67E1BB8D63205068C6B0C6A16E67205468616E68: Họ tên được chuyển đổi thành mã Hexa.

    3.      01/08/2006: Ngày sinh

    4.      2: Giới tính (1 là nam, 2 là nữ)

    5.      5472C6B0E1BB9D6E67205469E1BB83752068E1BB8D63204368C3AD204C696E68: Địa chỉ được biểu diễn theo mã hexa

    6.      79 – 032: Mã bệnh viện

    7.      01/10/2012: Từ ngày

    8.      30/09/2013: Đến ngày

    9.      06/09/2013: Ngày cấp

    10.  790900200883: Mã quản lý cá nhân của cơ quan BHXH

    11.  4CC3AA205468E1BB8B204E67E1BB8D6320517579C3AA6E205068E1BAA16
    D2056C4836E2044C6B0E1BBA16E67
    : Họ tên cha mẹ được chuyển đổi thành mã Hexa (Nếu không có sẽ là ký tự “-“)

    12.  5: Mã nơi đối tượng sinh sống (tương ứng với K1) (Nếu không có sẽ là ký tự “4“)

    13.  01/01/2015: Thời điểm đủ 05 năm liên tục (Nếu không có sẽ là ký tự “-“)

    14.  3CCF511358E91762-0101: Chuỗi kiểm tra của cơ quan BHXH

    15.  $: ký tự báo hiệu kết thúc chuỗi barcode.

    Khi đã tách xong, bước tiếp theo là làm sao để chuyển đỗi tại ô “tên 2” “tên 5” “tên 11”
    Thành tiếng việt có dấu.
     
    Hiện tại thì Ongke0711 đã giúp mình tách được nhưng chưa lưu vào được table
    Lấy file demon của mình ở trên làm ví dụ:
    Ý 1: Giờ mình muốn thêm mới 1 record thì con trỏ ở vị trí Text 0 và dung máy quét nó sẽ ra dãy số, làm sao để lưu vào các text box tên 1 tên 2
    Ý 2: làm sao để chuyển thành tiếng việt có dấu tại ô “tên 2” “tên 5” “tên 11”
     
    Nhờ mọi người giúp đở! Cảm ơn nhiều