update ค่า
กระทู้เก่าบอร์ด อ.Yeadram

 2,797   11
URL.หัวข้อ / URL
update ค่า


โดยมี File
               1.DISCOUNT_AMT = Currency
               2.DISCOUNT_RATE = Text
               3.Text23
               4.Text25
คือผมต้องการ
               1.Copy ข้อมูลของ Text23 มาไว้ DISCOUNT_AMT
               2.Copy ข้อมูลของ Text25 มาไว้ DISCOUNT_RATE

เมื่ออยู่ใน form จะเขียนยังไง ครับ

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

1 @R09092
ไม่ค่อยแน่ใจในคำถาม ถ้าก๊อปปี้จาก textbox Text23 มาไว้ที่ textbox DISCOUNT_AMT บนฟอร์ม ก็แค่สั่ง Me.DISCOUNT_AMT = Me.Text23 เท่านั้นครับ
2 @R09093
สมมติ ชื่อ Table_01 (คุณอาจจะต้องเปลี่ยนชื่อตาม Table ของคุณ)

Public Sub UpdateData()
Dim Db As DAO.Database
Dim rs As DAO.Recordset
Set Db = CurrentDb()
Set rs = Db.OpenRecordset("Table_01") 'ให้ใส่ชื่อ Table หรือ คิวรี่ของคุณ
If rs.RecordCount > 0 Then
    rs.MoveFirst
    Do While Not rs.EOF
        rs.Edit
        rs!Text23 = rs!DISCOUNT_AMT
        rs!Text25 = rs!DISCOUNT_RATE
        rs.Update
        Debug.Print rs("DISCOUNT_AMT") & " " & rs("DISCOUNT_RATE") & " " & rs("Text23") & " " & rs("Text25")
    rs.MoveNext
    Loop
Else
    MsgBox "ไม่มีข้อมูลครับ !!    ", vbInformation, "แจ้งให้ทราบ"
End If
rs.Close
Set rs = Nothing
End Sub

จากนั้นสร้างปุ่ม Update ขึ้นมา สมมติ ชื่อ CmdUpdate จากนั้นที่ Event on click ให้ใส่ คำสั่ง

Private Sub CmdUpdate_Click()
    Call UpdateData
End Sub


3 @R09094
ผมทำตามคุณสันติสุขได้แล้วครับ

Me.DISCOUNT_AMT = Me.Text23

แต่มันติดตรง Copy ข้อมูลของ Text25 มาไว้ DISCOUNT_RATE ไม่ได้ครับ

เพราะ Text25 มันเป็นค่า % ที่ผมเอาตัวเลขมาหารกัน จะได้ ค่าแบบนี้ครับ 29.71%(.297064624570486) แต่ค่าที่ผมต้องการนำไปใส่ใน DISCOUNT_RATE คือ 29.71    แต่เวลาผมใช้ Me.มัน run error ครับ


ไม่รู้เข้าใจหรือป่าวหนอ
4 @R09096
Error ว่าอะไร ขอข้อความเต็มๆ เพราะไม่ว่า Text25 จะเป็นสูตรหรือค่าคงที่ มันก็ควรเอาค่ามาได้ครับ
5 @R09097
อ้้อเข้าใจแล้วครับ พอดีไปจัดรูปแบบไว้ แค่ 00.00 4 ตัว มันเลยวางไม่้ได้
แต่มีอีกปัญหา 1 คือ
เวลา Copy ข้อมูลของ Text25 มาไว้ DISCOUNT_RATE มันจะมาเป็น .297064624570486
ผมต้องการ แค่ 29.71 ได้ป่าวครับ คิดเป็น % ปัดขึ้นอะครับ
6 @R09098
int(cdec(DISCOUNT_RATE) * 10000) /100
7 @R09099
วิธีของคุณ Sak ก็ใช้ได้ดีนะครับ สำหรับข้อมูลจำนวนมากๆ
ขอบคุณครับ
8 @R09103
รู้สึกว่าผมจะรีบไปหน่อยเลยอ่านโจทย์ผิด จริงๆ ต้องแก้ชุด Record set เป็น

Public Sub UpdateData()
Dim Db As DAO.Database
Dim rs As DAO.Recordset
Set Db = CurrentDb()
Set rs = Db.OpenRecordset("Table_01") 'ให้ใส่ชื่อ Table หรือ คิวรี่ของคุณ
If rs.RecordCount > 0 Then
    rs.MoveFirst
    Do While Not rs.EOF
        rs.Edit
        rs!DISCOUNT_AMT = rs!Text23
        rs!DISCOUNT_RATE = rs!Text25
        rs.Update
        Debug.Print rs("DISCOUNT_AMT") & " " & rs("DISCOUNT_RATE") & " " & rs("Text23") & " " & rs("Text25")
    rs.MoveNext
    Loop
Else
    MsgBox "ไม่มีข้อมูลครับ !!    ", vbInformation, "แจ้งให้ทราบ"
End If
rs.Close
Set rs = Nothing
End Sub

ตรงปุ่ม Update ให้เพิ่มเป็น
Private Sub CmdUpdate_Click()
    Call UpdateData
    Me.Refresh
End Sub

9 @R09104
ขอบคุณทุกคนมากครับ
10 @R09105
int(cdec(DISCOUNT_RATE) * 10000) /100 มันเอาไปใส่ตรงไหนอะครับ
11 @R09110
เขียนผิดไปหน่อย ที่ถูกต้องเป็น
Me.DISCOUNT_RATE = int(cdec(Me.Text25) * 10000) /100
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2539s