-
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)
nên viết như sau sẽ linh hoạt hơn:
Debug.Print ArrayText (i)
Next
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)
nên viết như sau sẽ linh hoạt hơn:
Debug.Print ArrayText (i)
Next
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 String, ArrayText() As String
Dim i As Integer, stt 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(ArrayText) To 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