กระทู้เก่าบอร์ด อ.สุภาพ ไชยา
413 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]);")กรุณาช่วยแนะนำด้วยค่ะ
คำสั่งประมาณนี้ค่ะ
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
ผมคิดว่าคุณพิมพ์อะไรผิดหรือเปล่า? 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
ปล.ทำไมก่อนหน้านี้เข้ากระดานถามตอบไม่ได้ค่ะ ไม่ทราบเป็นเพราะอะไร
Time: 0.1222s