รบกวนดูคำสั่ง ให้หน่อยครับ
กระทู้เก่าบอร์ด อ.Yeadram

 755   5
URL.หัวข้อ / URL
รบกวนดูคำสั่ง ให้หน่อยครับ

มัน run ได้ ไม่ error แต่ไม่ update ข้อมูลให้ ไม่รู้ผิดพลาดตรงไหน

Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim strSQL1, strSQL2, strSQL3, strSQL4, strSQL5, strSQL6, strSQL7, strSQL8 As String
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("select * from TableInterventionTemp")

DoCmd.SetWarnings False
If Not rst.EOF Then
rst.MoveFirst
   Do While Not rst.EOF
              strSQL1 = "UPDATE "
              strSQL2 = rst!tblName
              strSQL3 = strSQL1 + strSQL2
              strSQL4 = "set pt1= ' " & rst!pt1 & " ',pt2=' " & rst!pt2 & " ',pt3= ' " & rst!pt3 & " ',pt4=' " & rst!pt4 & " ',pt5= ' " & rst!pt5 & " ',pt6=' " & rst!pt6 & " ',pt7=' " & rst!pt7 & " '," _
               & "dc1=' " & rst!dc1 & " ',dc2=' " & rst!dc2 & " ',dc3=' " & rst!dc3 & " ',dc4=' " & rst!dc4 & " ',dc5=' " & rst!dc5 & " ',dc6=' " & rst!dc6 & " ',dc7=' " & rst!dc7 & " ' "
               strSQL5 = strSQL3 + strSQL4
               strSQL6 = "where vn=' " & rst!vn & " ';"
               strSQL7 = strSQL5 + strSQL6
               DoCmd.RunSQL (strSQL7)
               MsgBox (strSQL7)
              
    rst.MoveNext
   Loop
End If
rst.Close
Set rst = Nothing
Set dbs = Nothing

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

1 @R22139
2 @R22145
ภาพไม่เห็นนะครับ ลองอย่างนี้แล้วกัน ใต้บรรทัด MsgBox (strSQL7) ให้เพิ่มคำสั่ง

debug.print strSQL7

พอโปรแกรมทำงานแล้ว แต่ละคำสั่งของ SQL Update จะถูกพิมพ์ออกมาที่ Immediate Window (กด Ctrl-G เพื่อแสดง) คุณก๊อปปี้ SQL อันไหนที่คิดว่ามันไม่ทำงาน แล้วสร้าง Query object เปล่าๆขึ้นมาตัวนึง เปลี่ยนมุมมองเป็น SQL View แล้วแปะ SQL ที่ก๊อปปี้ลงมาไว้ใน View นี้ แล้วก็สั่งให้ทำงาน ถ้ามีข้อผิดพลาดอะไรก็น่าจะเห็นที่ตรงนี้ครับ
3 @R22146
ลอง check แล้วครับ มันไม่ทำงานตรง "where vn=' " & rst!vn & " ';"
ตอนนี้ผมแก้ปัญหาโดยการอ้างค่าจาก Textbox ของฟอร์มแทน "where vn=Forms!FormA!txtVn" ได้แล้วครับ แต่ก็ยังอดสงสัยไม่ได้ว่าทำไม ใช้ rst!vn แล้วถึงไม่ได้ ผมตรวจจาก msgBox(strSQL7) ฟอร์แมตก็คิดว่าถูกต้อง
update table set xx='yyy' where vn='zzz' เดี๋ยวลองทำตามคำแนะนำดูนะครับ ขอบคุณครับ
4 @R22147
เพื่อให้เห็นง่าย ให้ @ คือช่องว่างในข้อความเดิมนะครับ

ใน "where vn='@" & rst!vn & "@';"   ตรง @ (ช่องว่าง) นี่แหล่ะครับที่ผมว่ามันเกินมา
5 @R22148
เป็นอย่างที่แนะนำจริงๆด้วย ขอบคุณมากๆครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3288s