กระทู้เก่าบอร์ด อ.Yeadram
1,305 3
URL.หัวข้อ /
URL
การย้ายข้อมูลให้อยู่บรรทัดเดียวกัน
ข้อมูลเริ่มแรก
Field1 Field2 Field3
0001
0009
block BB
0003
0002
0005
block AA
0002
block CC
ข้อมูลที่ต้องการย้าย
Field1 Field2 Field3 Field4
0001 BB
0009 BB
block BB
0003 AA
0002 AA
0005 AA
block AA
0002 CC
block CC
ไม่ทราบว่า access สามารถทำได้หรือไม่ครับ หากทำได้รบกวนอธิบายวิธีโดยละเอียดด้วยครับ
Field1 Field2 Field3
0001
0009
block BB
0003
0002
0005
block AA
0002
block CC
ข้อมูลที่ต้องการย้าย
Field1 Field2 Field3 Field4
0001 BB
0009 BB
block BB
0003 AA
0002 AA
0005 AA
block AA
0002 CC
block CC
ไม่ทราบว่า access สามารถทำได้หรือไม่ครับ หากทำได้รบกวนอธิบายวิธีโดยละเอียดด้วยครับ
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R08803
พอดีคำถามคล้ายๆกับเคสเก่าที่ผมเคยตอบไป ขออนุญาติก๊อปโค๊ตเก่ามาปรับตอบให้นะครับ...
Run Code ตามด้านล่างได้เลยครับ แต่ใน Table ต้องมี Field 4 อยู่แล้วนะครับ
Function RevFullFill()
Dim Rs As Recordset
Dim Mem As String
Set Rs = CurrentDb.OpenRecordset("Table1")
Rs.MoveLast
Do Until Rs.BOF
If Rs![Field3] = "" Or IsNull(Rs![Field3]) Then
Rs.Edit
Rs![Field4] = Mem
Rs.Update
Else
Mem = Rs![Field3]
End If
Rs.MovePrevious
Loop
Rs.Close
End Function
Run Code ตามด้านล่างได้เลยครับ แต่ใน Table ต้องมี Field 4 อยู่แล้วนะครับ
Function RevFullFill()
Dim Rs As Recordset
Dim Mem As String
Set Rs = CurrentDb.OpenRecordset("Table1")
Rs.MoveLast
Do Until Rs.BOF
If Rs![Field3] = "" Or IsNull(Rs![Field3]) Then
Rs.Edit
Rs![Field4] = Mem
Rs.Update
Else
Mem = Rs![Field3]
End If
Rs.MovePrevious
Loop
Rs.Close
End Function
3 @R08809
คุณแดน code ดังกล่าวต้องนำไปว่างที่ไหนครับ และต้องทำอย่างไรบ้างให้มัน auto run ครับ
Time: 0.3978s
อาจจะด้วยการเขียนโค้ด เพราะสะดวกที่สุด
แต่ให้นั่นอธิบาย มันต้องพิมพ์ยาวมากครับ
เอาแค่แนวคิดไปก่อนก็แล้วกัน
- คุณต้องเพิ่มฟิลด์ลำดับให้มัน เพื่อเป็นดัชนี เช่น id (autonumber)
- สร้างฟิลด์ที่4 เอาไว้รอ
- เขียนโค้ด เปิดเรคคอร์ดเซ็ต วนลูปในทุกๆ เรคคอร์ด
ถ้าเจอเรคคอร์ดที่ ฟิลด์2 ไม่เป็นค่าว่าง
1) เก็บค่าฟิลด์ 3 เข้าตัวแปร f3
2) เก็บค่า id เข้าตัวแปร idx
3) เขียน statement สั่งอัพเดตตารางว่า
ให้อัพเดตข้อมูล ฟิลด์4 ของทุกๆ เรคคอร์ด เป็นค่า f3 โดยที่เรคคอร์ดเหล่านั้นจะต้องมีค่า id น้อยกว่าค่า idx และฟิลด์4 ของเรคคอร์ดเหล่านั้น ต้องเป็นค่าว่าง
- จบการวนลูป
- เขียน statement อีกชุดเพื่ออัพเดตตารางอีกครับว่า
ให้อัพเดตฟิลด์4 ของทุกๆ เรคคอร์ด เป็นค่าว่าง โดยเลือกกระทำกับเรคคอร์ด ที่มีข้อมูลในฟิลด์ 3 เท่านั้น