แสดงกระทู้

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

หน้า: 1 2 [3]
33
ลองไปศึกษา & โพสถามต่อจากกระทู้นี้นะครับ
พิกัด ละติจูด-ลองติจูดผูกกับฐานข้อมูล ms access กับ google map ใครพอมีตัวอย่าง
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

34
อยากจะทราบวิธี ขยาย Check Boxบนฟรอม คะ



ถ้าอยากให้ใหญ่ตามที่เราอยากได้ ใช้ Label มาสร้าง Checkbox ก็ได้ครับ
วิธีทำ
1 สร้าง Label ขึ้นมา ช่องใส่ข้อความ เคาะ space bar 1 ที ไม่ต้องใส่ข้อความ
2.ตั้งชื่อว่า lblCheck
3.จัดแนวข้อความกึ่งกลาง กำหนดขนาดตามต้องการ
4.ใส่ลักษณะพิเศษ แบบยุบตัว

กำหนดสถานะเมื่อ Click เราจะใช้ ChrW(&H2713) หรือ ChrW(&H2714) คือเครื่องหมายกาถูก
โดยเมื่อติ๊กถูกให้ checkbox ที่ชื่อ check1 = true ไปด้วย

Private Sub lblCheck_Click()
Call CheckboxDIY
End Sub

Sub CheckboxDIY()
  If Me.lblCheck.Caption = ChrW(&H2713) Then
    Me.lblCheck.Caption = vbNullString
    Me.Check1 = False
  Else
    Me.lblCheck.Caption = ChrW(&H2713)
    Me.Check1 = True
  End If
End Sub

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

35
คือเราใส่ข้อมูลบนฟรอมโดยทำเป็น combobox พอกดปุ่มบันทึก อยากให้แสดง ชื่อ
ที่เราทำได้มันแสดง รหัสประชาชน

เช่น tablename
   มี รหัสประชาชน   ชื่อ
        001           ABC

อยากให้ Msgbox แสดง ชื่อ
มี Combobox ชื่อ ComboboxName ผูกกับคอลัมน์หนึ่งไว้เพื่อจัดเก็บในตาราง คือรหัสประจำตัวประชาชน

กำหนด Msgbox แบบนี้ครับ

Msgbox Me.ComboboxName.Column(1)
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

36
พอดีมีเวลาและเห็นว่ามีหลายครั้งที่มีการถามถึงการสร้างฟอร์มล็อคอินและเมนู ผมเลยเขียนตัวอย่างขึ้นมาเอาไว้ให้เป็นแนวทางในการศึกษาครับ

ระบบมี 2 เทเบิลคือ tbUser ไว้เก็บ ID,รหัสผ่าน,และเมนูที่จะใช้ ในขณะที่อีกเทเบิล tbMenu จะเก็บว่าแต่ละเมนูมีโครงสร้างอย่างไร

ฟอร์มหลักๆคือ FmLogon เพื่อรับ ID และรหัสผ่านผู้ใช้ เมื่อป้อนถูกต้องแล้ว ระบบก็จะเปิดฟอร์ม FmMenu เพื่อแสดงเมนูของแต่ละคน เมื่อคลิกหรือเลื่อนมาที่แต่ละรายการในเมนู คำอธิบายของรายการนั้นจะแสดงที่กรอบด้านล่าง แต่ถ้าดับเบิลคลิก จะเป็นการเปิดหน้าฟอร์ม/รายงานของรายการนั้น พร้อมกับตัวเมนูจะถูกหดย่อลงไป และจะกลับมาแสดงโดยอัตโนมัติเมื่อปิดฟอร์ม/รายงานที่ได้เปิดไป หลังจากปิดเมนู ก็จะกลับมาเปิดฟอร์มล็อคอินอีกครั้ง  ส่วนฟอร์มและรายงานที่เหลือเป็นแค่ตัวอย่างเพื่อแสดงให้เห็นว่าฟอร์ม/รายงานนั้นได้เปิดจริงๆแล้วเท่านั้น

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

ปล. อย่าถามนะว่า login ID และรหัสผ่านมีอะไรบ้าง  :sweat:
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

37



ผมได้ลองสร้างระบบ ตอกบัตรของพนักงานในการเข้างาน มาให้ดูเป็นแนวทางคับ
1.ก่อนใช้งานให้ ใส่ รหัส Barcode ของพนักงานแต่ละคน ในตาราง tblEmployee ก่อนนะครับ ผมใส่ไว้ให้ 2 ไอดีคือ 01 และ 02
2.เมื่อเราแสกน Barcode โปรแกรมจะทำการ Enter อัตโนมัติ
3.ระบบจะบันทึกข้อมูลเข้าสู่ตารางทันทีถ้า Barcode นั้นมีอยู่จริง ถ้าไม่มีอยู่จะมีการแจ้งเตือนให้ครับ
4.รายละเอียดชื่อพนักงานและเวลาในการตอกบัตรนั้นจะแสดงขึ้นมาเมื่อแสกน Barcode ครับ และจะหายไปเองเมื่อครบ 5 วินาที
5.ผมได้สร้างนาฬิกา และ แสดงวันที่ เรียลไทม์ ไว้บนฟอร์มด้วย
6.โดยปกติ พนักงานอาจจะเผลอไปแสกน วันนึงหลายๆ ครั้ง แต่ผมได้สร้างคิวรี่ตรวจเช็คเวลาที่แสกนอันแรกสุดของวันมาแสดงให้ครับ
7.มีระบบสถานะแสดงไว้ให้ด้วยกรณีที่ผิดพลาดก็จะมีข้อความแสดงแจ้งเตือนใหักับพนักงานได้ทราบครับ

ลองดูนะครับ ไม่รู้ได้หรือเปล่า
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

38
ใช้การกำหนด Events ช่วยด้วยก็ได้คับ
สมมุติ textbox สุดท้ายที่กรอกข้อมูลชื่อ Text4 เสร็จ Cursor จะ Focus ที่ ปุ่ม Cmb_Save ทันทีครับ
และ พอครบ 5 วินาที มันจำเรียกใช้ คำสั่งบันทึกจาก  Cmb_Save_Click() ครับ ซึ่งปุ่มเซฟถ้ากดเองก็เซฟได้เหมือนกัน
หรือจะตั้ง 5 วินาทีแล้วบันทึกได้เหมือนกันคับ ตัวอย่างโค้ดด้านล่าง

Private Sub Cmb_Save_Click() 'คำสั่งจากปุ่มบันทึกที่มีอยู่แล้วถ้าเรากดบันทึกก็ได้เหมือนกัน
DoCmd.RunCommand acCmdSaveRecord
End Sub

Private Sub Text4_Exit(Cancel As Integer) เมื่อเสร็จการกรอกการทำงานบน textbox สุดท้าย
IF not isnull(Me.text1) And not isnull(Me.text2) And  not isnull(Me.text3) And  not isnull(Me.text4) Then 'เช็คว่ากรอกครบทุก textbox แล้วหรือไม่
Me.Cmb_Save.SetFocus
Dim OnTime As Date
OnTime = Now()
While DateDiff("s", OnTime, Now) < 6 'น้อยกว่า 6 อันสุดท้ายสุดคือ 5 วินั้นเอง
Wend

Call Cmb_Save_Click 'พอครบเงื่อนไขด้านบนจะเรียกคำสั่งบันทึกมาใช้งานคับ
End if
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

39
ผมสมมุติ ID = textbox ชื่อ ID  datatype เป็น Number
           วันที่ลง = textbox ชื่อ วันที่ลง               datatype เป็น DateAndTime

1.สร้าง Sub ขึ้นมาใส่โค้ดนี้เข้าไป
โค๊ด: [Select]
Sub AutoRunnumber()
Dim MaxNum As Integer
MaxNum = Nz(DMax("ID","tb_เลขจอง"))

If MaxNum = 0 Then
MaxNum = 1
Else
MaxNum = MaxNum + 1
End If
Me.ID = MaxNum
End Sub

2.กำหนด Event AfterUpdate ของ textbox  วันที่ลง  ดังนี้
Private Sub วันที่ลง_AfterUpdate()
If Not IsNull(Me.วันที่ลง) Then
Call AutoRunnumber
End If
End Sub

การใช้งาน
เมื่อเราระบุวันที่ ระบบจะสร้างลำดับขึ้นมาให้เราอัตโนมัติ ถึงเราจะลบ Record ทิ้งไป เมื่อเรากด เพิ่ม Record ใหม่ มันก็จะรันต่อจากเลขที่มากสุด มา + 1 เสมอครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

40
เปลี่ยนจาก Autorun เป็นเขียนมาโครขึ้นมาใช้เองแทนครับ
ตัวอย่างจากกระทู้นี้เลย > อยากได้ตัวอย่าง access การทำ running number แบบ ปี เดือน รันเลข 3 ตำแหน่ง มือใหม
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

41
ต้องใช้ฟอร์มกับคิวรี่ร่วมกันครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

หน้า: 1 2 [3]