Search บนฟอร์มโดยใช้ Combo box ไม่ได้



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

19 มี.ค. 63 , 09:35:44
อ่าน 184 ครั้ง

Tatchawin

Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« เมื่อ: 19 มี.ค. 63 , 09:35:44 »
สวัสดีครับ รบกวนปรึกษาครับ

ผมกำลังทำ Search by Combo box โดยให้ Combo box ค้นหาตามส่วน แผนก งาน ย่อยไปเรื่อยๆ ทีนี้ พวกค่าส่วน แผนก งาน ใน table ผมเก็บเป็น ID หมดแล้วใช้การ Lookup Value เอา เวลาทำ Combo box จะเสิร์ชผมก็มา Bound Column ที่ ID แล้วก็กำหนด Column Count และ Column Widths เอาค่าส่วน แผนก งานมาโชว์ครับ
ผมก็เขียนโค้ดได้ประมาณนี้

Private Sub SearchCombo()
    Dim sql As Integer
    sql = "SELECT * FROM tblWorkforceY2020 WHERE [DepartmentID] =  & Me.cbSearch1 & "
    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery
End Sub

Private Sub cbSearch1_AfterUpdate()
    SearchCombo
End Sub


ผลปรากฎว่า มันขึ้น Pop Up แจ้งเตือนว่า
Run-Time error '13':
Type mismatch

ผมไม่รู้ว่าผิดตรงไหน ช่วยแก้ให้หน่อยนะครับ

ขอบคุณมากครับ

 

19 มี.ค. 63 , 10:30:36
ตอบกลับ #1

PNR

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #1 เมื่อ: 19 มี.ค. 63 , 10:30:36 »
Dim sql As Integer ต้องแก้เป็น  Dim sql As String นะครับ

Private Sub SearchCombo()
Dim SQL As String
SQL = "SELECT * FROM tblWorkforceY2020 WHERE [DepartmentID] = " & Me.cbSearch1
    Forms!frmWorkforce.RecordSource = SQL
    Forms!frmWorkforce.Requery
End Sub


« แก้ไขครั้งสุดท้าย: 19 มี.ค. 63 , 10:42:39 โดย PNR »
:meaw: :grin: :shout:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Tatchawin

19 มี.ค. 63 , 14:32:28
ตอบกลับ #2

Tatchawin

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #2 เมื่อ: 19 มี.ค. 63 , 14:32:28 »
Dim sql As Integer ต้องแก้เป็น  Dim sql As String นะครับ

Private Sub SearchCombo()
Dim SQL As String
SQL = "SELECT * FROM tblWorkforceY2020 WHERE [DepartmentID] = " & Me.cbSearch1
    Forms!frmWorkforce.RecordSource = SQL
    Forms!frmWorkforce.Requery
End Sub

ทำได้แล้วครับ เย้ ขอบคุณมากครับผม

 

22 มี.ค. 63 , 18:43:29
ตอบกลับ #3

Tatchawin

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #3 เมื่อ: 22 มี.ค. 63 , 18:43:29 »
รบกวนอีกนิดครับ ต้องการเปิดฟอร์มโดยมีเงื่อนไขการเปิดมากกว่า 1 เงื่อนไข ผมเขียน code ดังนี้

Private Sub cmdPrintCard1_Click()
DoCmd.OpenReport "rptCard1", acViewPreview, "", "[Fulltime]=""FullTime""" And "[CreateID]=" & Me.txtCreateID, acNormal
End Sub


ผลปรากฎว่า มันขึ้น Pop Up แจ้งเตือนว่า
Run-Time error '13':
Type mismatch

ผมไม่รู้ว่าผิดตรงไหน ช่วยแก้ให้หน่อยนะครับ

ขอบคุณมากครับ

 

22 มี.ค. 63 , 19:50:04
ตอบกลับ #4

Tatchawin

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #4 เมื่อ: 22 มี.ค. 63 , 19:50:04 »
Dim sql As Integer ต้องแก้เป็น  Dim sql As String นะครับ

Private Sub SearchCombo()
Dim SQL As String
SQL = "SELECT * FROM tblWorkforceY2020 WHERE [DepartmentID] = " & Me.cbSearch1
    Forms!frmWorkforce.RecordSource = SQL
    Forms!frmWorkforce.Requery
End Sub

ท่านครับ แล้วถ้าผมใส่หลายๆเงื่อนไขเข้าไป มันจะเขียนยังไงครับ ผมลองเขียนตามข้างล่าง แล้วไม่ได้

Private Sub SearchCombo()
    Dim sql As String
    sql = "SELECT * FROM qryWorkforceY2020 WHERE [DepartmentID] = & Me.cbSearch1 And [SectionID] = & Me.cbSearch2"
    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery
End Sub


รบกวนหน่อยครับ 2 คำถามนะครับ ขอบคุณมากครับ

 

22 มี.ค. 63 , 20:31:45
ตอบกลับ #5

thanapol.w

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #5 เมื่อ: 22 มี.ค. 63 , 20:31:45 »
Private Sub SearchCombo()
    Dim sql As String
    sql = "SELECT * FROM qryWorkforceY2020 WHERE DepartmentID = '" & Me.cbSearch1 & "' And SectionID = '" & Me.cbSearch2 & "'"
    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery
End Sub

 
โพสต์นี้ได้รับคำขอบคุณจาก: Tatchawin

22 มี.ค. 63 , 21:32:57
ตอบกลับ #6

Tatchawin

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #6 เมื่อ: 22 มี.ค. 63 , 21:32:57 »
Private Sub SearchCombo()
    Dim sql As String
    sql = "SELECT * FROM qryWorkforceY2020 WHERE DepartmentID = '" & Me.cbSearch1 & "' And SectionID = '" & Me.cbSearch2 & "'"
    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery
End Sub

ไม่ได้เลยครับ  :cry: ขึ้น Pop Up
Run Time Error 3464
Datatype mismatch in criteria expression

ปล. DepartmentID กับ SectionID เก็บค่าเป็นค่าตัวเลขนะครับ

 

22 มี.ค. 63 , 21:58:38
ตอบกลับ #7

PNR

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #7 เมื่อ: 22 มี.ค. 63 , 21:58:38 »
เอา single quote  ออกครับถ้าตัวเลข

Private Sub SearchCombo()
    Dim sql As String
    sql = "SELECT * FROM qryWorkforceY2020 WHERE DepartmentID = " & Me.cbSearch1 & " And SectionID = " & Me.cbSearch2 & ""
    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery
End Sub
:meaw: :grin: :shout:
 

22 มี.ค. 63 , 22:24:37
ตอบกลับ #8

Tatchawin

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #8 เมื่อ: 22 มี.ค. 63 , 22:24:37 »
เอา single quote  ออกครับถ้าตัวเลข

Private Sub SearchCombo()
    Dim sql As String
    sql = "SELECT * FROM qryWorkforceY2020 WHERE DepartmentID = " & Me.cbSearch1 & " And SectionID = " & Me.cbSearch2 & ""
    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery
End Sub

ไม่ได้เลยครับ :( ขึ้นแบบนี้

 

22 มี.ค. 63 , 22:56:09
ตอบกลับ #9

Tatchawin

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #9 เมื่อ: 22 มี.ค. 63 , 22:56:09 »
รบกวนดูไฟล์ให้หน่อยนะครับ

คำถามข้อ 1: ที่ฟอร์ม frmWorkforce
ต้องการกรองให้ได้หลายๆระดับ (Department, Section, Shift) ต้องใส่หลายๆเงื่อนไขการกรองเข้าไป

คำถามข้อ 1: ที่ฟอร์ม frmCreateCard และซับฟอร์ม frmCardDetail
ที่ cmdPrintCard1 บน frmCardDetail ผมต้องการให้กดเปิดรีพอร์ท โดยมีเงื่อนไข เอาเฉพาะ Record ที่มีค่าดังนี้
 - เปิด Report ที่มี CreateID ใน Query ตรงกับ CreateID ใน txtCreateID
 - เปิดเฉพาะ Query ที่มีค่าใน Field Fulltime = FullTime เท่านั้น (ไม่เอา NotFullTime)

ฟอร์มเละหน่อยนะครับ ผมแก้ไปแก้มาจนงง เหมือนไม่ยาก แต่แก้ไม่ได้เสียดที
ขอบคุณมากครับ

 

23 มี.ค. 63 , 08:25:59
ตอบกลับ #10

PNR

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #10 เมื่อ: 23 มี.ค. 63 , 08:25:59 »
ข้อ 1 แก้เป็น
โค๊ด: [Select]
Private Sub SearchCombo()
    Dim sql As String
    sql = "SELECT * FROM tblWorkforceY2020 WHERE (((tblWorkforceY2020.DepartmentID)=[forms]![frmWorkforce]![cbSearch1]) AND  ((tblWorkforceY2020.SectionID)=[forms]![frmWorkforce]![cbSearch2]));"
    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery
End Sub

หรือแบบนี้
โค๊ด: [Select]
Dim sql As String
     sql = "SELECT * FROM qryWorkforceY2020 WHERE [DepartmentID]=" & Me.cbSearch1 & " AND [SectionID]=" & Me.cbSearch2 & ""

    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery

ข้อ 1 แนะนำให้ใช้แบบนี้
โค๊ด: [Select]
Private Sub SearchCombo()
    Dim sql As String
    sql = "SELECT * FROM qryWorkforceY2020 WHERE [DepartmentID] Like '" & Nz(Me.cbSearch1, "*") & "' AND [SectionID] Like '" & Nz(Me.cbSearch2, "*") & "' AND [ShiftID] Like '" & Nz(Me.cbSearch3, "*") & "'"
    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery
End Sub
Private Sub cbSearch1_AfterUpdate()
    SearchCombo
End Sub
Private Sub cbSearch2_AfterUpdate()
    SearchCombo
End Sub
Private Sub cbSearch3_AfterUpdate()
  SearchCombo
End Sub

ข้อที่ 2 แก้เป็นแบบนี้
โค๊ด: [Select]
DoCmd.OpenReport "rptCard1", acViewPreview, , "[Fulltime]='Fulltime' AND [CreateID] = " & Forms!frmCreateCard!txtCreateID
« แก้ไขครั้งสุดท้าย: 23 มี.ค. 63 , 09:25:45 โดย PNR »
:meaw: :grin: :shout:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Tatchawin

23 มี.ค. 63 , 10:24:16
ตอบกลับ #11

Tatchawin

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #11 เมื่อ: 23 มี.ค. 63 , 10:24:16 »
ข้อ 1 แก้เป็น
โค๊ด: [Select]
Private Sub SearchCombo()
    Dim sql As String
    sql = "SELECT * FROM tblWorkforceY2020 WHERE (((tblWorkforceY2020.DepartmentID)=[forms]![frmWorkforce]![cbSearch1]) AND  ((tblWorkforceY2020.SectionID)=[forms]![frmWorkforce]![cbSearch2]));"
    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery
End Sub

หรือแบบนี้
โค๊ด: [Select]
Dim sql As String
     sql = "SELECT * FROM qryWorkforceY2020 WHERE [DepartmentID]=" & Me.cbSearch1 & " AND [SectionID]=" & Me.cbSearch2 & ""

    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery

ข้อ 1 แนะนำให้ใช้แบบนี้
โค๊ด: [Select]
Private Sub SearchCombo()
    Dim sql As String
    sql = "SELECT * FROM qryWorkforceY2020 WHERE [DepartmentID] Like '" & Nz(Me.cbSearch1, "*") & "' AND [SectionID] Like '" & Nz(Me.cbSearch2, "*") & "' AND [ShiftID] Like '" & Nz(Me.cbSearch3, "*") & "'"
    Forms!frmWorkforce.RecordSource = sql
    Forms!frmWorkforce.Requery
End Sub
Private Sub cbSearch1_AfterUpdate()
    SearchCombo
End Sub
Private Sub cbSearch2_AfterUpdate()
    SearchCombo
End Sub
Private Sub cbSearch3_AfterUpdate()
  SearchCombo
End Sub

ข้อที่ 2 แก้เป็นแบบนี้
โค๊ด: [Select]
DoCmd.OpenReport "rptCard1", acViewPreview, , "[Fulltime]='Fulltime' AND [CreateID] = " & Forms!frmCreateCard!txtCreateID

ขอบคุณมากครับ เดี๋ยวผมลองแก้ดู
ตอนผมจะเข้าไปแก้โค้ด ปรากฏว่าโปรแกรม มีอาการค้าง ไม่แน่ใจว่าตอนท่านแก้มีอาการค้างๆ หน่วงๆบ้างไหมครับ
ถ้าเปน เกิดจากการที่ผมโค้ดมัน จนมันทำงานหนักไปรึเปล่าครับ เท่าที่ท่านเหน

ขอบคุณครับ

 

23 มี.ค. 63 , 11:11:46
ตอบกลับ #12

PNR

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #12 เมื่อ: 23 มี.ค. 63 , 11:11:46 »
อ้างถึง
ตอนผมจะเข้าไปแก้โค้ด ปรากฏว่าโปรแกรม มีอาการค้าง ไม่แน่ใจว่าตอนท่านแก้มีอาการค้างๆ หน่วงๆบ้างไหมครับ
ถ้าเปน เกิดจากการที่ผมโค้ดมัน จนมันทำงานหนักไปรึเปล่าครับ เท่าที่ท่านเหน

ไม่เจออาการหน่วงครับ
:meaw: :grin: :shout:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Tatchawin

25 มี.ค. 63 , 17:54:07
ตอบกลับ #13

Tatchawin

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #13 เมื่อ: 25 มี.ค. 63 , 17:54:07 »
ทำได้แล้วครับ ขอบคุณมากครับผม
แต่มีคำถามเพิ่มอีกนิดหน่อยครับ ในหน้า frmInput ผมลอง

กรอกข้อมูลไปบางช่อง >กดSave>แจ้งเตือนว่ากรอกไม่ครบ(ตามที่ผมเขียนโค้ดดักไว้)>กดClear>กดRefresh>ขึ้นแจ้งเตือนตามภาพ


เข้าใจว่าผมคงเขียนโค้ดไว้เยอะมาก จนมันแจ้งเตือนว่าซับซ้อน ท่านคิดว่าอนาคตใช้ๆไป โค้ดที่ผมเขียนในหน้า frmInput จะพาให้โปรแกรมพังไหมครับ หากมีโอกาสจะมีแนวทางแก้ไขอย่างไร

ขอบคุณมากครับ

 

27 มี.ค. 63 , 11:59:59
ตอบกลับ #14

PNR

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #14 เมื่อ: 27 มี.ค. 63 , 11:59:59 »
เอาโค้ดมาดูนะครับ
ว่ามีตรงไหน ทำงานซ้ำซ้อน หรือเปล่า หรือการอ้างอิงต่างๆ อาจจะขัดแย้งกัน
ต้องดูโค้ดครับ
:meaw: :grin: :shout:
 

27 มี.ค. 63 , 15:14:08
ตอบกลับ #15

Tatchawin

: Search บนฟอร์มโดยใช้ Combo box ไม่ได้
« ตอบกลับ #15 เมื่อ: 27 มี.ค. 63 , 15:14:08 »
เอาโค้ดมาดูนะครับ
ว่ามีตรงไหน ทำงานซ้ำซ้อน หรือเปล่า หรือการอ้างอิงต่างๆ อาจจะขัดแย้งกัน
ต้องดูโค้ดครับ

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

Option Compare Database
Option Explicit
Private str As String


Private Sub cmdInsertIMG_Click()
    Dim iFileName As String
    iFileName = iFileDialog
    If iFileName & "" <> "" Then
        Me.txtImagePath = Mid(iFileName, InStrRev(iFileName, "\"))
    End If
End Sub

Private Sub cmdClear_Click()
    Me.txtNationalID1 = ""
    Me.txtNamePrefixThai1 = ""
    Me.txtFirstNameThai1 = ""
    Me.txtLastNameThai1 = ""
    Me.txtNickName1 = ""
    Me.txtNamePrefixEng1 = ""
    Me.txtFirstNameEng1 = ""
    Me.txtLastNameEng1 = ""
    Me.txtBirthDate = ""
    Me.txtBloodGroup = ""
    Me.txtAddessNo1 = ""
    Me.txtVillageNo1 = ""
    Me.txtRoad1 = ""
    Me.txtSubDistrict1 = ""
    Me.txtDistrict1 = ""
    Me.txtProvince1 = ""
    Me.txtPostcode1 = ""
    Me.txtTelMobile1 = ""
    Me.txtImagePath = ""
    Me.txtRaceID = ""
    Me.txtNationalityID = ""
    Me.txtReligion = ""
    Me.txtEdu1 = ""
    Me.txtSchool1 = ""
    Me.txtEdu2 = ""
    Me.txtSchool2 = ""
    Me.txtDLType = ""
    Me.txtDLExpDate = ""
   
   
    Me.txtNationalID2 = ""
    Me.txtNamePrefixThai2 = ""
    Me.txtFirstNameThai2 = ""
    Me.txtLastNameThai2 = ""
    Me.txtNamePrefixEng2 = ""
    Me.txtFirstNameEng2 = ""
    Me.txtLastNameEng2 = ""
    Me.txtNickName2 = ""
    Me.txtAddessNo2 = ""
    Me.txtVillageNo2 = ""
    Me.txtRoad2 = ""
    Me.txtSubDistrict2 = ""
    Me.txtDistrict2 = ""
    Me.txtProvince2 = ""
    Me.txtPostcode2 = ""
    Me.txtTelMobile2 = ""
    Me.txtCompanyID = ""
    Me.txtPlantID = ""
    Me.txtDepartmentID = ""
    Me.txtSectionID = ""
    Me.txtSubSectionID = ""
    Me.txtShiftID = ""
    Me.txtSubShiftID = ""
    Me.txtJobAreaID = ""
    Me.txtWorkDetail = ""
    Me.txtLabourType = ""
    Me.txtContractType = ""
    Me.txtFulltime = ""
    Me.txtPayID = ""
    Me.txtCompanyHiringDate = ""
    Me.txtJobAreaEntryDate = ""
   
End Sub

Private Sub cmdSave_Click()
Dim ctrl As Control
Dim mSave As Boolean
Dim DontDuplicate As String
Dim str1 As String
str = Empty

'---------------------------------------------------------------------------------------------
' Copy Part 2 = Part 1


        Me.txtNationalID2 = Me.txtNationalID1
        Me.txtNamePrefixThai2 = Me.txtNamePrefixThai1
        Me.txtFirstNameThai2 = Me.txtFirstNameThai1
        Me.txtLastNameThai2 = Me.txtLastNameThai1
        Me.txtNamePrefixEng2 = Me.txtNamePrefixEng1
        Me.txtFirstNameEng2 = Me.txtFirstNameEng1
        Me.txtLastNameEng2 = Me.txtLastNameEng1
        Me.txtNickName2 = Me.txtNickName1
        Me.txtAddessNo2 = Me.txtAddessNo1
        Me.txtVillageNo2 = Me.txtVillageNo1
        Me.txtRoad2 = Me.txtRoad1
        Me.txtSubDistrict2 = Me.txtSubDistrict1
        Me.txtDistrict2 = Me.txtDistrict1
        Me.txtProvince2 = Me.txtProvince1
        Me.txtPostcode2 = Me.txtPostcode1
        Me.txtTelMobile2 = Me.txtTelMobile1
'---------------------------------------------------------------------------------------------
' Check IsNullOrEmpty


For Each ctrl In Me.Controls
    If TypeOf ctrl Is TextBox Then
        If isnullorEmptyTbx(ctrl) Then
            ctrl.BackColor = RGB(119, 192, 212)
            ctrl.BorderColor = RGB(157, 187, 97)
            str = str & ctrl.Tag & vbNewLine
        Else
            ctrl.BackColor = vbWhite
            ctrl.BorderColor = RGB(192, 192, 192)
        End If
    End If
    Next ctrl
   
For Each ctrl In Me.Controls
    If TypeOf ctrl Is ComboBox Then
        If isnullorEmptyCbx(ctrl) Then
            ctrl.BackColor = RGB(119, 192, 212)
            ctrl.BorderColor = RGB(157, 187, 97)
            str = str & ctrl.Tag & vbNewLine
        Else
            ctrl.BackColor = vbWhite
            ctrl.BorderColor = RGB(192, 192, 192)
        End If
    End If
    Next ctrl
   
    If IsNull(str) Or str = "" Then
   
        DontDuplicate = Me.txtNationalID1.Value
        str1 = "[NationalID]=" & "'" & DontDuplicate & "'"
       
        If Me.txtNationalID1 = DLookup("[NationalID]", "tblContractor", str1) Then
        MsgBox "A record " & txtNationalID1 & " is duplicate. " & "Please check record.", vbInformation
        Me.Undo
        Exit Sub
    Else
'---------------------------------------------------------------------------------------------
' Insert into table


        If MsgBox("Are you sure you want to save?", vbQuestion + vbYesNo, "Save Confirmation") = vbYes Then
            mSave = True
            On Error Resume Next
            DoCmd.SetWarnings False
   
            DoCmd.RunSQL "INSERT INTO tblContractor([NationalID],[NamePrefixThai],[FirstNameThai],[LastNameThai],[NamePrefixEng],[FirstNameEng],[LastNameEng],[NickName],[BirthDate],[BloodGroup],[AddessNo],[VillageNo],[Road],[SubDistrict],[District],[Province],[Postcode],[TelMobile],[ImagePath],[RaceID],[NationalityID],[Religion],[Edu1],[School1],[Edu2],[School2],[DLType],[DLExpDate])" & _
            "Values ('" & Me.txtNationalID1 & "', '" & Me.txtNamePrefixThai1 & "', '" & Me.txtFirstNameThai1 & "', '" & Me.txtLastNameThai1 & "', '" & Me.txtNamePrefixEng1 & "', '" & Me.txtFirstNameEng1 & "', '" & Me.txtLastNameEng1 & "', '" & Me.txtNickName1 & "', '" & Me.txtBirthDate & "', '" & _
            Me.txtBloodGroup & "', '" & Me.txtAddessNo1 & "', '" & Me.txtVillageNo1 & "', '" & Me.txtRoad1 & "', '" & Me.txtSubDistrict1 & "', '" & Me.txtDistrict1 & "', '" & Me.txtProvince1 & "', '" & Me.txtPostcode1 & "', '" & Me.txtTelMobile1 & "', '" & Me.txtImagePath & "', '" & Me.txtRaceID & "', '" & _
            Me.txtNationalityID & "', '" & Me.txtReligion & "', '" & Me.txtEdu1 & "', '" & Me.txtSchool1 & "', '" & Me.txtEdu2 & "', '" & Me.txtSchool2 & "', '" & Me.txtDLType & "', '" & Me.txtDLExpDate & "') ;"
   
            DoCmd.RunSQL "INSERT INTO tblWork([NationalID],[NamePrefixThai],[FirstNameThai],[LastNameThai],[NamePrefixEng],[FirstNameEng],[LastNameEng],[NickName],[AddessNo],[VillageNo],[Road],[SubDistrict],[District],[Province],[Postcode],[TelMobile],[CompanyID],[PlantID]," & _
            "[DepartmentID],[SectionID],[SubSectionID],[ShiftID],[SubShiftID],[JobAreaID],[WorkDetail],[LabourType],[ContractType],[Fulltime],[PayID],[CompanyHiringDate],[JobAreaEntryDate])" & _
            "Values ('" & Me.txtNationalID2 & "', '" & Me.txtNamePrefixThai2 & "', '" & Me.txtFirstNameThai2 & "', '" & Me.txtLastNameThai2 & "', '" & Me.txtNamePrefixEng2 & "', '" & Me.txtFirstNameEng2 & "', '" & Me.txtLastNameEng2 & "', '" & Me.txtNickName2 & "', '" & Me.txtAddessNo2 & "', '" & _
            Me.txtVillageNo2 & "', '" & Me.txtRoad2 & "', '" & Me.txtSubDistrict2 & "', '" & Me.txtDistrict2 & "', '" & Me.txtProvince2 & "', '" & Me.txtPostcode2 & "', '" & Me.txtTelMobile2 & "', '" & Me.txtCompanyID & "', '" & Me.txtPlantID & "', '" & Me.txtDepartmentID & "', '" & _
            Me.txtSectionID & "', '" & Me.txtSubSectionID & "', '" & Me.txtShiftID & "', '" & Me.txtSubShiftID & "', '" & Me.txtJobAreaID & "', '" & Me.txtWorkDetail & "', '" & Me.txtLabourType & "', '" & Me.txtContractType & "', '" & Me.txtFulltime & "', '" & Me.txtPayID & "', '" & Me.txtCompanyHiringDate & "', '" & Me.txtJobAreaEntryDate & "');"
           
            MsgBox ("Your record has been successfully saved!")
           
'---------------------------------------------------------------------------------------------
' Clear Textbox


            Me.txtNationalID1 = ""
            Me.txtNamePrefixThai1 = ""
            Me.txtFirstNameThai1 = ""
            Me.txtLastNameThai1 = ""
            Me.txtNickName1 = ""
            Me.txtNamePrefixEng1 = ""
            Me.txtFirstNameEng1 = ""
            Me.txtLastNameEng1 = ""
            Me.txtBirthDate = ""
            Me.txtBloodGroup = ""
            Me.txtAddessNo1 = ""
            Me.txtVillageNo1 = ""
            Me.txtRoad1 = ""
            Me.txtSubDistrict1 = ""
            Me.txtDistrict1 = ""
            Me.txtProvince1 = ""
            Me.txtPostcode1 = ""
            Me.txtTelMobile1 = ""
            Me.txtImagePath = ""
            Me.txtRaceID = ""
            Me.txtNationalityID = ""
            Me.txtReligion = ""
            Me.txtEdu1 = ""
            Me.txtSchool1 = ""
            Me.txtEdu2 = ""
            Me.txtSchool2 = ""
            Me.txtDLType = ""
            Me.txtDLExpDate = ""
           
            Me.txtNationalID2 = ""
            Me.txtNamePrefixThai2 = ""
            Me.txtFirstNameThai2 = ""
            Me.txtLastNameThai2 = ""
            Me.txtNamePrefixEng2 = ""
            Me.txtFirstNameEng2 = ""
            Me.txtLastNameEng2 = ""
            Me.txtNickName2 = ""
            Me.txtAddessNo2 = ""
            Me.txtVillageNo2 = ""
            Me.txtRoad2 = ""
            Me.txtSubDistrict2 = ""
            Me.txtDistrict2 = ""
            Me.txtProvince2 = ""
            Me.txtPostcode2 = ""
            Me.txtTelMobile2 = ""
            Me.txtCompanyID = ""
            Me.txtPlantID = ""
            Me.txtDepartmentID = ""
            Me.txtSectionID = ""
            Me.txtSubSectionID = ""
            Me.txtShiftID = ""
            Me.txtSubShiftID = ""
            Me.txtJobAreaID = ""
            Me.txtWorkDetail = ""
            Me.txtLabourType = ""
            Me.txtContractType = ""
            Me.txtFulltime = ""
            Me.txtPayID = ""
            Me.txtCompanyHiringDate = ""
            Me.txtJobAreaEntryDate = ""
            Me.Requery
        Else
            mSave = False
            Me.Undo
            Exit Sub
        End If
    End If
     Else
     MsgBox "Please enter data for all the required fields", vbInformation + vbOKOnly, "Form is not fullfilled completly"
        Exit Sub
           End If
End Sub

Private Sub Form_Current()
'    txtHide
    Me.txtNationalID1.SetFocus
End Sub

Private Sub Form_Error(DataErr As Integer, Response As Integer)
    If DataErr = 2113 Then
        MsgBox "Your input is incorrect. Please scan your card again", , "Input Error"
        Response = acDataErrContinue
        Me.Undo
    End If
End Sub

'Private Sub txtDLType_AfterUpdate()
'    txtHide
'End Sub


Private Sub txtPlantID_Change()
    Me.txtDepartmentID.Requery
End Sub

Private Sub txtDepartmentID_Change()
    Me.txtSectionID.Requery
End Sub

'Private Sub txtReligion_KeyDown(KeyCode As Integer, Shift As Integer)
'Select Case KeyCode
'  Case vbKeyReturn, vbKeyTab, vbKeyUp, vbKeyDown
'   KeyCode = KeyCode  'Accept these keys
'  Case Else
'   KeyCode = 0 'Block all other keys
'End Select
'End Sub


Private Sub txtSectionID_Change()
    Me.txtSubSectionID.Requery
End Sub

Private Sub txtSubSectionID_Change()
    Me.txtShiftID.Requery
End Sub

Private Sub txtShiftID_Change()
    Me.txtSubShiftID.Requery
End Sub

Private Sub txtSubShiftID_Change()
    Me.txtJobAreaID.Requery
End Sub

'Private Sub txtHide()
'    Me.txtDLExpDate.Visible = Not (IsNull(Me.txtDLType) Or Me.txtDLType = 0 Or Me.txtDLType = "No" Or Me.txtDLType = "N/A")
'End Sub

 


บอร์ดเรียนรู้ Access สำหรับคนไทย