กระทู้เก่าบอร์ด อ.Yeadram
2,983 2
URL.หัวข้อ /
URL
วิธีตัด stock โดยใช้ command ใน access ค่ะ
คือตาราง tblProduct มีฟิลด์จำนวนสินค้าชื่อ ProdQty
แล้วทีนี้หน้า form สั่งซื้อสินค้าชื่อ FrmBill เวลากรอกจำนวนสินค้าไปว่าต้องการจำนวนเท่าไหร่ แล้วพอกดปุ่ม อยากให้มันตัด stock ให้เลยน่ะค่ะ ( text box ของจำนวนที่ต้องการซื้อ ชื่อ txtQty ค่ะ ) ลองใส่แบบนี้ดูแต่มันก็ไม่ได้น่ะค่ะ
Private sub command1_click()
dim sql as string
sql="Update tblProduct set ProdQty = ProdQty - "&me.txtQty&"
where ProdCode='"&me.txtProdCode&"';"
currentproject.connection.execute sql
End sub
มีรูปแบบอื่นอีกมั้ยคะ อันนี้ก็ไปหาจากเว็บอื่นๆแล้วมาลองปรับดูน่ะค่ะ
แล้วทีนี้หน้า form สั่งซื้อสินค้าชื่อ FrmBill เวลากรอกจำนวนสินค้าไปว่าต้องการจำนวนเท่าไหร่ แล้วพอกดปุ่ม อยากให้มันตัด stock ให้เลยน่ะค่ะ ( text box ของจำนวนที่ต้องการซื้อ ชื่อ txtQty ค่ะ ) ลองใส่แบบนี้ดูแต่มันก็ไม่ได้น่ะค่ะ
Private sub command1_click()
dim sql as string
sql="Update tblProduct set ProdQty = ProdQty - "&me.txtQty&"
where ProdCode='"&me.txtProdCode&"';"
currentproject.connection.execute sql
End sub
มีรูปแบบอื่นอีกมั้ยคะ อันนี้ก็ไปหาจากเว็บอื่นๆแล้วมาลองปรับดูน่ะค่ะ
2 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R13809
เอาวิธีแรกนะครับ โค้ดสั้นดี
Private sub command1_click()
dim sql as string
sql="Update tblProduct set ProdQty = (nz(ProdQty,0) - " & nz(me.txtQty,0)
sql = sql & ") where ProdCode Like '" & me.txtProdCode & "';"
Debug.print sql
' currentproject.connection.execute sql
End sub
1 เพิ่มการป้องกัน Error เนื่องจากชนิดข้อมูล , และความมีอยู่ของข้อมูล (not null)
2 เปลี่ยน operator ในส่วนของ Where
3 ให้มีการ Debug เช็คสายอักขระก่อน เพื่อดูว่า ค่าของ ตัวลบ และค่าของ เงื่อนไข ถูกต้องหรือไม่ โดย ได้ทำการ เบรคคำสั่งที่จะรัน sql ไว้ก่อน
4 ให้ทำการตรวจเช็คสายอักขระ ใน SQL ครับ ว่า ถูกต้องทั้งเรื่อง วรรคตอน ค่าข้อมูล และเครื่องหมายทุกอย่าง ถูกต้องครบถ้วนดีหรือไม่ แล้วค่อยสั่งรัน
หากคิดว่าสายอักขระ ถูกต้องแล้ว แต่สงสัยทำไม ไม่ได้ผลดังใจ ให้เปลี่ยน "ตัวกระทำ" เป็น Access แทน ADO ครับ (เพราะผมคิดว่า มันดักเช็ค error ได้ง่ายกว่า)
' Debug.print sql ถ้ามั่นใจว่าสายอักขระถูกแล้ว ก็เลิก debug
on error resume next
docmd.runsql sql
if err<>0 then
debug.print sql & vbcrlf & err.number & vbcrlf & err.description
err.clear
end if
on error goto 0
' Currentproject.connection.execute sql
Private sub command1_click()
dim sql as string
sql="Update tblProduct set ProdQty = (nz(ProdQty,0) - " & nz(me.txtQty,0)
sql = sql & ") where ProdCode Like '" & me.txtProdCode & "';"
Debug.print sql
' currentproject.connection.execute sql
End sub
1 เพิ่มการป้องกัน Error เนื่องจากชนิดข้อมูล , และความมีอยู่ของข้อมูล (not null)
2 เปลี่ยน operator ในส่วนของ Where
3 ให้มีการ Debug เช็คสายอักขระก่อน เพื่อดูว่า ค่าของ ตัวลบ และค่าของ เงื่อนไข ถูกต้องหรือไม่ โดย ได้ทำการ เบรคคำสั่งที่จะรัน sql ไว้ก่อน
4 ให้ทำการตรวจเช็คสายอักขระ ใน SQL ครับ ว่า ถูกต้องทั้งเรื่อง วรรคตอน ค่าข้อมูล และเครื่องหมายทุกอย่าง ถูกต้องครบถ้วนดีหรือไม่ แล้วค่อยสั่งรัน
หากคิดว่าสายอักขระ ถูกต้องแล้ว แต่สงสัยทำไม ไม่ได้ผลดังใจ ให้เปลี่ยน "ตัวกระทำ" เป็น Access แทน ADO ครับ (เพราะผมคิดว่า มันดักเช็ค error ได้ง่ายกว่า)
' Debug.print sql ถ้ามั่นใจว่าสายอักขระถูกแล้ว ก็เลิก debug
on error resume next
docmd.runsql sql
if err<>0 then
debug.print sql & vbcrlf & err.number & vbcrlf & err.description
err.clear
end if
on error goto 0
' Currentproject.connection.execute sql
Time: 0.2770s
Private Sub Command56_Click()
Dim a As Integer
Dim b As Integer
Dim sql As String
Dim c As Integer
Dim d As String
a = [Forms]![FrmBill].[Form]![txtQty]
b = CInt(DLookup("ProdQty", "tblProduct", "Prodcode='" & Me![txtProdCode] & "'"))
sql = "Update tblProduct set ProdQty=" & b - a
CurrentProject.Connection.Execute sql
End Sub
ขอบคุนมากๆนะคะ