แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - PNR

หน้า: 1 ... 21 22 23 [24] 25 26 27 ... 46
415
เพิ่มเป็นแบบนี้ครับ
โค๊ด: [Select]
Private Sub Combo0_AfterUpdate()
If Me.Combo0 = "1" Then
Me.Text1.Locked = False
Me.Text1 = "0"
Me.Text2.Locked = False
Me.Text2 = "0"
Me.Text3.Locked = False
Me.Text3 = "0"
Me.Text4.Locked = True
Me.Text4 = Null
Me.Text5.Locked = True
Me.Text5 = Null
Me.Text6.Locked = True
Me.Text6 = Null
ElseIf Me.Combo0 = "2" Then
Me.Text1.Locked = False
Me.Text1 = "0"
Me.Text2.Locked = False
Me.Text2 = "0"
Me.Text3.Locked = False
Me.Text3 = "0"
Me.Text4.Locked = False
Me.Text4 = "0"
Me.Text5.Locked = False
Me.Text5 = "0"
Me.Text6.Locked = False
Me.Text6 = "0"
ElseIf Me.Combo0 = "3" Then
Me.Text1.Locked = False
Me.Text1 = "0"
Me.Text2.Locked = False
Me.Text2 = "0"
Me.Text3.Locked = True
Me.Text3 = Null
Me.Text4.Locked = True
Me.Text4 = Null
Me.Text5.Locked = True
Me.Text5 = Null
Me.Text6.Locked = True
Me.Text6 = Null
Else
Me.Text1.Locked = True
Me.Text1 = Null
Me.Text2.Locked = True
Me.Text2 = Null
Me.Text3.Locked = True
Me.Text3 = Null
Me.Text4.Locked = True
Me.Text4 = Null
Me.Text5.Locked = True
Me.Text5 = Null
Me.Text6.Locked = True
Me.Text6 = Null
End If
End Sub

416
ผมมีช่องให้กรอกทั้งหมด 6 ช่อง แต่เมื่อผมใส่ค่าประเภทเป็น 1 ให้เปิดช่องสำหรับกรอกค่าแค่ 3 ช่องจาก6ช่อง อีก3 ช่องให่ประติเสธการใส่ค่า

แล้วพอ ผมใส่ค่าประเภทเป็น 2 ให้เปิดช่องสำหรับใส่ค่าทั้งหมด6 ช่อง
พอ ผมใส่ค่าประเภทเป็น 3 ให้เปิดช่องสำหรับใส่ค่าทั้งหมด2 ช่อง



พอมีวิธีทำไหมครับ

ใช้ Locked มาช่วยก็ได้ครับเช่น
โค๊ด: [Select]
Private Sub Combo0_AfterUpdate()
If Me.Combo0 = "1" Then
Me.Text1.Locked = False
Me.Text2.Locked = False
Me.Text3.Locked = False
Me.Text4.Locked = True
Me.Text5.Locked = True
Me.Text6.Locked = True
ElseIf Me.Combo0 = "2" Then
Me.Text1.Locked = False
Me.Text2.Locked = False
Me.Text3.Locked = False
Me.Text4.Locked = False
Me.Text5.Locked = False
Me.Text6.Locked = False
ElseIf Me.Combo0 = "3" Then
Me.Text1.Locked = False
Me.Text2.Locked = False
Me.Text3.Locked = True
Me.Text4.Locked = True
Me.Text5.Locked = True
Me.Text6.Locked = True
End If
End Sub

มี textbox 6 ตัว และ combobox 1 ตัว

combobox ชื่อ Combo0
มี textbox ชื่อ text1 ถึง 6

หรือใช้การซ่อน textbox ก็ได้เช่น
โค๊ด: [Select]
Private Sub Combo0_AfterUpdate()
If Me.Combo0 = "1" Then
Me.Text1.Visible = True
Me.Text2.Visible = True
Me.Text3.Visible = True
Me.Text4.Visible = False
Me.Text5.Visible = False
Me.Text6.Visible = False
ElseIf Me.Combo0 = "2" Then
Me.Text1.Visible = True
Me.Text2.Visible = True
Me.Text3.Visible = True
Me.Text4.Visible = True
Me.Text5.Visible = True
Me.Text6.Visible = True
ElseIf Me.Combo0 = "3" Then
Me.Text1.Visible = True
Me.Text2.Visible = True
Me.Text3.Visible = False
Me.Text4.Visible = False
Me.Text5.Visible = False
Me.Text6.Visible = False
Else
Me.Text1.Visible = False
Me.Text2.Visible = False
Me.Text3.Visible = False
Me.Text4.Visible = False
Me.Text5.Visible = False
Me.Text6.Visible = False
End If
End Sub

417
ไม่ให้แสดงสั่ง Not like ครับ
Not Like ....INV And Like .... PSV... and Like ... PAA...

418
เกิดจากเครื่องเดียวกันไหม หรือไปเปิดที่เครื่องอื่น ที่ไม่ใช่เครื่องหลัก
ปัญหานี้ปกติจะเกิดได้หลายอย่าง ลองแก้ไขตามกระทู้ 2 กระทู้นี้ดู
การกำหนด Local THAI
https://www.thai-access.com/index.php?topic=522.msg2306#msg2306

การเปิดใช้งาน Trust Center
https://www.thai-access.com/index.php?topic=375.msg1562#msg1562

419
ได้แล้วใช่ไหมครับ
 :yuush: :yuush:

420
ครับส่งไปแล้ว

421
ปัญหาจากการกำหนด Relationship ครับต้องเอาการกำหนดตรงส่วนนี้มาดูครับ
หรือถ้าชิ้นงานนี้ไม่ได้ลับมากโพสไฟล์นั้นลงบอร์ดเดี่ยวช่วยตรวจสอบให้

422
เอาโค้ดนี้ไปวางในแต่ละฟิลล์ในคิวรี่ได้เลย

หมู่
โค๊ด: [Select]
qADDRMU: IIf(IsNull([ADDRMU]),"-",Replace(Replace([ADDRMU],"ม.",""),"หมู่ที่ ",""))
ซอย
โค๊ด: [Select]
qADDRSOI: IIf(IsNull([ADDRSOI]),"-",Replace(Replace([ADDRSOI],"ซอย",""),"ตรอก",""))
ถนน
โค๊ด: [Select]
qADDRRD: IIf(IsNull([ADDRRD]),"-",Replace([ADDRRD],"ถนน",""))
ตำบล
โค๊ด: [Select]
qADDRTB:IIF(isnull(ADDRTB),"-",Replace(Replace(Replace(ADDRTB, "ต.", ""), "ตำบล", ""), "แขวง", ""))
อำเภอ
โค๊ด: [Select]
qADDRAP:IIF(isnull(ADDRAP),"-",Replace(Replace(Replace(ADDRAP, "อ.", ""), "อำเภอ", ""), "เขต", ""))
จังหวัด
โค๊ด: [Select]
qADDRCW:IIF(isnull(ADDRCW),"-",Replace(Replace(ADDRCW, "จ.", ""), "จังหวัด", ""))

และโค้ดรวมทุกโค้ดสำหรับ SQL นะครับ

SELECT IIf(IsNull([ADDRSOI]),"-",Replace(Replace([ADDRSOI],"ซอย",""),"ตรอก","")) AS qADDRSOI, IIf(IsNull([ADDRRD]),"-",Replace([ADDRRD],"ถนน","")) AS qADDRRD, IIf(IsNull([ADDRTB]),"-",Replace(Replace(Replace([ADDRTB],"ต.",""),"ตำบล",""),"แขวง","")) AS qADDRTB, IIf(IsNull([ADDRAP]),"-",Replace(Replace(Replace([ADDRAP],"อ.",""),"อำเภอ",""),"เขต","")) AS qADDRAP, IIf(IsNull([ADDRCW]),"-",Replace(Replace([ADDRCW],"จ.",""),"จังหวัด","")) AS qADDRCW FROM [ชื่อตารางหรือคิวรี่];

423
อ้างถึง
ติดตรงที่ว่าถ้าเป็นลูกค้าเคสที่สองเงื่อนไขมันไม่ยอมทำงานไม่รู้ติดตรงไหน

อ่อกรณีที่มีลูกค้าหลายๆคนด้วยก็ต้องนำ รหัสลูกค้า มาเช็คด้วย
แต่จากตารางของคุณ ไม่ได้กำหนดรหัสลูกค้าไว้เลย มีแค่การระบุชื่อ นามสกุลในฟอร์มเลยก็ลองดูตัวอย่างนี้นะครับ

424
Event Exit ของ combobox ครับ
จากตัวอย่าง combobox ชื่อ cbresult ครับของคุณชื่ออะไร ใส่ชื่อให้ตรงกัน
เช่น

Private Sub cbresult _Exit(Cancel As Integer)
Mycheck
End Sub

425
เพิ่มโค้ดอีกนิดใช้การเช็คปีของการลงข้อมูลด้วยครับ

พอมันไปเจอปีใหม่ข้อมูลก็จะรันกลับมา 1 ใหม่ครับ
โค๊ด: [Select]
Sub AutoRunnumber()
Dim MaxNum As Integer
MaxNum = Nz(DMax("ID", "tb_คำสั่ง", "[ปีงบ] = '" & CStr(Format(วันที่ลง, "YYYY")) & "'"))
If MaxNum = 0 Then
MaxNum = 1
Else
MaxNum = MaxNum + 1
End If
Me.ID = MaxNum
End Sub

426
ได้แล้วครับ..ขอบคุณมากน่ะครับ
ขอถามเป็นความรู้หน่อยน่ะครับ...
If Me.Dirty = True Then
   Me.Dirty = False
End If
หมายความว่าอย่างไร..ใช้ประโยชน์อะไรครับ..ขอขอบคุณมากน่ะครับ

If Me.Dirty = True Then   ค่า true คือ เปรียบเสมือนผู้ใช้ทำการเปลี่ยนแปลงระเบียนหรือดำเนินการเกี่ยวกับระเบียนอยู่
การที่เราสั่ง Dirty = false คือบอกให้โปรแกรมทราบว่าเราได้หยุดการดำเนินการกับระเบียนแล้ว
และโปรแกรมจะบันทึกข้อมูลลงตารางและพร้อมสำหรับการใช้เงื่อนไข การตรวจสอบขั้นต่อๆไป

ถ้าสังเกตุผมไม่ได้ใส่โค้ดสำหรับบันทึกไว้เพราะ Dirty = false มันก็บันทึกได้เหมือนกัน

427
ลองดูตัวอย่างนี้นะครับ


ผมใช้การสร้างคิวรี่เพื่อนับจำนวนครั้งการเลือกของCombobox Result ในแต่ละวัน
โดยกำหนดเงื่อนไขว่าถ้า RPP PD BRK นี้มีการลงไว้แล้ว จะไม่สามารถลงต่อได้อีกและมีการแจ้งเตือน พร้อมกับลบค่าที่เพิ่งกรอกลงไปเพื่อรอรับการกรอกใหม่อีกครั้งที่ถูกต้อง

ส่วนโค้ดก็ประมาณนี้ครับ
โค๊ด: [Select]
Private Sub Mycheck()
Dim IntCount As String
If Not IsNull(Me.dtDate) And Not IsNull(Me.cbresult) Then
Me.Dirty = False
IntCount = Nz(DLookup("CountResult", "QryCheckDate", "result ='" & cbresult & "' and Ondate = '" & CStr(Format(Forms!mainform!SubForm!dtDate, "DD/MM/YYYY")) & "'"), 0)

If cbresult = "RPP" And IntCount > 1 Then
MsgBox "วันนี้คุณไม่สามารถลงได้อีก!!!!", vbInformation, "ตรวจเช็ค"
Me.cbresult = Null
Me.cbresult.SetFocus

ElseIf cbresult = "PD" And IntCount > 1 Then
MsgBox "วันนี้คุณไม่สามารถลงได้อีก!!!!", vbInformation, "ตรวจเช็ค"
Me.cbresult = Null
Me.cbresult.SetFocus

ElseIf cbresult = "BRK" And IntCount > 1 Then
MsgBox "วันนี้คุณไม่สามารถลงได้อีก!!!!", vbInformation, "ตรวจเช็ค"
Me.cbresult = Null
Me.cbresult.SetFocus
End If
End If
End Sub

ส่วน Event ของ Combobox cbresult ผมใช้  Exit นะครับ เพราะจะสามารถตรวจสอบค่าที่กรอกลงไปได้แม่นยำกว่า Afterupdate ครับ

Private Sub cbresult_Exit(Cancel As Integer)
Mycheck
End Sub

428
สร้างคิวรี่ ขึ้นมาครับเพื่อรวบรวมว่า ในแต่ละวันได้ระบุ Result ว่าอะไร....   และระบุไปจำนวนกี่ครั้งแล้ว

แล้วสร้าง Dlookup มาเช็คจำนวนครั้งการระบุ Result ได้เลยครับ ถ้าเจอว่า ในวันนั้นเจอการระบุ Result แล้ว หรือ >1 ก็ให้ทำตามเงื่อนไขเช่นแจ้งเตือนเป็นต้น
ส่วนตัวอย่างไว้พรุ่งนี้เน้อ

429
คล้ายๆกันละครับ VBA จะอ้างชื่อ textbox ประมาณนี้

Me.textboxName = [Forms]![frmdashboard]![Childdash].[Form]![cmdgroup]

อะไรประมาณนี้
อธิบายเพิ่มเติมอีกหน่อยครับ ถ้ายังไม่ใช้แบบนี้

430
ใช้ Append Query ครับ
โดยกำหนด JobNo = Forms![ชื่อฟอร์ม]![JobNo]
และกำหนดฟิลล์ให้มันก็ได้แล้วครับ

431
ผม DIY เอานะครับโดยเพิ่มฟิลล์ GetReport ไว้ในตาราง TaxRegis นะครับ
แนวทางคือ ถ้าเราติกเลือกแล้ว จะทำอย่างไรให้ข้อมูลที่เลือกนี้ สามารถไปแสดงบนรายงานได้ ผมเลยใช้การใส่ค่า Picking ไว้เพื่อใช้ในการ Criteria ไปแสดงบนรายงานนะครับ (ดูโค้ดที่  AddPickingReport นะครับ)
โดยผมจะใช้การลบ Picking ออกทุกครั้งที่กด บันทึกระเบียน เพราะเราต้องการค่าจากการติ๊กใหม่แล้วนั้นเอง
โดยเราใช้ Me.RecordsetClone เข้ามาใช้ในการจัดการกับ Recordset บน form ครับ

โค้ดที่ปุ่มบันทึก

โค๊ด: [Select]
Private Sub Command24_Click()
Call ClearPickingReport
DoEvents
Call AddPickingReport
End Sub
Sub ClearPickingReport()
Dim RS As DAO.Recordset
    Set RS = CurrentDb.OpenRecordset("TaxRegis", dbOpenDynaset)
    If Me.Dirty = True Then
    Me.Dirty = False
    End If
        RS.MoveFirst
        Do While Not RS.EOF
            If RS("GetReport") = "Picking" Then
                RS.Edit
                RS("GetReport") = Null
                RS.Update
            End If
            RS.MoveNext
        Loop
    RS.Close
    Set RS = Nothing
End Sub
Sub AddPickingReport()

Dim RSt As DAO.Recordset
    Set RSt = Me.RecordsetClone
        RSt.MoveFirst
        Do While Not RSt.EOF
            If RSt("ฎีกา/ส่งตรวจ") = True Then
                RSt.Edit
                RSt("GetReport") = "Picking"
                RSt.Update
            End If
            RSt.MoveNext
        Loop
        RSt.Close
       Set RSt = Nothing
       Me.Dirty = False
       DoCmd.OpenReport "TaxRegis_Check_Yes", acViewPreview
End Sub

Recordsource ของ Report

โค๊ด: [Select]
SELECT TaxRegis.* FROM TaxRegis WHERE ((Not (TaxRegis.GetReport) Is Null));

432
ผมใช้ฟอร์มชื่อ FrmTaxRegis_Check_Nobook เพื่อติ๊กเลือกรายที่ต้องการขอคืน..เมื่อติ๊กเลือกแล้วกดปุ่มบันทึกระเบียน(ปุ่มนี้จะ Save+OpenReport) ซึ่งรายงานจะดึงรายจากคิวรี่ TaxRegis_Check_Yes แต่ตัวรายงานจะออกมาแค่รายเดียว(ผมติ๊กเลือกเกิน 1 ราย) และเมื่อไปเปิดในคิวรี่ดู ก็จะขึ้นแค่รายเดียวเช่นกัน ผมแนบไฟล์มาแล้วรบกวนช่วยดูให้หน่อยน่ะครับ..ขอขอบคุณมากครับ
ที่แก้นะครับ

แก้คิวรี่ให้ ฎีกา/ส่งตรวจ จาก yes เป็น True แทน
ลบเงื่อนไข เลขทะเบียนงาน ออกไปเพราะเรคคอร์ดที่จะแสดงจะต้องมาจาก ฎีกา/ส่งตรวจ ครับ
แก้โค้ด เป็น
โค๊ด: [Select]
Private Sub Command24_Click()
DoCmd.RunCommand acCmdSaveRecord
DoCmd.OpenReport "TaxRegis_Check_Yes", acViewPreview
End Sub

หน้า: 1 ... 21 22 23 [24] 25 26 27 ... 46