จะให้ UPDATE ข้อมูลโดยเลือกค่าจากอีกตารางไม่ทราบทำอย่างไรค่ะ
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 344   6
URL.หัวข้อ / URL
จะให้ UPDATE ข้อมูลโดยเลือกค่าจากอีกตารางไม่ทราบทำอย่างไรค่ะ

จะให้ UPDATE ข้อมูลโดยเลือกค่าจากอีกตารางไม่ทราบทำอย่างไรคค่ะ
คำสั่งประมาณนี้ค่ะ

DoCmd.RunSQL ("UPDATE pro SET pro.p_addr = [Forms]![move]![a1] " & _
"WHERE (((pro.id)=(select move.id form move where move.a_doc = [Forms]![move]![a_doc]);")กรุณาช่วยแนะนำด้วยค่ะ

6 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R00025
น่าจะเป็นแบบนี้ Private Sub cmdRunSQL_Click() DoCmd.RunSQL ("UPDATE pro SET pro.p_addr = [forms]![move]![a1] " & _ "WHERE (((pro.p_id)=(SELECT move.m_id " & _ "FROM Move " & _ "WHERE (((move.a_doc)=[Forms]![move]![a_doc]));)));") Me.pro.Requery End Sub ดูตัวอย่าง Access รายการที่ 6 ที่ http://members.mweb.co.th/basiceng/Download.htm จะมีตัวอย่างประกอบด้วย โดยผมได้เพิ่ม Sub Form ชื่อ Pro เข้าไปใน Form ชื่อ Move ด้วย จะได้เห็นว่ามีการ Update อย่างไร หลักการทำก็คือ ให้สร้าง qryMove แล้ว Copy SQL ไปใส่ใน qryPro แล้วจึงนำมา Paste ลงในปุ่ม cmdRunQuery ลองศึกษาดูนะครับ
2 @R00026
หรือจะใช้ Private Sub cmdExecute_Click() Dim dbs As Database Set dbs = CurrentDb dbs.Execute "UPDATE pro SET pro.p_addr ='" & Me.a1 & "' " & _ "WHERE (((pro.p_id)=(SELECT move.m_id " & _ "FROM Move " & _ "WHERE (((move.a_doc)='" & Me.a_doc & "'));)));" Me.pro.Requery End Sub ของปุ่มที่ 2 ซึ่งจะไวกว่า และจะไม่ถามเราก่อน
3 @R00027
ผมสร้าง Report ใน Access ต้องการพิมพ์ออกกระดาษต่อเนื่องขนาด 15*23 ซม. เราสามารถกำหนดขนาดกระดาษเองได้หรือเปล่าครับ ดูที่ Page Setup มีแต่ขนาดมาตราฐานครับ ขอบคุณครับ
4 @R00028
ขอบคุณค่ะ คุณ สุภาพ ทำได้แล้วค่ะ แต่ทำไมให้ข้อมูล runในครั้งเดียวไม่ได้ค่ะ Private Sub.... . . DoCmd.RunSQL ("INSERT ..... DoCmd.RunSQL ("UPDATE....มีselectย่อย DoCmd.RunSQL ("DELECT .... . . Exit Sub เครื่องจะเตือนว่า ประโยคคำสั่งSQLไม่ถูกต้อง ต้องการ DELECT ,INSERT ,PROCEDURE ,SELCT หรือ UPDATE แต่ ถ้าใช้แค่ DoCmd.RunSQL ("INSERT ..... DoCmd.RunSQL ("UPDATE.... จะทำได้ และลองตามวิธีที่2จะไปหยุดที่ Private Sub cmdExecute_Click() ไม่ทราบจะให้รันได้อย่างไรค่ะลองหลายรอบแล้วค่ะ
5 @R00030
สำหรับคุณ 88
ผมคิดว่าคุณพิมพ์อะไรผิดหรือเปล่า? Delete หรือ Select ไม่น่าใช่ Delect?
ลองดูตัวอย่างที่ Download ในส่วนของ Transanction.zip
ผมได้ตัดตัวอย่างโค้ดมาให้ดูด้วย
Private Sub cmdSave_Click()

Dim dbs As Database
Set dbs = CurrentDb
'นำข้อมูลไปเก็บไว้ที่ตาราง tblHistory
dbs.Execute "INSERT INTO tblHistory ( AutoID, fDate, nNumber, tTransaction, " _
& "Amount, Remark ) SELECT tblTest.AutoID, tblTest.fDate, tblTest.nNumber, " _
& "tblTest.tTransaction, tblTest.Amount, tblTest.Remark FROM tblTest;"
'ลบข้อมูลในตาราง tblTest
dbs.Execute "DELETE * FROM tblTest;"
'Refresh Form
Me.Requery

End Sub

ลองดูนะครับ *** Edited by Supap Chaiya *** 24/3/2546 11:20:48
6 @R00033
ได้แล้วค่ะ โดยไปเลือกที่ References ในเมนู Tools แล้วเลือกกาเครื่องหมายถูกในรายการ Microsoft DAO 3.6 Object Library ในช่อง Available References ปล.ทำไมก่อนหน้านี้เข้ากระดานถามตอบไม่ได้ค่ะ ไม่ทราบเป็นเพราะอะไร
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0569s