กระทู้เก่าบอร์ด อ.Yeadram
1,522 3
URL.หัวข้อ /
URL
นำข้อมูลจาก 1 ตาราง ไปอีก 2 ตาราง โดยมีเงื่อนไขต่า
ผมมี Table อยู่ 3 Table (Table 1 Table 2 Table 3)
Table 1 เก็บข้อมูลขาย ดังนี้
IDmem(รหัสสมาชิก) CodeID(รหัสสินค้า)
1 001
1 002
1 003
2 002
2 003
3 001
4 002
Table 2 เก็บข้อมูลรหัสสมาชิก 1 คน 1 เรคคอด ดังนี้
IDmem(รหัสสมาชิก)
1
2
3
4
Table 3 เก็บข้อมูลเฉพาะรหัส 002 ดังนี้
IDmem(รหัสสมาชิก) CodeID(รหัสสินค้า)
1 002
2 002
4 002
ต้องการเขียนโคตให้เก็บข้อมมูลจาก Table1 ไปเก็บไว้ใน Table2 และ Table3
ผมลองทำดูเป็นดังนี้
Set dbs = CurrentDb
Set rstT1 = dbs.OpenRecordset("Table 1", dbOpenSnapshot)
Set rstT2 = dbs.OpenRecordset("Table 2", dbOpenDynaset)
Set rstT3 = dbs.OpenRecordset("Table 3", dbOpenDynaset)
Do Until rstT1.EOF
rstT2.addNew
rstT2!IDmem = rstT1!IDmem
rstT2.update
rstT3.addNew
rstT3!IDmem = rstT12!IDmem
rstT3!CodeID = rstT1!CodeID
rstT3.update
rstQ.MoveNext
Loop
จากโคตใน Table2 รหัสสมาชิกน่าจะออกมาซ้ำ เพราะยังไม่ได้ใส่เงื่อนไข(ใส่ไม่ถูก)
จากโคตใน Table2 ก็น่าจะออกรหัสสินค้ามาทั้งหมด เพราะยังไม่ได้ใส่เงื่อนไข(ใส่ไม่ถูก)
ฝากอาจารย์ช่วยปรับแก้ หรือมี โคตอื่นที่ดีกว่านี้ครับ ผมเอามาประติดปะต่อกัน แต่ใส่เงื่อไขไม่ถูก
Table 1 เก็บข้อมูลขาย ดังนี้
IDmem(รหัสสมาชิก) CodeID(รหัสสินค้า)
1 001
1 002
1 003
2 002
2 003
3 001
4 002
Table 2 เก็บข้อมูลรหัสสมาชิก 1 คน 1 เรคคอด ดังนี้
IDmem(รหัสสมาชิก)
1
2
3
4
Table 3 เก็บข้อมูลเฉพาะรหัส 002 ดังนี้
IDmem(รหัสสมาชิก) CodeID(รหัสสินค้า)
1 002
2 002
4 002
ต้องการเขียนโคตให้เก็บข้อมมูลจาก Table1 ไปเก็บไว้ใน Table2 และ Table3
ผมลองทำดูเป็นดังนี้
Set dbs = CurrentDb
Set rstT1 = dbs.OpenRecordset("Table 1", dbOpenSnapshot)
Set rstT2 = dbs.OpenRecordset("Table 2", dbOpenDynaset)
Set rstT3 = dbs.OpenRecordset("Table 3", dbOpenDynaset)
Do Until rstT1.EOF
rstT2.addNew
rstT2!IDmem = rstT1!IDmem
rstT2.update
rstT3.addNew
rstT3!IDmem = rstT12!IDmem
rstT3!CodeID = rstT1!CodeID
rstT3.update
rstQ.MoveNext
Loop
จากโคตใน Table2 รหัสสมาชิกน่าจะออกมาซ้ำ เพราะยังไม่ได้ใส่เงื่อนไข(ใส่ไม่ถูก)
จากโคตใน Table2 ก็น่าจะออกรหัสสินค้ามาทั้งหมด เพราะยังไม่ได้ใส่เงื่อนไข(ใส่ไม่ถูก)
ฝากอาจารย์ช่วยปรับแก้ หรือมี โคตอื่นที่ดีกว่านี้ครับ ผมเอามาประติดปะต่อกัน แต่ใส่เงื่อไขไม่ถูก
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R17003
แก้นิดนึงครับ
WHILE Not rstT1.EOF
WITH rstT2
.AddNew
.Fields("ชื่อฟิลด์") = ค่าที่ต้องการ เช่น rst1.Fields("IDMem).Value
.Update
END WITH
rstT1.MoveNext เพิ่มบรรทัดนี้
WEND
WHILE Not rstT1.EOF
WITH rstT2
.AddNew
.Fields("ชื่อฟิลด์") = ค่าที่ต้องการ เช่น rst1.Fields("IDMem).Value
.Update
END WITH
rstT1.MoveNext เพิ่มบรรทัดนี้
WEND
3 @R17004
ขอบคุณมากครับ เดี๋ยวจะลองทำดูก่อนครับ จากตัวอย่าง
เพิ่งรู้ ว่ามันใส่ เงื่อนไขแบบนี้ได้ ยังงัยเดี๋ยวผมประยุกต์เอาครับ
เพิ่งรู้ ว่ามันใส่ เงื่อนไขแบบนี้ได้ ยังงัยเดี๋ยวผมประยุกต์เอาครับ
Time: 0.3398s
กำหนดให้ rstT1 เป็นข้อมูลจากตาราง Table1 โดยมีเงื่อนไขว่ามีรหัสสินค้าเท่ากับ 002
จะได้ว่า
Dim rstT1 As Recordset
SET rstT1 = CurrentDb.Openrecordset("Select * FROM Table1 WHERE [CodeID] = '002'",dbOpenDynaset)
หากต้องการให้ rstT1 คัดกรองข้อมูลจาก TextBox บนฟอร์มที่เราสร้างขึ้นมา สมมติว่าเป็น TextBox1 จะได้ว่า
Dim rstT1 As Recordset
SET rstT1 = CurrentDB.Openrecordset("Select * From Table1 WHERE [CodeID] = ' & TextBox1 & "'", dbOpenDynaset)
*** โปรดระวังการใช้เครื่องหมาย ' และ "
หากต้องการเพิ่มเรคคอร์ดที่อยู่ใน rstT1 ไปยัง rstT2
จะได้ว่า
rstT1.MoveFirst
WHILE Not rstT1.EOF
WITH rstT2
.AddNew
.Fields("ชื่อฟิลด์") = ค่าที่ต้องการ
.Update
END WITH
WEND
*** หากต้องการแก้ไขข้อมูลเรคคอร์ดปัจจุบันใน rstT2 ให้เปลี่ยนจาก .AddNew เป็น .Edit
ข้อมูลเพิ่มเติม กด 1 เพื่อรอ อ.สันติสุข น๊า.....