การ update ข้อมูล
กระทู้เก่าบอร์ด อ.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 ที่คำนวณจำนวนสินค้าที่กรอกใหม่กับจำนวนเดิมคะ
ถ้าเกิดเขียน โค๊ดผิด ช่วยชี้แนะด้วยนะคะ

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 ชุดเดียวกัน
ไม่ใช่ตัวแปรที่อ้างไว้เมื่อตอนต้น
แต่ผมก็ไม่แม่น เรื่องการเขียน
ขอไม่แนะนำครับ
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
มันเป็นเพราะอะไรหรอคะ ?????????
4 @R03530
ขออนุญาตินะคับ ทำไมไม่เหนมีการประกาศตัวแปรชื่อ SQL ล่ะคับ หรือว่าเผลอลบไปหรือป่าว ถ้าไม่ได้ประกาศตัวแปร มันจะรันได้ไงคับ โปรแกรมมันไม่รู้จักตัวแปรชื่อ SQL ผมคิดว่างั้นนะคับ
5 @R03534
ประกาศแล้วมันก็ error อยู่ดีค่ะ
ขึ้่นว่า Run-time error '3144'
Syntax error in UpDATE statement.
6 @R03535
ไม่แน่ใจว่าลืมใส่เครื่องหมายนี้หรือป่าวคับ

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 อยู่ตรงนั้น ให้คุณลองดู ว่ามันเขียนถูกต้องหรือเปล่า ***** ถ้าดูไม่ออก หรือไม่แน่ใจ ให้ คัดลอกทั้งหมดนั่น มาโพสต์ครับ
-
11 @R03579
พอลองเข้าไปดูที่ฐานข้อมูล ก็เห็นว่าเป็น int(5) พอแก้เป็น int(11) ก็ใช้ได้ทั้งหมดแล้วค่ะ
เลยไม่แน่ใจว่าทำไมบางหน้าถึงอัพเดตได้ แต่บางหน้าใช้งานไม่ได้
แต่มีปัญหาใหม่ค่ะ
คือที่ดิฉันทำเนี่ย เป็นการใช้ datasheet จึงสามารถใส่ได้หลายรายการ แล้วทีนี้พอใส่หลายๆรายการ มันก็อัพเดตให้แค่รายการเดียวค่ะ เลยอยากทราบว่าจะทำอย่างไรให้อัพเดตได้ทุกตัวที่เราใส่ไปคะ
12 @R03582
ทำได้แล้วค่ะ ไม่รบกวนแล้วนะค่ะ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3391s