qryAuthor
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 235   3
URL.หัวข้อ / URL
qryAuthor

เรียนอาจารย์สุภาพและท่านผู้รู้ทุกท่านครับ

*************
คือผมสร้าง พารามิเตอร์คิวรี่ เพื่อต้องการค้นหาชื่อผู้แต่งหนังสือ ซึ่งมี SQL ดังนี้ครับ
SELECT tblPrint.Author
FROM tblPrint
WHERE (((tblPrint.Author) Like [กรอกชื่อที่ต้องการค้น] & "*"));
**************
คือผมต้องการเพิ่มฟิวด์อีก 2 ฟิลด์ในคิวรี่ ประกอบด้วย
1.ลำดับที่อัตโนมัติ เรียงลำดับ 1 2 3 ........ เท่าที่ปรากฏรายชื่อ
2.ผลรวมของ ชื่อเรื่องที่ผู้แต่งชื่อเดียวกันแต่ง เช่น อดิษร เพียงเกษ แต่ง 5 เรื่อง ก็ให้ ฟิลด์นี้ ปรากฏ เลข 5 และให้แสดง แค่แถวเดียว สำหรับชื่อที่ซ้ำกัน
ผมต้องออกแบบตารางเพิ่มเติมหรือเปล่าครับ ช่วยแนะนำด้วยครับ

ขอบคุณครับ

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

1 @R06128
สำหรับข้อ 1 จะทำใน Query ได้ก็ต่อเมื่อ มีฟีลด์ตัวหนึ่งเป็น ID แบบ แปลงเป็น ตัวเลขได้ หรือ เป็นฟีลด์วันที่ ที่จะสามารถมาทำเป็น SubQuery ได้

มีตัวอย่างให้ศึกษา โดยค้นด้วยคำว่า RunningNumber ดูครับ

แต่จะทำได้โดยไม่มีเงื่อนไขใดๆ ถ้าทำใน Report โดยกำหนดให้มีการ Sum Over Group ใน Control ที่สร้างขึ้นเอง แล้วกำหนด Control Source ให้เป็น 1
ลองค้นด้วยคำว่า Sum Over Group ดูครับ

สำหรับข้อ 2 ให้คลิกที่ปุ่ม Totals (Sigma) บน Toolbar เมื่ออยู่ใน Query Design view แล้วสั่งให้ Group By ตรงฟีลด์ Author แล้ว ลากฟีลด์ Author ลงมาอีก 1 ครั้ง แล้วสั่งให้ Count ตรง Total
2 @R06130
ขอบคุณครับอาจารย์สุภาพ
ผมจะศึกษาดูตามคำแนะนำครับ
3 @R06132
จากที่อาจารย์แนะนำครับ
ผมได้ลองศึกษาดูและผมรู้สึกว่าผลที่ได้ ยังไม่สมใจอยาก
คือฟิลด์ที่ผมใช้อ้างถึง เป็นข้อมูลแบบ text ซึ่งผมไม่สามารถทำให้แสดงผลได้ ผมก็เลยเปลี่ยนมาเป็นแบบ Number สามารถทำได้ระดับหนึ่งครับ
****
ผมไม่แน่ใจว่าที่ผมต้องการมันมีวิธีที่จะทำได้หรือเปล่า ก็เลยอยากรบกวนอาจารย์สุภาพแนะนำอีกครั้งในกระทู้นี้ครับ
(โค้ดมันอาจจะขัดๆกันเพราะผมไม่ค่อยจะรู้เรื่องก็เดาไปก่อนครับ)
** ตัวนี้ไม่ได้กดปุ่ม ซิกม่า ครับ ใช้ได้ครับ แต่
1. ฟิลด์ที่สร้างขึ้นใหม่จะไม่เรียงตามลำดับจริงของคิวรี่ จะเรียงตามลำดับจริงในตาราง เช่น เรียง
1
3
9
แทนที่จะเรียงเป็นลำดับ
1
2
3
2.Year ไม่แสดงข้อมูลครับ
SELECT (Select Count(*) From [tblPrint] as Temp Where [Temp].[InfID] < [tblPrint].[InfID]+1) AS No, tblPrint.Author, tblPrint.Author, tblPrint.Year
FROM tblPrint
WHERE (((tblPrint.Author) Like [Forms]![frmAllAuthorSearch]![txtAuSearch] & "*"));

**
ตัวนี้ใช้ไม่ได้เลยครับ กดปุ่ม ซิกม่าด้วย

SELECT (Select Count(*) From [tblPrint] as Temp Where [Temp].[InfID] < [tblPrint].[InfID]+1) AS No, tblPrint.Author, tblPrint.Author, tblPrint.Year
FROM tblPrint
GROUP BY (Select Count(*) From [tblPrint] as Temp Where [Temp].[InfID] < [tblPrint].[InfID]+1), tblPrint.Author, tblPrint.Author, tblPrint.Year
HAVING (((tblPrint.Author) Like [Forms]![frmAllAuthorSearch]![txtAuSearch] & "*"));


***********************

ขอบคุณครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0597s