กระทู้เก่าบอร์ด อ.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
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 ครับ
ไม่รู้เข้าใจหรือป่าวหนอ
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 ได้ป่าวครับ คิดเป็น % ปัดขึ้นอะครับ
แต่มีอีกปัญหา 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
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
Me.DISCOUNT_RATE = int(cdec(Me.Text25) * 10000) /100
Time: 0.2539s