1
ห้อง MS Access / : รวมข้อมูลหลาย row ใน 1 Record ในคิวรี่
« เมื่อ: 12 ม.ค. 64 , 08:42:17 »
ในคิวรี่ คงต้องเขียนฟังชั่นนะครับ แล้วมาเรียกใช้ในคิวรี่แต่ผมไม่เคยลอง รออาจารย์ท่านอื่นๆ
แต่ถ้าการสร้างข้องมูลไปวางในตาราง อีกอันนั้นผมใช้แบบนี้ครับ
ตารางหลักชื่อ MyTable
มีฟิลล์ ID,ITEM (ตามตัวอย่าง)
--------------------------------------------------
มีตารางแสดงผลชื่อ TblResult
มีฟิลล์ ID,ITEM (ตามตัวอย่าง)
โค้ด
แต่ถ้าการสร้างข้องมูลไปวางในตาราง อีกอันนั้นผมใช้แบบนี้ครับ
ตารางหลักชื่อ MyTable
มีฟิลล์ ID,ITEM (ตามตัวอย่าง)
--------------------------------------------------
มีตารางแสดงผลชื่อ TblResult
มีฟิลล์ ID,ITEM (ตามตัวอย่าง)
โค้ด
โค๊ด: [Select]
Private Sub concatenateString()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim rstOut As DAO.Recordset
Dim strID As String
Dim strITEM As String
Set db = CurrentDb()
Set rst = db.OpenRecordset("SELECT Mytable.ID, Mytable.ITEM FROM Mytable GROUP BY Mytable.ID, Mytable.ITEM ORDER BY Mytable.ID, Mytable.ITEM DESC;", dbOpenDynaset)
If Not rst.BOF And Not rst.EOF Then
rst.MoveFirst
strID = rst!ID
strITEM = rst!Item
rst.MoveNext
Do Until rst.EOF
If strID = rst!ID Then
strITEM = strITEM & ", " & rst!Item
Else
Set db = CurrentDb()
Set rstOut = db.OpenRecordset("tblResult", dbOpenDynaset)
rstOut.AddNew
rstOut!ID = strID
rstOut!Item = strITEM
rstOut.Update
strID = rst!ID
strITEM = rst!Item
rstOut.Close
db.Close
End If
rst.MoveNext
Loop
Set db = CurrentDb()
Set rstOut = db.OpenRecordset("tblResult", dbOpenDynaset)
rstOut.AddNew
rstOut!ID = strID
rstOut!Item = strITEM
rstOut.Update
strID = rstOut!ID
strITEM = rstOut!Item
rstOut.Close
db.Close
End If
Set rst = Nothing
Set db = Nothing
Set rstOut = Nothing
End Sub
ที่ปุ่มใส่โค้ดเพื่อเรียกใช้งานโค๊ด: [Select]
Private Sub Command0_Click()
concatenateString
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: Peak21