Đánh giá chủ đề:
  • 7 Votes - 1.71 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Hàm chuyển giá trị trong cột thành chuỗi cách nhau dấu phẩy
#21
(15-01-14, 12:38 AM)Quochuy86 Đã viết: Chào bác Noname

Mình có ứng dụng hàm của bác nhưng có một số vấn đề sau,mình có
- 1 table: Lich_hop: ngay hop, DVKD, email
- 1 form, trên form có 1 text1 để nhập ngày họp, 1 text2 để lấy email của các DVKD
Vấn đề là nếu lọc lấy danh sách email theo 1 ngày cụ thể thì em có thể viết code theo hướng dẫn của bác005. Tuy nhiên nếu viết theo kiểu nhập ngày vào text1 rồi mới lọc lấy dữ liệu thì cứ bị báo: "too few parameters. Expected 1"

Mong bác giúp đỡ 040
Bạn gởi csdl lên mình xem bạn làm những gì.
hôm bữa mình có giải bài này cho bạn giờ mình giải theo code của anh noname (có phát triển lại đôi chút ở code lấy ngày)

Mình tạo 1 table có các trường là
tên, email, ngày. khi lấy ngày thì nó sẽ hiện ra emain - làm ví dụ dựa trên bài của bạn nhưng mình ko tạo hết các trường
[Hình: _172_Capture.JPG]

demo: http://haiquan.id1945.com/up/file/_124_vd.rar
Chữ ký của quan_pc Lắp đặt Internet VNPT tại Điện Bàn - Quảng Nam - Hotline: 0915.636.745
ღღღღღTài sản của quan_pc (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Quochuy86 , sondanglam
#22
Bạn Noname cho tôi hỏi, nếu thay :' xoabo' bằng combobox trên forms Main thì câu lệnh
sql = "select soHD FROM HDIndex WHERE [Trangthai] = 'xoabo'"
phải sửa lại thế nào, xin cám ơn nhiều
Chữ ký của tracanhtam Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#23
(05-12-10, 03:13 PM)Noname Đã viết: bài viết của Noname
Site: http://thuthuataccess.co.cc
vui lòng giữ tên tác giả và site nếu dùng lại bài viết này làm tư liệu cho mình và chia sẻ. Cám ơn

-------------------------------------------------------------------
Ứng dụng của hàm này vào việc liệt kê danh sách khách hàng, số hóa đơn mất - xóa bỏ, liệt kê các giá trị thỏa điều kiện nào đó trong 1 câu query thành 1 chuỗi.Dùng chuỗi này vào các báo cáo...

Mã:
Function columnToString(sql As String) As String
'author:Noname
'site:http://thuthuataccess.co.cc
Dim rs As Recordset
Dim S As String
Set rs = CurrentDb.OpenRecordset(sql)
rs.MoveFirst
While Not (rs.EOF)
S = S & "," & rs(0)
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
columnToString = Mid(S, 2)
End Function
Sử dụng:
Mã:
Private Sub Command0_Click()
Dim sql As String
sql = "select soHD FROM HDIndex WHERE [Trangthai] = 'xoabo'"
Me.txtChuoi = columnToString(sql)
Me.Repaint
End Sub

[Hình: hoadonxoabo.jpg]
Ví dụ ta có table sau:
tableHDIndex (Click to View)
Yêu cầu ở đây là bạn liệt kê các số Hóa đơn bị xoabo.
ta thấy có các giá trị sau:
000003
000004
000005
000013
000016


Vấn đề là ta liệt kê nó thành 1 chuỗi và ngăn nhau bằng dấu phẩy, để nó trở thành : 000003,000004,000005,000013,000016.

Hàm trên đáp ứng được điều đó bằng cách gọi:
Mã:
Private Sub Command0_Click()
Dim sql As String
sql = "select soHD FROM HDIndex WHERE [Trangthai] = 'xoabo'"
Me.txtChuoi = columnToString(sql)
Me.Repaint
End Sub

Bạn cho hỏi, nếu làm ngược lại thì phải như thế nào
Chữ ký của tracanhtam Hãy chia sẻ kinh nghiệm cùng mình trên ThuThuatAccess nhé! Chúc vui vẻ rose
Reply
Những người đã cảm ơn
#24
'tracanhtam Đã viết:Bạn cho hỏi, nếu làm ngược lại thì phải như thế nào

http://www.thuthuataccess.com/forum/thread-6499.html

Tham khảo theo đường link trên
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Noname
#25
(05-12-10, 03:13 PM)Noname Đã viết: bài viết của Noname
Site: http://thuthuataccess.co.cc
vui lòng giữ tên tác giả và site nếu dùng lại bài viết này làm tư liệu cho mình và chia sẻ. Cám ơn

-------------------------------------------------------------------
Ứng dụng của hàm này vào việc liệt kê danh sách khách hàng, số hóa đơn mất - xóa bỏ, liệt kê các giá trị thỏa điều kiện nào đó trong 1 câu query thành 1 chuỗi.Dùng chuỗi này vào các báo cáo...

Mã:
Function columnToString(sql As String) As String
'author:Noname
'site:http://thuthuataccess.co.cc
Dim rs As Recordset
Dim S As String
Set rs = CurrentDb.OpenRecordset(sql)
rs.MoveFirst
While Not (rs.EOF)
S = S & "," & rs(0)
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
columnToString = Mid(S, 2)
End Function
Sử dụng:
Mã:
Private Sub Command0_Click()
Dim sql As String
sql = "select soHD FROM HDIndex WHERE [Trangthai] = 'xoabo'"
Me.txtChuoi = columnToString(sql)
Me.Repaint
End Sub

[Hình: hoadonxoabo.jpg]
Ví dụ ta có table sau:
tableHDIndex (Click to View)
Yêu cầu ở đây là bạn liệt kê các số Hóa đơn bị xoabo.
ta thấy có các giá trị sau:
000003
000004
000005
000013
000016


Vấn đề là ta liệt kê nó thành 1 chuỗi và ngăn nhau bằng dấu phẩy, để nó trở thành : 000003,000004,000005,000013,000016.

Hàm trên đáp ứng được điều đó bằng cách gọi:
Mã:
Private Sub Command0_Click()
Dim sql As String
sql = "select soHD FROM HDIndex WHERE [Trangthai] = 'xoabo'"
Me.txtChuoi = columnToString(sql)
Me.Repaint
End Sub

hay quá bạn ạ, thk,
Hàm này nên đặt tên là Dsum_str có vẽ thích hợp nhỉ
Hàm này giống hàm ConcatRelated("","","")
Chữ ký của thucgia Hix, Access quả nhiên lợi hại !!!! http://vibigaba.esy.es/
ღღღღღTài sản của thucgia (View All Items) ღღღღღ
Reply
Những người đã cảm ơn Noname


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Hướng Dẫn Hàm API trong quản lý file và folder maidinhdan 1 293 22-04-16, 09:40 AM
Bài mới nhất: kieu manh
  Hướng Dẫn Tổng hợp hàm xử lý văn bản và chuỗi ( Có ví dụ) maidinhdan 0 319 16-04-16, 01:17 PM
Bài mới nhất: maidinhdan
  Hướng Dẫn Một số hàm D trong Access Xuân Thanh 12 6,653 22-01-16, 01:55 PM
Bài mới nhất: khanghychu
  Hướng Dẫn Một số hàm C... trong Access Xuân Thanh 2 1,328 21-01-16, 11:06 AM
Bài mới nhất: khanghychu
  [Hàm] Hàm tách lấy số trong một chuỗi cho trước Xuân Thanh 11 2,130 13-10-15, 10:08 AM
Bài mới nhất: tranthanhan1962

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ơ