เพิ่มข้อมูลลงตาราง ครั้งเดียวหลายเร็คคอร์ดทำยังไงคะ
sql="INSERT INTO AAA(BBB) (CCC);"
Conn.Excute sql
*** หมายเหตุ
AAA คือ ชื่อตารางเป้าหมาย
BBB คือ ถ้าคิดว่าข้อมูลที่หามาได้ มีจำนวนฟิลด์เท่ากับ จำนวนฟิลด์ของตารางเป้าหมาย ก็ไม่ต้องระบุชื่อฟิลด์ ไม่ต้องมีวงเล็บด้วย ถ้าไม่งั้น ก็ต้องระบุชื่อฟิลด์ลงไป โดยต้องมีวงเล็บกำกับ BBB ทั้งหมด เช่น (tbID, tbDate, tbDue) เป็นต้น
CCC คือ กรณีข้อมูลของคุณมาจาก ตาราง หรือคิวรี่ ก็ให้เป็นประโยค SQL ใช้เลือกข้อมูลครับ Select.......From.....[Where.....] [group][order][having] แต่ต้องดูให้ดีเรื่องของจำนวนฟิลด์ ประเภทข้อมูลของแต่ละฟิลด์ ลำดับของฟิลด์ มันต้องให้ตรง ให้เข้ากันได้ กับ BBB หรือเข้ากับได้กับ ตาราง AAA นั่นเอง
sql คือ ตัวแปรข้อความ
Conn คือ ออบเจคคอนเนคชั่นครับ
ทั้งหมดนี้ อยู่บนข้อสมมติฐานว่า "ข้อมูล" ที่คุณอมพะนำไม่ยอมขยายความนั่นแหละ มันอยู่ในตาราง หรือในคิวรี่นะ ถ้ามันอยู่ในรูปอย่างอื่นก็ใช้วิธีนี้ไม่ได้!
Date :
13 พ.ย. 2550 09:20:46
By :
GTM
ถามใหม่นะครับ เช่น เรียกชื่อรายบุคคลขึ้นมาแสดง 1 คน แล้วแสดงข้อมูลหลักสูตรทั้งหมดของบุคคลนี้ จากนั้นต้องการใส่เกรด ให้แต่ละรายวิชา เช่นมี 5 วิชา ก็ให้บันทึกลงไปทีเดียว 5 วิชา 5 เร็คคอร์ด ในตารางที่เก็บนี้ จะมีฟิลด์ รหัสนศ. รหัสวิชา , วัน,เวลา,ปี , เกรด ต้องทำอย่างไร
Date :
13 พ.ย. 2550 11:32:24
By :
t
ถ้าทุกวิชาได้เกรดเดียวกัน
sql="UPDATE ตาราง SET (เกรด = " & ตัวแปรเกรด & ") WHERE รหัสนศ. Like '" & ตัวแปรรหัสนศ. ที่ต้องการ & "'"
conn.excute sql
จบเลยทีเดียว...
ถ้าแต่ละวิชาได้คนละเกรดแตกต่างกันไป คุณต้องเก็บข้อมูลไว้เป็นคู่ก่อนแล้วค่อยวนลูปบันทึกข้อมูลเข้าตาราง คำว่าคู่ในที่นี้หมายถึง วิชานี้จะต้องคู่กับเกรดนี้ วิชาต่อไปคู่กับเกรดอีกอัน ซึ่งมันก็จะเป็นอาเรย์
Dim ts(4) ' อาเรย์เก็บชื่อวิชาทั้ง 5
Dim tg(4) ' อาเรย์เก็บเกรดของวิชาทั้ง 5
คุณไปหาวิธีเอาข้อมูล เข้า อาเรย์เอาเองละกัน
พอได้ข้อมูลเข้าอาเรย์แล้วคุณค่อย เอาอาเรย์ทั้งสองมา วนลูปบันทึกเข้าตาราง
Dim i
for i = 0 to Ubound(ts)
conn.excute ="UPDATE ตาราง SET (เกรด = " & tg(i) & ") WHERE ((รหัสนศ. Like '" & ตัวแปรรหัสนศ. ที่ต้องการ & "') AND (รหัสวิชา Like '" & ts(i) & "'));"
next
Date :
13 พ.ย. 2550 19:34:37
By :
GTM
อ้อ ลืมติงไปนิดนึง สังเกตมั้ยว่า ความเห็นที่ 1 ผมตอบโดยใช้ INSERT
แต่ความเห็นที่ 3 ผมตอบโดยใช้ UPDATE
เพราะคำถามไงล่ะ คำถามที่หัวกระทู้น่ะ ทำให้ต้องตอบอย่างนั้น แต่ความต้องการ และสิ่งที่คุณมีหลังจากคุณขยายความมาบ้างแล้ว คุณจึงได้ UPDATE ไป เพราะฉะนั้นจึงสรุปได้ว่า การตั้งคำถามที่ไม่ละเอียดพอ คุณอาจได้คำตอบคนละเรื่องกันเลยนะครับ
INSERT กับ UPDATE คนละเรื่องเลยนะครับ
Date :
13 พ.ย. 2550 19:39:25
By :
GTM
Load balance : Server 01