แสดงกระทู้

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 - TTT

หน้า: 1 2 3 [4] 5 6 7
55
ถ้าจะกำหนดให้ค่า Null เป็น 0 ก็ใช้
Val(Nz(DSum("[Que_Pro] * [Salepre_Pro]","tbl_OrderItemPro","ID_Pro=" & [Qry_TotalOut].[ID_Pro]), 0))

56
ก็ต้องดูว่าค่าในฟิลด์ไหนที่อาจจะเป็นค่า Null ได้ในฐานข้อมูลเรา แล้วทำให้การคำนวณอาจคำนวณค่ากับฟิลด์อื่นที่มีค่าไม่ได้ก็ให้ใส่ Nz() เข้าไปเพื่อทำให้มันสามารถคำนวณค่าได้ เช่นหากถ้าเป็นไปได้ทุกฟิลด์ในฐานข้อมูลเราจะเป็นค่า Null ได้ทั้งหมด เราก็ต้องใส่ทั้งหมดประมาณนี้ครับ

Val(DSum("Nz([Que_Pro]) * Nz([Salepre_Pro])","tbl_OrderItemPro","Nz(ID_Pro)=" & Nz([Qry_TotalOut].[ID_Pro])))

ซึ่งมันแล้วแต่การออกแบบฐานข้อมูลว่าเรากำหนดให้มันสามารถเกิดค่า Null ได้หรือไม่ในฟิลด์ครับ ปรับใช้ดู

57
หากคำสั่งอยู่ที่ฟอร์มหลัก ต้องโฟกัสที่ซับฟอร์มก่อนแล้วค่อยโฟกัสที่คอนโทรลซับฟอร์มอีกครั้ง

Forms![เมนฟอร์ม]![ซับฟอร์ม].SetFocus
Forms![เมนฟอร์ม]![ซับฟอร์ม].Form.[คอนโทรล].SetFocus

เป็น
Forms![Frm_Main]![Frm_Sub].SetFocus
Forms![Frm_Main]![Frm_Sub].Form.[Text1].SetFocus
หรือแบบนี้ก็ได้
Me("Frm_Sub").SetFocus
Me("Frm_Sub").Form.Text1.SetFocus

ปรับใช้ดูครับ

58
คิดว่าที่คุณเขียนไว้ตั้งแต่แรกก็ใช้ได้แล้วมั้งครับ แต่ให้ต่อฟิลด์ลงไปเพิ่ม ประมาณนี้

select * from table_a
where charge & code not in(select charge & code from Table_b)

ไม่รู้ว่าเข้าใจความต้องการของคุณถูกไม๊นะครับ

ปล. การใช้ซับคิวรี่ หากข้อมูลมีจำนวนมากๆ จะทำให้คำนวณได้ช้า

59
ห้อง MS Access / : สร้างริบบอน ใช้เอง
« เมื่อ: 08 ส.ค. 61 , 20:13:12 »
แนะนำอ่านที่นี่ครับ มีหมดว่าจะทำเมนูประเภทไหน
Accessribbon
ส่วนนี่เป็นไฟล์ตัวอย่างเมนูที่ผมเคยทำเป็นเมนูที่แสดงเป็นรูปภาพสมาชิกแต่ละคนได้ผมทำเป็นไฟล์ไว้ที่นี่ครับ เรียกไฟล์ BNK48-Update.accde ดูโค้ดที่เป็น xml ได้ที่ตาราง UsysRibbons ส่วนโค้ดที่เป็น VBA ศึกษาดูที่เว็บข้างบนได้ ผมก็ใช้โค้ดจากเว็บข้างบนนี้ทั้งหมดครับ
โหลดไฟล์ BNK48

60
ใช้อังกฤษตัวเล็กแล้วเข้าฟังก์ชั่น UCase() ก็จะเป็นตัวใหญ่ทั้งหมดครับ

61
เท่าที่ดูแนวคิดคุณก็น่าจะใช้ได้นะครับ ยังไม่ได้ลองนะคิดเอาเอง เพียงแต่เท่าที่เห็น Public strInvid As String และ Public strsearch_Invid As String ถ้าประกาศอยู่ที่ฟอร์ม Clase ของ Moudle จะมองไม่เห็นนะครับ ต้องไปประกาศที่ Module ที่เดียวกับฟังก์ชั่นแทน

62
ห้อง MS Access / : ทศนิยม
« เมื่อ: 21 ก.ค. 61 , 13:40:31 »
อาจเป็นเรื่องของการปัดเศษ ยังไงลองอ่านกระทู้นี้ดูครับ
กระทู้ปัดเศษ

63
คือกรณีนี้ หากต้องการแสดงสถานะภาษาคีย์ พอเรากำหนดให้ปุ่ม (~ tilde) เป็นปุ่มเปลี่ยนภาษาจะทำให้ปุ่มมันไม่สามารถ Active กับโปรแกรมอื่นๆได้ โปรแกรมอย่าง MS Access ให้การรันโค้ดที่เหตุการณ์เป็นหลัก Event-Driven แต่เมื่อกดปุ่มตัวหนอนแล้วไม่เกิดเหตุการณ์ใดๆ จึงไม่สามารถรันโค้ดที่ต้องการให้แสดงสถานะคีย์ได้ จึงต้องใช้เหตุการณ์ On Time แทนครับ แล้วก็ให้รันโค้ดที่ On Time แทน ถึงจะแสดงได้แบบ Real Time โดยไม่ต้องพึ่งเหตุการณ์ใดๆ ลองดูไฟล์ต้วอย่างที่นี่ครับ กดโหลดไฟล์ตัวอย่าง

64
ห้อง MS Access / : query หลายตัว
« เมื่อ: 14 ก.ค. 61 , 13:01:14 »
ให้เรียงข้อมูลประมาณไฟล์ที่แนบมาแบบนี้หรือป่าวครับ?
คิวรี่ชื่อ: อย่างนี้หรือป่าว

65
ลองแทรกบรรทัดสีแดงนี้เข้าไปที่โค้ด แนวคิดคือใช้การตรวจสอบว่า ถ้าเซล A1 มีข้อความเหมือนชื่อหัวเรื่องอยู่แล้วก็ให้ข้ามการแทรกเซลไป อะไรประมาณนี้ครับ

    Set xlSheet = xlWorkbook.ActiveSheet
    '-------------ตรวจสอบหากมีหัวเรื่องชื่อเดียวกันซ้ำก็ให้ข้ามการแทรกไป
    If xlSheet.Cells(1, 1).Value = "ชื่อหัวเรื่องที่ต้องการ" Then Exit Sub
    '-------------------------------------------------
    With xlSheet.Range("A1")

66
ใช้แบบโค้ดแบบนี้น่าจะพอได้นะครับ
ในเหตุการณ์ After Update ของ TextBox
โค๊ด: [Select]
    Dim iStr As String
    iStr = Replace(TextBox, ",,", ",")
    iStr = Replace(TextBox, ", ,", ",")
    If Right(iStr, 1) = "," Then
        iStr = Mid(iStr, 1, Len(iStr) - 1)
    End If
    TextBox = iStr

67
จริงๆ ถ้าเป็นเลขบัตรประชาชน 13 หลัก ผมแนะนำให้ใช้เป็น EAN-13 ได้นะครับ มันจะสามารถ check digi หลักที่ 13 ของบัตรได้ด้วยว่าเลขที่บัตรใส่ถูกหรือไม่ เพราะเลขบัตรเราใช้ระบบ EAN-13 อยู่แล้ว

ส่วนเรื่องการไม่ต้องกด ENTER อย่างที่คุณ UN บอกอะครับ ตัวเครื่อง Barcode จะสามารถเซ็ทให้เมื่ออ่านเสร็จให้ส่งคีย์ ENTER ต่อท้ายได้เลย โดยส่วนมากจะอยู่ในคู่มือบาร์โค้ดที่ให้มา โดยจะเป็นรูปบาร์โค้ดแบบต่างๆ ให้เราใช้เครื่องยิงใส่บาร์โค้ดในคู่มือหัวข้อที่กำหนดเรื่องของการ ENTER เพียงครั้งเดียวก็จะเป็นการ Setup เครื่องยิงบาร์โค้ดแล้ว

แต่หากทำไม่ได้เพราะคู่มือหายหรือด้วยเหตุบางอย่างก็แนะนำให้ใช้เหตุการณ์ On Change ของ Textbox ตัวรับบาร์โค้ดครับ
    If Len(Me.Text1.Text) = 13 Then
        'โค้ดค้นหาข้อมูล ...
    End If

ประมาณนี้ครับ


68
ห้อง MS Access / : สร้าง QR Code
« เมื่อ: 21 มิ.ย. 61 , 23:46:02 »
ความคิดส่วนตัวผมว่าไม่น่าจะได้นะครับ เพราะฟิลด์ของ MS Access มันจะสามารถกำหนดฟอนต์ได้เพียงอย่างเดียวเท่านั้น ยกเว้นกำหนดให้เป็น Rich Text ซึ่งมันก็คงไม่รองรับกับ QR แบบนี้อีก เลยคิดว่าไม่น่าจะได้นะครับ ต้องเป็นฟอนต์ญึ่ปุ่นทั้งหมด ส่วนเรื่องอื่นผมตอบใน YouTube แล้วนะครับ คิดว่าคงเป็นคนเดียวกันที่ถาม

69
ลองศึกษาการสร้าง Menu Ribbon จากเว็บนี้ดูก่อนครับ จะได้รู้หลักการเขียน accessribbon

70
ผมมีไฟล์ตัวอย่าง ไฟล์ตัวอย่าง By Peter Hibbs July 2017
เป็นโปรเจคที่เค้าเรียนแบบ Calendar ของ Outlook ไม่รู้อาจารย์เคยเห็นยังนะครับ เผื่อพอช่วยได้ โค้ดดิ้งเยอะใช้ได้ แต่ดูคร่าวๆแล้วคิดว่าน่าจะเป็นแนวคิดประมาณนี้อะครับที่เห็นคนเค้าทำกันบน MS Access เมื่อก่อนคิดว่าจะนั่งไล่โค้ดดู จนถึงวันนี้ยังไม่ได้ดูเลย ยอมรับว่าขึ้เกียจครับ

71
ของผมลองเปิดดูใช้ได้นะครับ ผมใช้ Windows 10 - MS Access 2013 อาจเป็นไปได้ว่า IE ที่มันดึงมาใช้เป็น IE 11 ตามเงื่อนไขอะครับ เพราะ IE รุ่นสุดท้ายก่อน Microsoft จะเปลี่ยนไปใช้เป็น Edge จะเป็น IE 11 ลองหา Patch Update เป็น IE 11 มาลงดูครับ ไม่รู้ว่าช่วยได้ป่าวนะครับ

72
แนวคิดคร่าวๆ คือ ไม่ว่าคุณจะสร้าง Ribbon จากการใช้ไฟล์ UsysRibbons หรือ User Table หรือ XML File (อันนี้ไม่แน่ใจว่าได้หรือเปล่า) เราสามารถสร้างเป็น List ของคำสั่งแต่ละชุดเมนูได้อยู่แล้ว โดยกำหนดชื่อต่างกัน จากนั้นในตอน Login เข้ามาก็กำหนดสิทธิได้ว่า user ระดับไหนใช้เมนูชื่ออะไรบนฟอร์มไหนโดยกำหนดที่ Event > On Load ของฟอร์มนั้นๆ เช่น ถ้า Level1 ก็โหลด Me.RibbonName = "เมนู1" หรือ Level2 ก็โหลด Me.RibbonName = "เมนู2" อย่างนี้ได้เลยครับ

หน้า: 1 2 3 [4] 5 6 7