Page 1 of 1

User form จะให้รับข้อมูลเข้าเลยโดยไม่ต้องกดปุ่ม Add Data

Posted: Sun Jan 27, 2019 11:30 am
by ch.jew10
ผมศึกษาและหา code สร้าง user form เพื่อให้กรอกข้อมูล ช่อง AWB No.และ Job No. เป็นการ scan Barcode
ตอนนี้หากกรอกข้อมูลครบทุกช่องแล้ว ต้องกดปุ่ม Add data ข้อมูลจึงจะถูกนำไปบันทึก ผมต้องการนำปุ่ม Add data ออก
โดยหากกรอกข้อมูลแล้ว เมื่อ scan AWB. no. และ job no. และจะให้ข้อมูลไปบันทึกเลย จึงขอคำแนะนำว่าต้องปรับแต่ง code
อย่างไรบ้างครับ ส่วนปุ่ม close ยังให้คงอยู่เพื่อเวลาต้องการปิด user form ครับ ขอบคุณมากครับ

Re: User form จะให้รับข้อมูลเข้าเลยโดยไม่ต้องกดปุ่ม Add Data

Posted: Sun Jan 27, 2019 12:39 pm
by puriwutpokin
ch.jew10 wrote: Sun Jan 27, 2019 11:30 am ผมศึกษาและหา code สร้าง user form เพื่อให้กรอกข้อมูล ช่อง AWB No.และ Job No. เป็นการ scan Barcode
ตอนนี้หากกรอกข้อมูลครบทุกช่องแล้ว ต้องกดปุ่ม Add data ข้อมูลจึงจะถูกนำไปบันทึก ผมต้องการนำปุ่ม Add data ออก
โดยหากกรอกข้อมูลแล้ว เมื่อ scan AWB. no. และ job no. และจะให้ข้อมูลไปบันทึกเลย จึงขอคำแนะนำว่าต้องปรับแต่ง code
อย่างไรบ้างครับ ส่วนปุ่ม close ยังให้คงอยู่เพื่อเวลาต้องการปิด user form ครับ ขอบคุณมากครับ
ปรับโค้ดเป็น

Code: Select all

Private Sub TextBox_Job_no_Change()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("3G_repair")
'find first empty row in database
iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'check for a Name number
If Trim(Me.TextBox_round.Value) = "" Then
 Me.TextBox_date.SetFocus
 MsgBox "Please complete the form"
 Exit Sub
End If
'copy the data to the database
If Me.TextBox_Job_no.Value <> "" Then
ws.Cells(iRow, 3).Value = Format(Me.TextBox_date.Value, "MM/DD/YYYY")
ws.Cells(iRow, 5).Value = Me.TextBox_AWB.Value
ws.Cells(iRow, 6).Value = Format(Me.TextBox_Date_sent.Value, "MM/DD/YYYY")
ws.Cells(iRow, 4).Value = Format(Now, "DD/MM/YYYY") & " ; " & Format(Now, "HH:MM")
ws.Cells(iRow, 7).Value = Me.TextBox_remark.Value
ws.Cells(iRow, 8).Value = Me.TextBox_round.Value
ws.Cells(iRow, 2).Value = Me.TextBox_Job_no.Value
Me.TextBox_Job_no.Value = ""
MsgBox "Data added", vbOKOnly + vbInformation, "Data Added"
End If
'clear the data
Me.TextBox_AWB.Value = ""
Me.TextBox_remark.Value = ""
Me.TextBox_date.SetFocus
End Sub

Re: User form จะให้รับข้อมูลเข้าเลยโดยไม่ต้องกดปุ่ม Add Data

Posted: Sat Feb 02, 2019 10:03 pm
by ch.jew10
ทดลองแล้ว พอ scan barcode Job No. มัยจะรับค่าแค่ digit แรกตัวเดียวแล้ว enter รับค่าไปเลยครับ เช่น job 8001234 จะรับค่าแค่เลข 8 แล้ว enter ไปเลยจะแก้ไขอย่างไรต่อดีครับ

Re: User form จะให้รับข้อมูลเข้าเลยโดยไม่ต้องกดปุ่ม Add Data

Posted: Sat Feb 02, 2019 11:11 pm
by puriwutpokin
ch.jew10 wrote: Sat Feb 02, 2019 10:03 pm ทดลองแล้ว พอ scan barcode Job No. มัยจะรับค่าแค่ digit แรกตัวเดียวแล้ว enter รับค่าไปเลยครับ เช่น job 8001234 จะรับค่าแค่เลข 8 แล้ว enter ไปเลยจะแก้ไขอย่างไรต่อดีครับ
ลองปรับเป็นตามนี้นะครับ พอดี ผมไม่ได้อยู่ออฟฟิตเลยลองสแกน ไม่ได้ ไงลองดูก่อนครับ

Code: Select all

Private Sub TextBox_Job_no_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("3G_repair")
'find first empty row in database
iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'check for a Name number
If Trim(Me.TextBox_round.Value) = "" Then
 Me.TextBox_date.SetFocus
 MsgBox "Please complete the form"
 Exit Sub
End If
'copy the data to the database
If Me.TextBox_Job_no.Value <> "" Then
ws.Cells(iRow, 3).Value = Format(Me.TextBox_date.Value, "MM/DD/YYYY")
ws.Cells(iRow, 5).Value = Me.TextBox_AWB.Value
ws.Cells(iRow, 6).Value = Format(Me.TextBox_Date_sent.Value, "MM/DD/YYYY")
ws.Cells(iRow, 4).Value = Format(Now, "DD/MM/YYYY") & " ; " & Format(Now, "HH:MM")
ws.Cells(iRow, 7).Value = Me.TextBox_remark.Value
ws.Cells(iRow, 8).Value = Me.TextBox_round.Value
ws.Cells(iRow, 2).Value = Me.TextBox_Job_no.Value
Me.TextBox_Job_no.Value = ""
MsgBox "Data added", vbOKOnly + vbInformation, "Data Added"
End If
'clear the data
Me.TextBox_AWB.Value = ""
Me.TextBox_remark.Value = ""
Me.TextBox_date.SetFocus
End Sub

Re: User form จะให้รับข้อมูลเข้าเลยโดยไม่ต้องกดปุ่ม Add Data

Posted: Sat Feb 02, 2019 11:32 pm
by ch.jew10
ทดลองแล้ว ใช้ได้ครับ ขอบคุณมากๆเลยครับ