แสดงกระทู้

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
17
ล็อคแล้วคะ แต่ไม่สามารถ รับค่าจากเครื่องอ่านบัตรได้

น่าจะต้องสร้าง textbox 2 ตัวนะครับ
ตัวแรกไว้รับค่าจากเครื่องแสกน (เอาไปแอบๆไว้)ครับ ชื่อ txtfromscan
ตัวต่อมาคือตัวที่แสดงบนฟอร์มชื่อ txtPersonalID สถานะ Locked = true นะครับ

แนวทางคือรับค่าจาก txtfromscan  แล้วมาแสดงที่ txtPersonalID ที่มีสถานะ Locked ครับ
โค้ด
Private Sub Command6_Click()
Me.txtFromScan.SetFocus  'โค้ดที่ปุ่มเพื่อรับข้อมูลใหม่
End Sub

Private Sub txtFromScan_AfterUpdate() 'หลังจากเสียบบัตรแสกนแล้ว Cursor วิ่งไป textbox ต่อไปให้แสดงเลขประชาชนใน textbox ชื่อ txtPersonalID
Dim StrPersonalID 'สร้างตัวแปรเก็บรหัสประชาชน
If Not IsNull(Me.txtFromScan) Then
StrPersonalID = Me.txtFromScan
If Len(StrPersonalID) = 13 Then 'ใช้ Len เช็คว่าตัวเลขครบ 13 หลักหรือไม่ ถ้าไม่ใช่เราจะไม่แสดงรหัสประชาชน
Me.txtPersonalID = StrPersonalID
Else
MsgBox "รหัสประจำตัวประชาชนไม่ถูกต้อง", vbInformation, "แจ้งเตือน!!"
End If
End If
End Sub

Private Sub txtFromScan_GotFocus()
Me.txtFromScan = Null 'กำหนดให้เมื่อ Cursor ชี้ที่ textbox นี้ให้เป็นค่าว่างรอรับรหัสประชาชนใหม่
End Sub

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

18
ห้อง MS Access / : Combo box Date picker
« เมื่อ: 03 ก.ค. 63 , 22:37:11 »
ผมได้ทำฟอร์มตัวอย่างแสดงการเลือก Date Picker ตามลักษณะที่ต้องการ โดยมีการตรวจสอบความถูกต้องของวันที่ระหว่างการเลือก แต่ผมไม่การันตีว่าจะตรวจสอบได้ถูกต้อง 100% หรือมีที่ผิดพลาดที่ไหนหรือไม่นะครับ ลองดูรายละเอียดการทำงานใน comment ภายในโค้ดที่ผมได้เขียนอธิบายไว้แล้วครับ

แก้บัก : ใน Private Sub cbMonth_AfterUpdate() บรรทัดต่อจาก Case 2 ให้แก้เป็น If Me.cbDay >= 29 Then
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

19
ไม่แน่ใจว่าใกล้เคียงที่ต้องการหรือไม่ มีตัวอย่างล็อคอินผู้ใช้แล้วแสดงเมนูเฉพาะของตนเองครับ https://www.thai-access.com/index.php?topic=932.0 แต่ทุกคนที่ใช้ฟอร์มนั้นๆได้ จะมีสิทธิ์เท่ากันทุกอย่าง ถ้าจะกำหนดว่าผู้ใช้คนนี้จะทำอะไรได้บ้างในหน้าฟอร์มนั้นๆ เช่น ดูได้อย่างเดียว หรือแก้ไขได้ด้วย แนะนำว่าเพิ่มเทเบิลของกลุ่มผู้ใช้ซึ่งจะเก็บว่ากลุ่มนี้มีใครบ้าง (คนนึงสามารถอยู่ได้หลายๆกลุ่ม) และเพิ่มเทเบิลสิทธิ์ของกลุ่มนี้ที่มีต่อฟอร์มนั้นๆว่า กลุ่มนี้เมื่อใช้ฟอร์มนั้นแล้ว จะมีสิทธิ์ชื่อว่าอะไรบ้าง เช่น ชื่อสิทธิ์ว่า "AE" (หมายถึง Add และ Edit ได้)   เมื่อเปิดฟอร์มที่ใช้งานขึ้นมา ก็เขียนโค้ดหาจากเทเบิลว่านาย ก. อยู่กลุ่มผู้ใช้ไหนบ้าง และรวมแต่ละกลุ่มที่พบแล้ว นาย ก. มีสิทธิ์รวมทั้งสิ้นอะไรที่ใช้กับฟอร์มนั้นได้บ้าง เมื่อฟอร์มจะทำการรับการป้อนเรคอร์ดใหม่ ก็ตรวจเลยว่าถ้าไม่มีสิทธิ์ A ก็ไม่ให้ทำ อย่างนี้เป็นต้นครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

20
ต้องใช้ 7-Zip แยกไฟล์ ตอนนี้สามารถเปิดไฟล์ตัวอย่างได้แล้วค่ะอาจารย์
ขอขอบคุณ @Maki ด้วยนะคะ
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

21
รบกวนขอไฟล์ตัวอย่างไว้ศึกษาเพื่อเป็นความรู้ค่ะ
ไฟล์ตัวอย่างที่คุณ Maki โพสไว้นั้น โหลดไปแล้วเปิดไม่ได้ค่ะ(ไฟล์เสีย)
ใช้ โปรแกรม 7-Zip แตกไฟล์ครับ

https://www.7-zip.org/ link
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

22
รบกวนขอไฟล์ตัวอย่างไว้ศึกษาเพื่อเป็นความรู้ค่ะ
ไฟล์ตัวอย่างที่คุณ Maki โพสไว้นั้น โหลดไปแล้วเปิดไม่ได้ค่ะ(ไฟล์เสีย)
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

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

24
หนูใช้เครื่องอ่านบัตร กับโปรแกรม Siam id รับค่าลง Access ได้ปกติ
(ลงใน textbox)
แต่ เลขประชาชน 13 หลักจะเข้ามาแบบ 1 2222 33333 11 1จะมีเว้นวรรค
อยากให้มันมาแบบ ติดๆกัน 1222233333111 แบบนี้คะ พอมีวิธีบ้างไหม

ตั้งค่าจากเครื่องผมไม่ทราบนะครับ รออาจารย์ท่านอื่นมาเสริม

แต่ถ้าแก้แบบง่ายๆ คือสรา้งตัวแปลมาเก็บค่า และแก้ไขก่อนให้แสดงบน textbox ชื่อ txtPersonalID เช่น
Dim strPersonalID as string
strPersonalID = ค่าที่มาจากเครื่องแสกน
strPersonalID = Replace([strPersonalID]," ","")
txtPersonalID = strPersonalID

หรือวิธีอื่นๆ เช่นใช้คิวรี่ก็ใส่ Replace([strPersonalID]," ","") ได้เลยครับ

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

25
ลืมบอกไป กรณีใส่ตัวอักษรต่อท้ายบ้านเลขที่เดียวกัน ให้เพิ่มค่า N ต่อท้ายการเรียงลำดับอีกที

select * from T order by val(replace(N,"/",".")), N
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

26
ถ้า T เป็นชื่อเทเบิล และ N เป็นเลขที่บ้าน ก็ต้องสร้างคิวรี่เพื่อเรียงข้อมูลดังนี้

select * from T order by val(replace(N,"/","."))

หลักการคือเปลี่ยน / เป็นจุดทศนิยมแทน แล้วตีความเป็นค่าตัวเลข ดังนั้น 1/1 ก็กลายเป็น 1.1 แล้วการเรียงก็จะเป็นตามที่ต้องการ  แต่ใช้ไม่ได้กับบ้านที่มีตัวอักษรซึ่งผมไม่แน่ใจว่าจะมีประเภท 123ก, 123ข หรือเปล่า แต่ถ้ามี ระบบอาจเลือกตัวไหนขึ้นมาแสดงก่อนก็ได้ เพราะตีค่าเป็น 123 เหมือนๆกัน
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

27
เท่าที่ลองดู ถ้ากำหนด Text Format property ของเท็กซ์บ็อกซ์เป็น Rich Text มันจะแสดงได้ในโหมด Print Preview ซึ่งเป็นภาพจริงที่จะเกิดตอนพิมพ์ ผมลองพิมพ์ไปเป็น pdf ไฟล์ ก็เห็นจัดให้ครับ แต่ถ้าไม่กำหนด มันจะไม่จัดให้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

28
กำหนดรูปแบบวันที่ของ text2 เพิ่มเข้าไปตามตัวอย่างครับ
โค๊ด: [Select]
=[text1] & Format([Text2]," d mmmm yyyy")
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

29
Concept ผมเดาว่าคงต้องการเก็บพิกัดบ้านหรือตำแหน่งสถานที่จาก google map แบบลากหบนแผนที่า แล้วจิกเอาพิกัดไปเก็บใช่ไหมครับ
ใช้ Object Web Browser มาวางลงใน Form แล้วสั่ง Navigate ส่งค่าให้โดยตรงเลย
จะได้รูปแบบเว็บบราวเซอร์ในฟอร์ม โดยไม่ต้องเปิดหน้าต่างใหม่
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

30
จากกระทู้56 คือชี้ตำแหน่งใน map ได้พิกัด  ในทางกลับกันที่ผมกระทู้คือ ถ้ามีข้อมูลพิกัดของลูกค้าอยู่ใน table แล้ว  เอาพิกัดไป POT ใน google map ดึงพิกัดไปจาก table ไปปักมุด

ผมกำลัง หาวิธีการใหม่โดยใช้ Web Browser เข้ามาช่วยในการเปิดแผนที่ ตามพิกัสที่ระบุ และใช้การเก็บตำแหน่ง ลัด ลอง ด้วยกำลังลองทำดูอยู่นะครับ
ผมก็ไม่เคยทำเหมือนกันกำลังหาวิธีอยู่ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

31
จากกระทู้56 คือชี้ตำแหน่งใน map ได้พิกัด  ในทางกลับกันที่ผมกระทู้คือ ถ้ามีข้อมูลพิกัดของลูกค้าอยู่ใน table แล้ว  เอาพิกัดไป POT ใน google map ดึงพิกัดไปจาก table ไปปักมุด 
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

32
เดี่ยวผมลองสร้างตัวอย่างให้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

หน้า: 1 [2] 3