แสดงกระทู้

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

หน้า: [1]
1
อ้างถึง
แต่ในชุดข้อมูลของผม ไม่มีอายุ 1 -5 ปีครับ 
แต่พอกรองข้อมูลแล้ว มันก็ยังขึ้นข้อมูลอื่นที่ อายุ มากกว่า 1 - 5 ปี

ลองอธิบายการกรองข้อมูลมานิดนึงนะครับ ว่าผิดตรงไหน

ที่ Criteria ของ Query ลองใส่ไปว่า  Between 1 and 5 
เพื่อให้ได้ อายุระหว่าง 1 ถึง 5 ปี

อีกอย่างหนึ่งที่เกิดขึ้นได้กับการกรอง
คือ Field อายุที่คุณกรองอยู่นั้น Datatype เป็น text ทำให้การกรองผิดพลาดได้ครับ
วิธีแก้คือใช้ Cint() แปลงเป็นตัวเลขก่อนแล้วใช้ Criteria ของ Query


สมมุติ Field Age คือ fieldอายุ datatype ไม่ใช่ตัวเลข
ตารางใช้กรองชื่อ table1

sql ก็ประมาณนี้

SELECT * FROM Table1 WHERE (((CInt([Age])) Between 1 And 5));

ข้อมูลในตาราง table1 จะแสดงทุกฟิลล์ และจะกรองฟิลล์อายุ ช่วง 1-5  หรือช่วงอายุที่เราต้องการให้เราครับ
โพสต์นี้ได้รับคำขอบคุณจาก: tanuki

2
google ค้น is null isnull iif อ่านแป้บ ทำความเข้าใจ เดี๋ยวก็ได้
โพสต์นี้ได้รับคำขอบคุณจาก: tanuki

3
เราสั่งให้มันตรวจตรงวันเกิดก่อนว่าถ้าว่างไม่ต้องใช้สูตร iif aฟิลด์วันเกิด =is null="",สูตรคำนวณอายุ
โพสต์นี้ได้รับคำขอบคุณจาก: tanuki

4
บอกตรงๆ แล้วอย่าโกรธกันนะครับ

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

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

5
ขออนุญาตแขร์ความรู้หน่อยนะครับ

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

ถ้าระบบเดิมเป็นการตอกบัตร พอหน่อนเครื่องตอกบัตรปุ๊บ เค้าก็เห็นเวลาในบัตรตอก

แต่ถ้าเป็นระบบสแกนบัตรหรือลายนิ้วมือ เค้าอาจเห็นข้อความในหน้าจอว่าเค้าลงเวลาแล้ว
ปัญหาคือความไม่มั่นใจว่าเมื่อกี้อ่านว่าอะไรนะ ขอซ้ำอีกที (อ่านครั้งแรกรู้แล้ว แต่อยากอีก)

ดังนั้นปัญหานี้จะเกิดแน่นอน

สิ่งที่เขาจัดการกับปัญหานี้คือ

ถ้าเป็นการเข้างาน เขาจะหยิบเวลาเร็วสุดในแต่ละวัน

ถ้าเป็นเวลาออกงาน เขาจะหยิบเวลาหลังสุดในแต่ละวันครับ

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

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

เช็คจาก บาร์โค้ด และ วันที่ปัจจุบันบน textbox วันที่ Date()ก็ได้ครับ

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

โดย เช่น If not isnull(dlookup("Barcode","tblMain","Barcode = " & me.txtBarcode & " AND [Current_Date] = #" & Forms!frmMain!txtDate & "#")) then
Msgbox "มีการลงทะเบียนแล้ว"
Me.txtBarcode.setfocus
Me.txtbarcode = null
else
........... ทำเงื่อนไขเดิมที่มี
end if

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

7
เรามีชุดข้อมูล
100      100
90         90
80         80
70         70
60         60
50         50
40         40
30         30
20        20
10         10

นายA    นายฺB
จะมีขั้นให้เลื่อน ได้ 1 - 3 ขั้น
เริ่มจากรอบแรก ประเมินนาย A ถ้าได้ 1 ขั้น
นายA ก็จะได้ 1
รอบสอง นายA ได้ 3 ขั้น ก็จะ+เพิ่มของเก่าที่มีอยุ่ 10 ไปอีก 3ขั้น จะเป็น 40
ทำแบบนี้ไปเลื่อยๆครับ

การเลื่อนขั้นแต่ละครั้งทำบนฟอร์มไหม

ใช้ Dmax Field เลขของขั้น แยกตาม IDของคน พอได้มาแล้ว ก็นำมา + กับจำนวนขั้นที่ได้เพิ่ม ก็จะได้จำนวนขั้นปัจจุบันแล้วครับ
ผมไม่แน่ใจว่าเวลาคุณเก็บ จำนวนขั้น เก็บแบบ 1 2 3 4 5 6 7 8 9 10 หรือเปล่า จะเก็บแบบ 10 20 30 40 50 60 70 80 90
คุณได้มีการเก็บวันที่จะการได้รับการเลื่อนขั้นด้วยหรือไม่ ?

ถ้าแบบแรกสร้างฟอร์ม
มี textbox       txtNewStep ระบุขั้นปัจจุบัน
   combobox   CmbID        เก็บ ID และ ชื่อของผู้ได้รับการเลื่อนขั้น
   textbox       txttotalStep  เก็บจำนวนขั้นล่าสุด
ถ้าแบบง่ายๆ เลยสาย DIY

Dim A as integer
A = Dmax("Field ขั้น","จากตารางไหน","ID = " & Me.CmbID & "") *10  สมมุติว่ามีอยู่ 2 ขั้น A จะ เท่ากับ 20
ต่อไป A = A + (Me.txtNewStep * 10)   ถ้า txtNewStep ระบุว่า 3 ก็จะเป็น 20 + 30 = 50 เป็นต้น
txttotalStep = A

ผมยังไม่เข้าใจโจทย์เท่าไรครับ ว่าคุณต้องการทำแบบตัวอย่างข้างบนหรือแบบ  Running Total กันแน่

ถ้าแบบ Running Total ข้อมูลจะประมาณนี้
https://theaccessbuddy.wordpress.com/2014/05/04/using-ms-access-to-create-a-running-total-or-a-cumulative-sum-part-1-of-2/
โพสต์นี้ได้รับคำขอบคุณจาก: tanuki

8
ทำคล้ายวันลา อาศัยฟอร์มและคิวรี่ร่วมกัน  https://www.thai-access.com/index.php?action=dlattach;topic=775.0;attach=705
โพสต์นี้ได้รับคำขอบคุณจาก: tanuki

9
ถ้าเป็นบรรทัดเดียว จะไม่จัดให้ไม่ว่าไทยหรืออังกฤษ (ทดลองใน Microsoft Word ก็ไม่ทำให้เหมือนกันนะครับ) แต่ถ้าหลายบรรทัด จะจัดให้
โพสต์นี้ได้รับคำขอบคุณจาก: tanuki

หน้า: [1]