กระทู้เก่าบอร์ด อ.Yeadram
        
           2,979   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.2155s
    
      
		