Code DCount นับค่าซ้ำ
กระทู้เก่าบอร์ด อ.Yeadram

 3,269   7
URL.หัวข้อ / URL
Code DCount นับค่าซ้ำ

ที่คิวรี่ชื่อQ1 มีฟิลด์ชื่อA1,A2,A3 มีข้อมูลดังนี้
A1     A2     A3
101   B
101             B
102             C
103   C
104   C

ถ้าหนูเขียนคำสั่งดังนี้ DCount("[A1]","[Q1]") บนรายงาน
จะได้ค่า 5
คำตอบที่ต้องการคือ 4 (หมายถึง 101 มันซ้ำจะต้องนับเพียง 1 เท่านั้น)
คำถาม จะต้องเขียน Code อย่างไรคะ
ขอบคุณค่ะ

7 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R18264
Group query Q1 ที่ Field A1 ก่อนครับ

จะทำให้ Field A1 แสดงผลโดยไม่มีค่าซ้ำครับ
2 @R18265
ทำGroup query Q1 ที่ Field A1 ไม่ได้เพระข้อมูลที่ A2 และ A3 จะหายค่ะ

ก่อนทำGroup query Q1 ที่ Field A1ข้อมูลเป็นดังนี้
A1     A2     A3
101   B
101   D        B
102             C
103   C
104   C

หลังทำGroup query Q1 ที่ Field A1 ข้อมูลเป็นดังนี้
A1     A2     A3
101   B        B
102             C
103   C
104   C

ข้อมูล D ที่ A2 จะหายไป
ซึ่งไม่ตรงกับสิ่งที่ต้องการ เพราะข้อมูลที่ A2,A3 จะนำไปใช้อีกค่ะ
สิ่งที่ต้องการคือไม่ต้องปรับแต่ง Q1 อีกแล้ว
แต่ให้เขียน Code ดึงข้อมูลใน Q1 มาประมวลผล
หนูควรเขียน Code อย่างไร ให้ได้ผลตามกระทู้ที่ตั้งค่ะ
ขอบคุณค่ะ
3 @R18266
ก็สร้างอีกคิวรี่เพื่อcountอย่างเดียวก็ได้
4 @R18267
หนูก็สร้างอีกคิวรี่เพื่อcountอย่างเดียวอยู่แล้วค่ะ
แต่อยากทราบทางเลือกอื่นที่สามารถเขียน Code ได้ใหมคะ(ในกรณีที่สร้างคิวรี่เดียว)
ขอบคุณทุกคำแนะนำค่ะ
5 @R18268
ลองเข้า SQL View ใน Query แล้วเพิ่มคำสั่ง SELECT DISTINCT ดูได้ไหมครับ
เช่น
SELECT DISTINCT
LastName
FROM Employees;
แล้วค่อยมา Dcount อีกทีหนึ่ง
6 @R18269
อื่ม! จะตัวอย่างของคุณ
- จากคำแนะนำของคุณ Tide และ คุณ iBasskung โดยให้ใช้ลักษณะของการแสดงข้อมูลซ้ำเพียงเรคคอร์ดเดียวไม่ว่าจะเป็นการทำ Group by หรือ Distinct
- จากคำแนะนำของคุณ . ให้ทำคิวรี่อีกตัว

ผมขอสรุปคำแนะนำให้ทุกท่านให้น่าจะได้ประมาณนี้นะครับคุณ น้ำค้าง

ลองสร้างคิวรี่ Q1 ใหม่ดังนี้ สมมุติชื่อตาราง Table1

SELECT A1, A2, A3, (SELECT Count(*) FROM (SELECT DISTINCT A1 FROM Table1)) AS [Count]
FROM Table1;

คุณจะได้คิวรี่ที่มีฟิลด์ชื่อ Count โดยจะได้การนับจำนวนแบบที่ต้องการไปใช้ใน รายงาน โดยการใช้ซับคิวรี่ และการใช้คำสั่ง Distinct
ปรับใช้ดูครับ
7 @R18273
จากคำตอบของ อ.TTT หนูเอาไปลองใช้แล้ว
ผลออกมาได้ตามที่ต้องการตามโจทย์ในกระทู้นี้เลยค่ะ
เป็นกรณีศึกษา ทางเลือกได้อีกทางหนึ่งของการเขียน Code
ขอบคุณทุกคำแนะนำค่ะ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3006s