กระทู้เก่าบอร์ด อ.Yeadram
2,887 12
URL.หัวข้อ /
URL
การ update ข้อมูล
Dim sContractNo
Dim sID As Integer
sID = Me.qtytotal
sContractNo = Me.product_id
DoCmd.SetWarnings False
SQL = "update inv_products set qty = sID where (inv_products.name='" & sContractNo & "')"
DoCmd.RunSQL SQL
คือว่ามันให้ ใส่ sID อะคะ ไม่รู้ว่าเพราะอะไร ?
qtytotal คือ textbox ที่คำนวณจำนวนสินค้าที่กรอกใหม่กับจำนวนเดิมคะ
ถ้าเกิดเขียน โค๊ดผิด ช่วยชี้แนะด้วยนะคะ
Dim sID As Integer
sID = Me.qtytotal
sContractNo = Me.product_id
DoCmd.SetWarnings False
SQL = "update inv_products set qty = sID where (inv_products.name='" & sContractNo & "')"
DoCmd.RunSQL SQL
คือว่ามันให้ ใส่ sID อะคะ ไม่รู้ว่าเพราะอะไร ?
qtytotal คือ textbox ที่คำนวณจำนวนสินค้าที่กรอกใหม่กับจำนวนเดิมคะ
ถ้าเกิดเขียน โค๊ดผิด ช่วยชี้แนะด้วยนะคะ
12 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R02858
SQL = "update inv_products set qty = " & sID & " where (inv_products.name='" & sContractNo & "')"
2 @R02908
น่าจะเขียน SQL ผิด ตรง update inv_products set qty = sID
เพราะถ้าอ้างว่า = ตัวแปร sID
แต่เขียน ในเครื่องหมาย " "
มันก็ตีความว่า เป็น Sting ชุดเดียวกัน
ไม่ใช่ตัวแปรที่อ้างไว้เมื่อตอนต้น
แต่ผมก็ไม่แม่น เรื่องการเขียน
ขอไม่แนะนำครับ
เพราะถ้าอ้างว่า = ตัวแปร sID
แต่เขียน ในเครื่องหมาย " "
มันก็ตีความว่า เป็น Sting ชุดเดียวกัน
ไม่ใช่ตัวแปรที่อ้างไว้เมื่อตอนต้น
แต่ผมก็ไม่แม่น เรื่องการเขียน
ขอไม่แนะนำครับ
3 @R03529
กลับมาอีกแล้วค่ะ คือว่ามันเกิดปัญหาตรงที่
ตอนแรกก็อัพเดตได้ปกติ แต่อยู่มาวันนึงกลับ error ไม่แน่ใจว่าเพราะอะไร
Private Sub cmdpost_Click()
DoCmd.Save
Dim sContractNo
Dim sID
sID = Forms![CC-BuyProduct]![CC-Orderdetail].Form![txtproamount]
sContractNo = Forms![CC-BuyProduct]![CC-Orderdetail].Form![proid]
DoCmd.SetWarnings False
SQL = "update inv_products set qty = & sID & where (inv_products.name='" & sContractNo & "')"
DoCmd.RunSQL SQL
End Sub
มันจะฟ้อง ตรง DoCmd.RunSQL SQL
มันเป็นเพราะอะไรหรอคะ ?????????
ตอนแรกก็อัพเดตได้ปกติ แต่อยู่มาวันนึงกลับ error ไม่แน่ใจว่าเพราะอะไร
Private Sub cmdpost_Click()
DoCmd.Save
Dim sContractNo
Dim sID
sID = Forms![CC-BuyProduct]![CC-Orderdetail].Form![txtproamount]
sContractNo = Forms![CC-BuyProduct]![CC-Orderdetail].Form![proid]
DoCmd.SetWarnings False
SQL = "update inv_products set qty = & sID & where (inv_products.name='" & sContractNo & "')"
DoCmd.RunSQL SQL
End Sub
มันจะฟ้อง ตรง DoCmd.RunSQL SQL
มันเป็นเพราะอะไรหรอคะ ?????????
4 @R03530
ขออนุญาตินะคับ ทำไมไม่เหนมีการประกาศตัวแปรชื่อ SQL ล่ะคับ หรือว่าเผลอลบไปหรือป่าว ถ้าไม่ได้ประกาศตัวแปร มันจะรันได้ไงคับ โปรแกรมมันไม่รู้จักตัวแปรชื่อ SQL ผมคิดว่างั้นนะคับ
5 @R03534
ประกาศแล้วมันก็ error อยู่ดีค่ะ
ขึ้่นว่า Run-time error '3144'
Syntax error in UpDATE statement.
ขึ้่นว่า Run-time error '3144'
Syntax error in UpDATE statement.
6 @R03535
ไม่แน่ใจว่าลืมใส่เครื่องหมายนี้หรือป่าวคับ
SQL = "update inv_products set qty = '" & sID & "' where (inv_products.name='" & sContractNo & "')"
ลองดูนะคับ
SQL = "update inv_products set qty = '" & sID & "' where (inv_products.name='" & sContractNo & "')"
ลองดูนะคับ
7 @R03543
อ. yeadram แนะนำได้ถูกต้องแล้วนะครับ แต่คุณเขียนตรงที่ อ.เขาเน้นสีแดงด้วยซ้ำ ต่างออกไป
8 @R03554
พอใส่ " & sID & " โปรแกรมมันก็ฟ้องที่ DoCmd.RunSQL SQL ค่ะ
9 @R03555
ดูดีๆสิคับ '" & sID & "' ใส่ถูกหรือป่าว
10 @R03560
' DoCmd.SetWarnings False
SQL = "update inv_products set qty = " & sID & " where (inv_products.name='" & sContractNo & "')"
debug.print sql
DoCmd.RunSQL SQL
ตามที่แจ้งมา qty เป็น number ไม่ต้องคร่อมด้วย single quote ครับ
ใช้แค่นั้นแหละ
- ลองเบรคคำสั่ง setwarnings
- เพิ่มคำสั่ง debug
- สั่งให้มันทำงานอีกครับ
- **** ถ้า มันเกิด error warnings อะไรก็ตาม จับภาพหน้าจอ มาโพสต์ครับ
- เมื่อเคลียร์ error ออกไปแล้วให้หยุดทำงาน แล้วกด ctl+G เพื่อเปิดหน้าต่าง debug ขึ้นมา จะเห็นมี statement อยู่ตรงนั้น ให้คุณลองดู ว่ามันเขียนถูกต้องหรือเปล่า ***** ถ้าดูไม่ออก หรือไม่แน่ใจ ให้ คัดลอกทั้งหมดนั่น มาโพสต์ครับ
-
SQL = "update inv_products set qty = " & sID & " where (inv_products.name='" & sContractNo & "')"
debug.print sql
DoCmd.RunSQL SQL
ตามที่แจ้งมา qty เป็น number ไม่ต้องคร่อมด้วย single quote ครับ
ใช้แค่นั้นแหละ
- ลองเบรคคำสั่ง setwarnings
- เพิ่มคำสั่ง debug
- สั่งให้มันทำงานอีกครับ
- **** ถ้า มันเกิด error warnings อะไรก็ตาม จับภาพหน้าจอ มาโพสต์ครับ
- เมื่อเคลียร์ error ออกไปแล้วให้หยุดทำงาน แล้วกด ctl+G เพื่อเปิดหน้าต่าง debug ขึ้นมา จะเห็นมี statement อยู่ตรงนั้น ให้คุณลองดู ว่ามันเขียนถูกต้องหรือเปล่า ***** ถ้าดูไม่ออก หรือไม่แน่ใจ ให้ คัดลอกทั้งหมดนั่น มาโพสต์ครับ
-
11 @R03579
พอลองเข้าไปดูที่ฐานข้อมูล ก็เห็นว่าเป็น int(5) พอแก้เป็น int(11) ก็ใช้ได้ทั้งหมดแล้วค่ะ
เลยไม่แน่ใจว่าทำไมบางหน้าถึงอัพเดตได้ แต่บางหน้าใช้งานไม่ได้
แต่มีปัญหาใหม่ค่ะ
คือที่ดิฉันทำเนี่ย เป็นการใช้ datasheet จึงสามารถใส่ได้หลายรายการ แล้วทีนี้พอใส่หลายๆรายการ มันก็อัพเดตให้แค่รายการเดียวค่ะ เลยอยากทราบว่าจะทำอย่างไรให้อัพเดตได้ทุกตัวที่เราใส่ไปคะ
เลยไม่แน่ใจว่าทำไมบางหน้าถึงอัพเดตได้ แต่บางหน้าใช้งานไม่ได้
แต่มีปัญหาใหม่ค่ะ
คือที่ดิฉันทำเนี่ย เป็นการใช้ datasheet จึงสามารถใส่ได้หลายรายการ แล้วทีนี้พอใส่หลายๆรายการ มันก็อัพเดตให้แค่รายการเดียวค่ะ เลยอยากทราบว่าจะทำอย่างไรให้อัพเดตได้ทุกตัวที่เราใส่ไปคะ
12 @R03582
ทำได้แล้วค่ะ ไม่รบกวนแล้วนะค่ะ
Time: 0.3391s