แสดงกระทู้

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

หน้า: [1] 2
1
ขออภัยครับหายไปหลายวัน
คือผมใช้คำสั่ง นั้นล่ะครับ แต่สงสัยว่าเพราะรายงานไม่มี เลขที่หรือป่าว ระบบเลยปริ้นไม่ออก

If OP1.Value = -1 And rpSite.Value = "ALL" Then
    strCriteria = "[EmpYear] >= " & RpYearS & " and [EmpYear] <= " & RpYearE & " and [EmpMonth] >= " & RpMonthS & " and [EmpMonth] <= " & RpMonthE & " and [empday] >= " & RpDateS & " and [empday] <= " & RpDateE
    ElseIf OP1.Value = -1 Then
    strCriteria = "[Emp_Branch] = '" & rpSite.Value & "' and [EmpYear] >= " & RpYearS & " and [EmpYear] <= " & RpYearE & " and [EmpMonth] >= " & RpMonthS & " and [EmpMonth] <= " & RpMonthE & " and [empday] >= " & RpDateS & " and [empday] <= " & RpDateE
    ElseIf OP2.Value = -1 Then
    strCriteria = "[EMP_ID] = '" & rpIDEmp & "'"
End If
    strReport = "รายงานประจำวัน"
    docmd.OpenReport strReport, acViewReport, , strCriteria, acWindowNormal

2
ผมได้คำตอบแล้วครับ
คือ เอา Control Source ออกทั้งหมด ไว้ค่อย ใส่ค่าเข้าไปหลังจากกด OK ตรงปุ่มบันทึก

ขอบคุณครับ

3
ขอสอบถามหน่อยครับว่า
ปกติเวลาเราคีย์ข้อมุลหรือ เลือก combo box ค่าจะถูก update เข้า table จากการที่เราผู้ Datacontrol เอาไว้
ทีนี้ เมื่อใส่ข้อมูลทุกช่องครบแล้ว ข้อมูลก็จะเข้าตารางไปทั้งหมดโดยไม่ต้องมีการกดเซฟ
ถ้าผมต้องการทำปุ่มไว้ บันทึกไว้ด้านล่าง
หากมีการกรอกข้อมูลครบแล้ว และกด บันทึก จะมีหน้าต่างยืนยัน ผมตั้งปุ่มให้แสดง OK No Cancel เอาไว้
1. ถ้ากด No แล้วจะไม่ให้ค่าที่กรอกไว้ ถูกบันทึกเข้าตารางได้หรือป่าวครับ หรือว่าผมต้อง query เพื่อ ลบ record ทิ้ง
2. ถ้ากด Cancel แล้วให้กลับเข้ามาในหน้าที่กำลังกรอกข้อมูล เพื่อที่จะแก้ไขข้อมูลต่อ ต้องกำหนด เงื่อนไขยังไงครับ

4
อ๋ออออออออออออออออออออออออออออ ขอบคุณครับ

5
คือผมต้องการอ้างถึง control จาก from Login
โดย ผมกำหนดค่าตามนี้ครับ
         DoCmd.OpenForm "MainMenu"
         Forms![MainMenu]![txtLogin] = TempLogin
         Forms![MainMenu]![txtLoginName] = UserLoginName
         Forms![MainMenu]![AdminPage].Enable = False

ซึ่ง txtLogin กับ txtLoginName นั้นได้รับค่าปกติ
แต่ คำสั่ง Enable error ครับ เหมือน ไม่รอบรับคำสั่งนี้ ต้องเปลี่ยนวิธีการอ้างโค้ดยังไงครับ

6
หลังจากปิดฟอร์มเพิ่ม ผรม.ไป ให้ใช้คำสั่ง requery ตาราง ผรมครับ เช่น DoCmd.Requery "EmployeeList"

7
คือผมทำปุ่มคิวรี่จากหน้าฟอร์ม ให้ไปรันคิวรี่แล้วเปิด report เพื่อจะปริ้น
ซึ่งก็ preview หน้าที่ถูกต้องครับ
แต่พอกดสั่งปริ้น ดันปริ้นหน้า form ออกมาแทน เกิดจากอะไรได้บ้างครับ

8
แปลว่าแทนที่จะเอา table ไปสร้าง report ให้เอา table ไป ผ่าน Query ก่อนแล้วค่อยเปิดรายงาน โอเคครับ ได้แนวคิดแล้ว จะลองทำดู ขอบคุณครับ

9
สวัสดีครับ รบกวนอีกเรื่องครับ
คือว่า ตอนที่ออกรายงาน เราทำ Sum ไว้ตรง footer ของแต่ละ record ทีนี้ ถ้า record ใดที่ sum แล้วได้ 0 เราจะไม่โชว์ record นั้นได้หรือป่าวครับ

การออกรายงานจะเป็นการกำหนดช่วงวันที่ เช่น ดูรายงานวันที่ 1 - 7 (กำหนดเองได้) จากนั้นพอเปิดรายงานก็จะแสดงวันที่ ของแต่ละคน ในวันที่ 1 - 7 และทำการ sum ยอดไว้ด้านท้าย
แต่ไม่ต้องการให้คนที่ sum ได้ 0 มาแสดงบนรายงานครับ

10
อ้างถึง
Detele Query จะมีคำสั่งเป็น DELETE * FROM tbEmployeeOT WHERE ...ซึ่งมีเงื่อนไขเดียวกันกับใน Append Query... . SQL คุณบอกก่อนหน้านี้ว่า "พอ insert แล้ว insert ซ้ำ ข้อมูลจะเบิ้ล" ดังนั้นวิธีที่ผมแนะนำก็คือ ถ้าเผลอไปกด insert อีกรอบ ลบของที่บันทึกไปแล้ว

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

11
คือแบบนี้ครับ ผมเข้าใจว่า พี่ต้องการให้ผมลบก่อนที่จะ append ใหม่ ทีนี้ ที่ผมไปต่อไม่ถูกคือ ขอลำดับใหม่ก่อนนะครับ

1. กรองเลือกวันที่ จาก dbo_ViewTimeOTMonthlyมาแล้วใช้วิธี append ข้อมูลจาก tbEmployeeOTSummary ไปลงใน tbEmployeeOT
2. จากนั้นผมแก้เวลาใน tbEmployeeOT เป็นค่าที่ผมต้องการ
3. ผมต้องการนำค่าที่แก้ไขนี้ไปเก็บในตารางใหม่ ผมจึง append อีกรอบนึงไปใส่ในตารางที่ชื่อว่า tbEmployeeOTSummary ซึ่งเป็นที่เก็บข้อมุลที่เสร็จแล้วรวมๆกันแบบถาวร ซึ่ง เก็บไว้เป็นปีๆ เลยครับ จากนั้นก็ ลบข้อมูลใน tbEmployeeOT เพื่อที่จะรอการ กรองวันที่ครั้งใหม่ ซึ่งอาจจะซ้ำก็ได้
4. ถ้าซ้ำ ก็จะต้องไปลบข้อมูลใน tbEmployeeOTSummary ก่อน แล้วนำค่าใหม่ จาก tbEmployeeOT ไปใส่แทน

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

12
นี่คือสูตร Query ที่ใช้ลบค่าซ้ำครับ แต่เหมือนว่าจะลบเฉพาะบรรทัดที่ เลือกอยู่
DELETE tbEmployeeOTSummary.Emp_ID, tbEmployeeOTSummary.Emp_Date, tbEmployeeOTSummary.Emp_Timein, tbEmployeeOTSummary.Emp_Timeout
FROM tbEmployeeOTSummary
WHERE (((tbEmployeeOTSummary.Emp_ID)=[Forms]![FormEdit]![Emp_ID].[value]) AND ((tbEmployeeOTSummary.Emp_Date)=[Forms]![FormEdit]![Emp_Date].[value]) AND ((tbEmployeeOTSummary.Emp_Timein)=[Forms]![FormEdit]![Emp_Timein].[value]) AND ((tbEmployeeOTSummary.Emp_Timeout)=[Forms]![FormEdit]![Emp_Timeout].[value]));



13
ตอนนี้ลำดับเป็นแบบนี้ครับ
1. กำหนดช่วงวันที่ ที่ต้องการดุรายงาน กด Open form
2. Form query ข้อมูลโดยกรองตามวันที่ โดยวิธีการ Append ข้อมูลไปในตารางEdit
3. จากนั้นแก้ไข ตัวเลขให้เรียบร้อย และกดปุ่ม Finish
4. ปุ่ม finish กำหนด command ไว้ดังนี้
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "QEditFinish"  >> นำข้อมูลที่แก้แล้วในตารางEdit ไป append ลง ตาราง QFinish
    DoCmd.OpenQuery "QDelete"  >> ลบข้อมูลในตาราง Edit ออก
    DoCmd.SetWarnings True
    DoCmd.Close
5. จากนั้นทดสอบรันวันที่เดิม เพื่อตรวจสอบ
6. เมื่อกดปุ่ม finish รอบนี้ ระบบ มีข้อมูลซ้ำ คือ ชื่อคน และวันเวลาเดียวกัน อย่างละ 2 บรรทัด แต่ยอดการแก้ไขเงินไม่เหมือนกัน

ในขั้นตอนสุดท้ายตอนกด finish ผมจะต้องตรวจสอบข้อมูลใน table finish ยังไงครับว่า ถ้าวันเวลาซ้ำ ให้ทับไป ถ้าไม่มี ก็ให้ append ไป


14
1.พอดีตรง sql เนี่ย ระบบ ใส่ไว้ให้เองผมแก้ไม่ถูก 555+ เด๋วลองปรับดูครับ

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

15
อ๋อ ขอบคุณมากครับ ขออภัยที่เข้าใจผิด

16
ทำไมหัวข้อผมถึงโดนลบครับ เรื่องการ filter
นี่ link เดิม
www thai-access.com/forum/index.php?topic=44.0

17
ฟิวที่น่าจะจับว่าซ้ำกันคือ
รหัสพนักงาน วันที่ เวลาเข้า เวลาออก

18
ถ้า user เลือกวันที่ เดิม เช่น 1 - 7 มกราคม ไปแล้ว 1 ครั้ง แล้วก็มาปรับอีก โดยเลือกช่วงวันที่เดิม จากนั้นกด คิวรี่ วันที่ 1-7 ก็จะมี อย่างละ 2 ครับ

หน้า: [1] 2