Page 1 of 1

การ Refresh UserForm และการคีย์วันที่ลง TextBox

Posted: Tue Jul 24, 2012 1:12 am
by bank9597
:D รบกวนอาจารย์และเพื่อนหน่อยครับ

พอดีว่าผมมีฟอร์มไว้บันทึกข้อมูลลงเวิร์คชีท โดยในฟอร์มจะมี TextBox1 และ TextBox2 ทั้ง 2 ออพเจ็คนี้ จะทำงานอัตโนมัติเวลาเปิดฟอร์มขึ้นมา

ปัญหาคือ ผมไม่สามารถบันทึกข้อมูลติดต่อกันได้ ต้องบันทึกทีล่ะ 1 ชุดข้อมูลเท่านั้นแล้วปิดฟอร์ม แล้วเปิดใหม่ หากบันทึกแบบต่อเนื่องเป็นครั้งที่ 2 ข้อมูลใน TextBox1 และ TextBox2 จะไม่แสดงครับ

ทั้งนี้จึงได้ทราบวิธีกา Refresh Form หลังการบันทึกข้อมูลเสร็จครับ ว่ามีวิธีการใดทำได้บ้าง

ถามแค่ข้อเดียวก่อนครับ

โค๊ดอยู่ใน UserForm ชื่อ Add ครับ

Re: การ Refresh UserForm และการคีย์วันที่ลง TextBox

Posted: Tue Jul 24, 2012 2:09 am
by niwat2811
ลองเพิ่ม Call UserForm_Initialize ครับ ไม่ทราบว่าตรงกับที่ต้องการหรือเปล่า
Private Sub CommandButton1_Click()
Dim irow As Long
Dim ws As Worksheet
Set ws = Worksheets("Data")
'find first empty row in database
irow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
'Check for Id
If Trim(Me.TextBox1.Value) = "" Then
Me.TextBox1.SetFocus
MsgBox "¤Ø³äÁèä´éÃкØÇѹ·Õè"
Exit Sub
End If
'copy the data to the database

ws.Cells(irow, 1).Value = Me.TextBox1.Value
ws.Cells(irow, 2).Value = Me.TextBox2.Value
ws.Cells(irow, 3).Value = Me.TextBox3.Value

'Clear the data
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Call UserForm_Initialize
End Sub

Re: การ Refresh UserForm และการคีย์วันที่ลง TextBox

Posted: Tue Jul 24, 2012 9:09 am
by bank9597
niwat2811 wrote:ลองเพิ่ม Call UserForm_Initialize ครับ ไม่ทราบว่าตรงกับที่ต้องการหรือเปล่า
Private Sub CommandButton1_Click()
Dim irow As Long
Dim ws As Worksheet
Set ws = Worksheets("Data")
'find first empty row in database
irow = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0).Row
'Check for Id
If Trim(Me.TextBox1.Value) = "" Then
Me.TextBox1.SetFocus
MsgBox "¤Ø³äÁèä´éÃкØÇѹ·Õè"
Exit Sub
End If
'copy the data to the database

ws.Cells(irow, 1).Value = Me.TextBox1.Value
ws.Cells(irow, 2).Value = Me.TextBox2.Value
ws.Cells(irow, 3).Value = Me.TextBox3.Value

'Clear the data
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Call UserForm_Initialize
End Sub
:lol: ขอบคุณมากครับ ตอนผมเองรันไม่ผ่านเลย เพราะผมใช้ Call Add_Initialize :mrgreen:

ขอบคุณอีกครั้งครับ

Re: การ Refresh UserForm และการคีย์วันที่ลง TextBox

Posted: Tue Jul 24, 2012 9:15 am
by bank9597
:D ผมขอถามขอ 2 ต่อน่ะครับ

พอดีว่าใน TextBox1 เป็นช่องไว้ใส่วันที่ ผมบังคับให้มัน Run วันที่มาเอง เพราะหากคีย์ด้วยมือ ข้อมูลที่ส่งไปบันทึกมันจะไม่ได้ฟอร์แมตของวันที่ครับ

ต้องคีย์เป็น mm/dd/yyyy ครับ แต่หากคีย์ dd/mm/yyyy ก็จะได้เป็นฟอร์แมต General

ทั้งนี้ผมเลยให้ TextBox มันรันข้อมูลเองอัตโนมัติ แล้วให้แก้วันที่เอาเอง พอสั่งบันทึกไปมันจะได้บ้างและไม่ได้บ้าง

รบกวนแนะนำหน่อยครับ

Re: การ Refresh UserForm และการคีย์วันที่ลง TextBox

Posted: Tue Jul 24, 2012 5:44 pm
by snasui
:D ผมทดสอบแล้วสามารถบันทึกได้ครับ