แสดงกระทู้

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 ... 15 16 17 [18] 19 20 21 ... 32
307
Truck Owner 1-10 คือฟิลล์ที่อยู่ใน tblTruck_Imp เหมือนกับ truck no 1 หรือเปล่าครับ
หรือ อยู่ในตารางอื่นๆ อธิบายเพิ่มหน่อยหรือมีภาพด้วยก็ดี
โพสต์นี้ได้รับคำขอบคุณจาก: pattan0013

308
วิธีนี้ใช้ Union Query นะครับ โดยจับกลุ่ม Jobno ตาม Truck No 1 - 10 ที่มี โดยถ้าเป็นช่องว่างๆ ไม่มีข้อมูลก็จะไม่นำมาแสดง
ตัวอย่างโค้ด
โค๊ด: [Select]
select Jobno,[truck no 1] as TruckNo from tbltruck_imp WHERE [truck no 1] IS NOT NULL
Union
Select Jobno,[truck no 2] from tbltruck_imp WHERE [truck no 2] IS NOT NULL
Union
Select Jobno,[truck no 3] from tbltruck_imp WHERE [truck no 3] IS NOT NULL
Union
Select Jobno,[truck no N] from tbltruck_imp WHERE [truck no [N] IS NOT NULL;
์N คือ Field TruckNo N ที่มี ต่อลงมาเรื่อยๆ
เราจะได้ผลลัพธ์ ตามคิวรี่ชื่อ
UnionTruck_Imp


อ้างถึง
TruckNo นี้ใช้ใน JobNo อะไรบ้าง?
ที่ตัวรายงาน เราใช้การจัดกลุ่ม และใช้  TruckNo เป็น HeadGroup
และนำ Jobno มาวางไว้ในส่วน Detail เพื่อแสดง JobNo ตาม TruckNo ครับ

อ้างถึง
Truck นี้ใช้งานกี่งาน??
เมื่อได้คิวรี่ Union แล้วก็ใช้การ Count เพื่อนับจำนวนของ JobNo โดยลำดับตาม TruckNo ที่มี
โค๊ด: [Select]
SELECT UnionTruck_Imp.TruckNo, Count(UnionTruck_Imp.Jobno) AS จำนวนงาน
FROM UnionTruck_Imp
GROUP BY UnionTruck_Imp.TruckNo;
ลองดูการแสดงผลจากตัวอย่างนะครับ ถ้าต้องการแสดงแบบไหนอีกจะทำตัวอย่างให้ดูเน้อ :cool:

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

309
UNION QUERY เพื่อจับกลุ่ม Truck 1 ถึง 10 ครับ และ JopNo
ตัวอย่างเดี่ยวทำให้ดูเน้อ
โพสต์นี้ได้รับคำขอบคุณจาก: pattan0013

310
ขอคำแนะนำวิธีป้องกัน ฟิวด์ ที่เป็นเลขที่ซ้ำกัน
อธิบายเพิ่มหน่อยครับ ป้องกันการซ้ำกันของตัวเลขในฟิลล์ หรือ ป้องกันไม่ให้แก้ไขข้อมูล หรืออะไร ?
โพสต์นี้ได้รับคำขอบคุณจาก: MR.Vinai Wetvithayaklung

311
ใช้การกำหนด  SourceObject เช่น
crosstabquery คือชื่อคิวรี่ที่เป็น crosstabquery
ชื่อฟอร์มหลักชื่อ Main
ชื่อฟอร์มย่อย Subform

Dim QueryName As String
QueryName = "Query." & "crosstabquery"
Forms("Main").Form.Subform.SourceObject = QueryName

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


โพสต์นี้ได้รับคำขอบคุณจาก: พิชญะ ชัยชนะ

312
 DoCmd.MoveSize 20000, 0, 0, 0

ลองปรับขนาดของตัวเลขดูครับอาจจะแก้เป็น 30,000 แบบนี้
 DoCmd.MoveSize 30000, 0, 0, 0
อีกอย่างที่คอมพิวเตอร์เครื่องหลักจอได้เช็ตได้แสดง 2 หน้าจอหรือยังครับ
โพสต์นี้ได้รับคำขอบคุณจาก: ittiphol

313
ตัวอย่างลองเทสดูครับ
มีฟอร์ม 2 ฟอร์ม
โค้ดอยู่ใน Module นะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: ittiphol

314
ลองศึกษาโค้ดนี้เพิ่มเติมจาก อาจารย์นะครับ

https://www.thai-access.com/index.php?topic=590.0
โพสต์นี้ได้รับคำขอบคุณจาก: ittiphol

315
ไม่แน่ใจแบบนี้ไหมนะครับ
เวลาจะดูข้อมูล จะกำหนดวันที่มาทำงานก่อน

ปล.จากฐานข้อมูลแนะนำให้ทำ ข้อมูลทั้ง In และ Out ให้อยู่แถวเดียวกันเพื่อไม่ให้เกิดปัญหาครับลองดูตัวอย่างการสร้างจาก
https://www.youtube.com/watch?v=aLpeCWOYmDU  ระบบบันทึกเวลาเข้าออก ของอาจารย์ TTT


หรือถ้าสร้าง ตารางแยกจากกันแบบในตัวอย่างของผม(ลองเลียนแบบจากชุดข้อมูลของคุณ Maki

ควรสร้าง ID หลักไว้ 1 อันไว้เพื่อใช้ในการ อ้างอิงความสัมพันธ์ของข้อมูล In กับ Out อันนี้ลองไปคิดดูว่าสร้างจากส่วนไหนได้บ้าง
เช่น เมื่อแสกนเข้าให้เก็บ ช่วงเวร และ ID อาจจะใช้ จากวันที่เริ่มทำงาน + กับ รหัสพนักงาน เช่น วันเดือนปี-รหัสพนักงาน ตัวอย่าง 01012563-001 เป็นต้น
มาทำ ID เพื่อต้องการให้ ID ทั้ง In และ Out คืออันเดียวกัน

ถ้ากรณีที่มี 2 ตาราง คือตารางIN และ ตาราง Out

ในตาราง In
           ID            ชื่อ              วันที่มา       เวลามา   ช่วงกะ
เช่น 01012020-001  /   นายก   / 01/01/2563 /  16.30 / บ่าย
ในตาราง Out
             ID            ชื่อ              วันที่ออก       เวลาออก   ช่วงกะ
เช่น 01012020-001  /   นายก   / 02/02/2563 /  08.30 / บ่าย

โดยกำหนดให้เมื่อถึงเวลาออกจากการทำงานที่เป็นเวรบ่ายคือ 08.30
เรากำหนดให้ ID = Right("00" & Trim(Str(Day(Date()))-1),2)+Right("00" & Trim(Str(Month(Date()))),2) & Trim(Str(Year(Date()))) & "-" & EmpID จะได้วันที่เดียวกับ วันที่มา ก็จะได้ ID เดียวกันนั้นเอง

แต่ถ้าเป็นเวรเช้า 
เรากำหนดให้ ID = Right("00" & Trim(Str(Day(Date()))),2)+Right("00" & Trim(Str(Month(Date()))),2) & Trim(Str(Year(Date()))) & "-" & EmpID  ได้เลยเพราะอยู่ในวันเดียวกัน


ข้อมูลทั้ง 2 ส่วนนี้ก็จะเชื่อมกันได้จาก ตารางOut.ID   Join กับ  ตารางIn.ID ได้เลย
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

316
อาจารย์คะ หนูบอกความต้องการผิดค่ะ  :ouch: :ouch:

ที่ต้องการคือ ถ้า txttime มากกว่า 9.00 Am แต่ไม่เกิน 1.00 Pm then
รบกวนอาจารย์อีกครั้งนะคะ  :cry: :cry:

If  TimeValue(Me.txttime) > #9:00 AM#  and TimeValue(Me.txttime) < #1:00 PM# then

หรือ If  TimeValue(Me.txttime) >= #9:00 AM#  and TimeValue(Me.txttime) <= #1:00 PM# then
กรณีที่นับรวม 9 โมงเช้า กับ บ่ายโมงด้วย
โพสต์นี้ได้รับคำขอบคุณจาก: MAKI

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


OFFICE ที่ใช้ Version เดียวกับตัวอื่นๆ ไหมครับ ถ้าไม่ใช่ใช้ Version อะไรอยู่ SP ?
ใช่ตัว Microsoft Office 2010 Service Pack 1 (SP1) หรือเปล่าเพราะถ้าเวอร์ชั่นนี้จะเกิดปัญหา

ลองแจ้ง Windows OS ว่ากี่บิท
ใช้ Microsoft Office Version ไหน
และ Service Pack อะไรนะครับ จะได้แนะนำต่อได้
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

318
ล็อคแล้วคะ แต่ไม่สามารถ รับค่าจากเครื่องอ่านบัตรได้

น่าจะต้องสร้าง 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

319
ลองดูครับแบบนี้ไหม


วิธีการคือสร้าง textbox แล้วตั้งค่าตามภาพครับ

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

320
ผมไม่ได้ใช้ SQL Server ให้ชัวร์สอบถามอาจารย์สันติสุขตรงส่วนนี้ดีกว่าครับ


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

321
ทำได้แล้วค่ะ ขอบคุณมากๆนะคะ

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

322
ลองเปิดฟอร์มที่ชื่อ MIn ดูนะครับ
ผมใช้วิธีสร้าง combobox ซ้อน Combobox โดยเราจะเลือกรายการจาก Combobox Unbound เมื่่อเลือกแล้วให้ข้อมูลไปแสดงที่ Combobox หลัก ครับ
โดยใช้ Event Gotfocus กับ afterupdate ผมส่งไฟล์ให้แล้วลองดูนะครับ

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

323
ลองดูตัวอย่างนี้นะครับ
โค๊ด: [Select]
Private Sub txt_district_AfterUpdate()
Dim Strprovince, Stramphur, Strdistrict As String
Strprovince = Replace(Replace(Replace(Me.txt_province, "จังหวัด", ""), "จ.", ""), "กรุงเทพฯ", "กรุงเทพมหานคร")
Stramphur = Replace(Replace(Replace(Me.txt_amphur, "อำเภอ", ""), "เขต", ""), "อ.", "")
Strdistrict = Replace(Replace(Replace(Me.txt_district, "แขวง", ""), "ตำบล", ""), "ต.", "")

    Me.txt_zipcode = DLookup("post_code", "DATA", "district_th= '" & Strdistrict & "' AND amphur_TH = '" & Stramphur & "' and Province_th = '" & Strprovince & "'")
End Sub

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

324
ห้อง MS Access / : ฟอร์ม เพิ่ม ดู แก้ใข
« เมื่อ: 25 มิ.ย. 63 , 13:02:55 »


อ้างถึง
ที่เป็นฟอร์มแบบ ไม่เชื่อมตารางหรือคิวรี่  ครับ    โดยใช้ฟอร์มเดียวกัน ครับ

สามารถสร้างได้ แบบหลายมากตามความต้องการแนวใครใครมันไม่เหมือนกันหรอกครับ อยู่ทีการออกแบบฟอร์มของแต่ละคน
ส่วนการสร้างฟอร์มแบบไม่เชื่อมตารางหรือคิวรี่ คงหมายถึงฟอร์มแบบ Unbound Control ใช่ไหม
               โดยอาจจะใช้การ Dlookup มาแสดง กรณีค้นหา หรือ ต้องการดึงข้อมูลมาแก้ไข (อาจจะสร้าง textbox การในค้นหา หรืออื่นๆ
               ใช้การ Addnew หรือ Append Query กรณีต้องการเพิ่มข้อมูลใหม่
               ใช้การ Edit หรือ ใช้ Update Query ในกรณีแก้ไขข้อมูลเป็นต้น
               กรณีต้องการยกเลิกการแสดงข้อมูลโดยไม่บันทึก ก็อาจจะสร้าง โค้ดไว้ล้างข้อมูลที่กรอกลงไป ทั้งหมดก็ได้
               กรณีต้องการลบข้อมูลเก่าทิ้ง อาจจะใช้ Delete Query หรือโค้ดในการลบระเบียน ที่ต้องการ

ถ้าไม่ถนัดเขียนโค้ด ก็สามารถสร้างฟอร์มที่อยากได้ แล้วมีปุ่มต่างๆ ที่ต้องการแล้วส่ง Inbox มาผมจะใส่โค้ดให้ได้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: thanapol.w

หน้า: 1 ... 15 16 17 [18] 19 20 21 ... 32