สอบถามเรื่องการคิวรี้



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

19 มิ.ย. 62 , 09:25:12
อ่าน 459 ครั้ง

superdog

  • สมาชิกไท.Access
  • กระทู้: 3

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

สอบถามเรื่องการคิวรี้
« เมื่อ: 19 มิ.ย. 62 , 09:25:12 »
สวัสดีครับ ผมมือใหม่อยากทราบวิธีการ คิวรี้ คือ
1.คำนวณอายุการทำงานของนาย A ว่า กี่ปี กี่เดือน
2.ถ้าทำงานไม่ถึง1ปีให้โชวเป็นเดือนแทน หรือ ถ้าทำงาน28 เดือนให้ปัดขึ้นเป็น 2 ปี 4 เดือน อะไรแบบนี้ครับ

ขอบคุณล่วงหน้าครับ

 :smile: :smile: :smile:

 

19 มิ.ย. 62 , 10:00:09
ตอบกลับ #1

ปิ่นณรงค์

: สอบถามเรื่องการคิวรี้
« ตอบกลับ #1 เมื่อ: 19 มิ.ย. 62 , 10:00:09 »
ผมสมมุติ Field เก็บวันที่เริ่มทำงานของพนักงานชื่อ DateOfStartWork ตารางชื่อ Table1
ลองดูตัวอย่างนี้คับ
« แก้ไขครั้งสุดท้าย: 19 มิ.ย. 62 , 14:42:40 โดย ปิ่นณรงค์ »
:love: :grin:
 
โพสต์นี้ได้รับคำขอบคุณจาก: superdog

19 มิ.ย. 62 , 11:19:31
ตอบกลับ #2

superdog

  • สมาชิกไท.Access
  • กระทู้: 3

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

: สอบถามเรื่องการคิวรี้
« ตอบกลับ #2 เมื่อ: 19 มิ.ย. 62 , 11:19:31 »
ผมสมมุติ Field เก็บวันที่เริ่มทำงานของพนักงานชื่อ DateOfStartWork ตารางชื่อ Table1
ลองดูตัวอย่างนี้คับ

ได้แล้วครับขอบคุณมากๆครับ  :grin: :grin:

 

02 ก.ค. 62 , 09:13:23
ตอบกลับ #3

pim

  • สมาชิกไท.Access
  • กระทู้: 7

  • ขอบคุณ ไท.Access

    • ดูรายละเอียด

: สอบถามเรื่องการคิวรี้
« ตอบกลับ #3 เมื่อ: 02 ก.ค. 62 , 09:13:23 »
เรียน อ.ปิ่นณรงค์
ดิฉันโหลดไฟ Database18.zip ไปเปิดแล้ว
AVG แจ้งว่าพบ IDP.Generic ค่ะ

 

02 ก.ค. 62 , 09:19:23
ตอบกลับ #4

ปิ่นณรงค์

: สอบถามเรื่องการคิวรี้
« ตอบกลับ #4 เมื่อ: 02 ก.ค. 62 , 09:19:23 »
ถ้าอยากลองทำดู ลองดูขั้นตอนตามรูปนะครับ

ขั้นตอนที่ 1 สร้างตารางมา ชื่อ table1
ID ชนิดข้อมูลเป็น Autonumble
DateOfStartWork ชนิดข้อมูลเป็น  Date/Time


ขั้นตอนที่ 2 สร้าง Module ขึ้นมาเอาโค้ดไปใส่

โค๊ด: [Select]
Option Compare Database
Function Age(varDate As Variant) As Integer
   Dim varAge As Variant
   If IsNull(varDate) Then
   Age = 0
   Exit Function
  End If
   varAge = DateDiff("yyyy", varDate, Now)
   If Date < DateSerial(Year(Now), Month(varDate), Day(varDate)) Then
      varAge = varAge - 1
   End If
   Age = CInt(varAge)
End Function
Function AgeMonth(varDate As Variant) As Integer
   Dim varAge As Variant
   If IsNull(varDate) Then
  AgeMonth = 0
   Exit Function
  End If
   varAge = DateDiff("m", varDate, Now)
   AgeMonth = CInt(varAge Mod 12)
End Function

ขั้นตอนที่ 3 สร้างคิวรี่ เปลี่ยนมุมมองเป็น SQL เอาโค้ดนี้ไปใส่
โค๊ด: [Select]
SELECT Table1.DateOfStartWork, IIf(Age([DateOfStartWork])<>0,Age([DateOfStartWork]) & " ปี " & AgeMonth([DateOfStartWork]) & " เดือน",AgeMonth([DateOfStartWork]) & " เดือน") AS อายุงาน
FROM Table1;

:love: :grin:
 


บอร์ดเรียนรู้ Access สำหรับคนไทย