หากไม่มีคำอธิบายหรือคำถามเพิ่มเติมไม่ควรอ้างอิงคำพูดเดิมมาโพสต์ซ้ำครับ ที่โพสต์มาผมลบออกไปแล้ว
ชื่อของ Label เป็นภาษาอังกฤษดีอยู่แล้วครับ ถ้าจะเปลี่ยนควรเปลี่ยนที่ Caption การปรับชื่อเป็นภาษาไทยทำให้อ้างอิงยาก การจะให้กำหนดชื่อชีทตามวันที่นั้นสามารถกำหนดตาม Code ด้านล่างครับ แต่ชื่อชีทในไฟล์ ฐานข้อมูลควรเขียนให้ถูกต้องครับ 31กรกฎาคม54 ไม่ใช่ 31กรก
ฏาคม54 ตัวหลังคือ ฏ. ปฏัก ซึ่งไม่ถูกต้องครับ
Code: Select all
Private Sub btnOK_Click()
Dim d As Range
Dim s As String
s = Application.Text(Date, "dดดดดbb")
Set d = Workbooks("ฐานข้อมูล.xlsx").Worksheets(s).Range( _
"B" & Rows.Count).End(xlUp).Offset(1, 0)
d = FormMenu.lblDate
d.Offset(, 1) = FormMenu.lblTime
d.Offset(, 2) = FormMenu.cboTable
d.Offset(, 3) = FormMenu.txtMember
MsgBox "บันทึกรายการเรียบร้อยแล้ว"
Unload Me
End Sub
และกรณีต้องบันทึกรายการอาหาร จำนวนหน่วย ราคาเข้าไปในฐานข้อมูลด้วย ควรหาชีทชั่วคราวมารับข้อมูลก่อน เมื่อครบทุกรายการแล้วค่อยนำไปวางที่ชีท Database ต่อไป ในกรณีนี้ผมเพิ่มชีท Temp เข้ามาช่วย สำหรับ Code ที่ Page1 ปลาทับทิมนึ่งมะนาว จะปรับ Code เป็นตัวอย่างให้ตามด้านล่างครับ
Code: Select all
Private Sub txtF1_Change()
Dim r As Range
Dim rTemp As Range
Set r = Workbooks("ฐานข้อมูล.xlsx").Worksheets( _
"อาหาร").Range("B2:C8")
Set rTemp = Workbooks("ฐานข้อมูล.xlsx").Worksheets( _
"Temp").Range("E" & Rows.Count).End(xlUp).Offset(1, 0)
With FormMenu.MultiPage1.Pages("Page1")
If .txtF1 = "" Then
.lblF1 = ""
rTemp = ""
rTemp.Offset(, 1) = ""
rTemp.Offset(, 2) = ""
Else
.lblF1.Caption = .txtF1.Text * Application.VLookup("ปลาทับทิมนึ่งมะนาว", r, 2, 0)
rTemp = "ปลาทับทิมนึ่งมะนาว"
rTemp.Offset(, 1) = txtF1.Text
rTemp.Offset(, 2) = .lblF1.Caption
End If
End With
End Sub
ทั้งหมดที่ทำเป็นตัวอย่างให้นี้ยังไม่สมบูรณ์ แต่คิดว่าเป็นแนวทางให้ทำต่อได้ งานแบบนี้ไม่ง่ายนัก ผู้สร้างต้องมีความรู้เกี่ยวกับ VBA พอสมควรครับ
