ถ้าต้องการ คิวรี่ ข้อมูลตามนี้ครับ
กระทู้เก่าบอร์ด อ.Yeadram

 3,026   13
URL.หัวข้อ / URL
ถ้าต้องการ คิวรี่ ข้อมูลตามนี้ครับ

ตารางแรก 1 เรอคอร์ดเก็บรหัส10ตัว
ตารางที่สอง มีรหัสจากตารางแรกเป็นคีย์หลักใน1เรคอร์ดจะมีรายละเอียดของรหัส

ต้องการคิวรี่ รหัส10ตัวพร้อมข้อมูลจากตารางที่สอง ครับ(พอจะนึกภาพออกไหมครับ
คือหลังจากคิวรี่แล้ว ออกมามี10บรรทัด มีรหัสและรายละเอียดในแต่ละบรรทัดครับ)

ขอบคุณมากๆครับ

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

1 @R08849
สร้างคิวรี่ขึ้นมา จากนั้นนำตารางที่ 1 และ ตารางที่ 2 มา Join กัน ครับ
โดยให้ตางรางแรก อยู่ทางซ้าย และ ตารางที่สอง อยู่ ทางขวา จากนั้น
ให้ลากเส้นจาก Filed ในตางรางแรก ที่มีรหัส 10 ตัว ไปตารางที่สอง ที่ Field หลักเหมือนกัน จากนั้นให้ ดับเบิ้ลคลิกเลือกข้อมูลในตารางแรก คือ Field รหัส 10 ตัว และ ดับเบิ้ลคลิกเลือกข้อมูลที่มีรายละเอียดของรหัสในตารางที่สองลงมา จากนั้นกด รันข้อมูลครับ
2 @R08850
ลองแล้วจะมารายงานผลครับ ขอบคุณมากๆครับ
3 @R08851


ขึ้นดังภาพครับ
4 @R08852
คุณนัทต้องการดูข้อมูลอะไรครับ คุณ Join ข้อมูลแบบนั้นไม่ได้ครับ มันผิดหลักการของ การคิวรี่ข้อมูลครับ

คำถาม : ในตารางแรกด้านซ้ายมือของคุณนัท คุณใช้ Field อะไรเป็น Field หลักถ้าให้ผมเดาน่าจะเป็น Filed แรกที่ชื่อ ComputerID ใช่ไหมครับ ถ้าใช่ ให้คุณใช้แค่ Field นั้นแค่ Field เดียว พอ ครับ ส่วนข้อมูลก็ให้ดึงเอาจากตารางที่สอง (Stock) ด้านขวามือได้เลยครับ โดยให้ลากเส้นชี้ไปที่ Field ProductID ได้เลย หากต้องการดูข้อมูลทั้งหมดของ ตารางแรก (ComputerSet) ตอนลากเส้นให้ดับเบิ้ลคลิกที่เส้น จากนั้นให้เลือกคำสั่งที่ 2 ครับ ตามรูป

5 @R08853
ลืมบอกไปว่า ข้อมูลในตารางแรก กับตารางที่สอง คีย์หลัก ต้องเป็นข้อมูลชนิดเดียวกันด้วยนะครับ เช่นหากคุณกำหนด ให้คีย์หลัก (ComputerID) ในตารางแรก Data Type เป็น Text ข้อมูลในตารางที่สอง (ProductID) Data Type ก็ต้องเป็น Text เช่นเดียวกัน หรือถ้าเป็น Number ก็ต้องเป็น Number เหมือนกัน ไม่อย่างนั้นมันจะฟ้อง Error เหมือนที่คุณนัทเจอแบบเมื่อกี้

ส่วนคีย์หลักข้อมูลก็ต้องสัมพันธ์กันด้วยนะครับ เช่น ข้อมูลใน Filed ComputerID มีข้อมูล ComputerID เป็น 0001,0002,0003 ในตารางที่สอง Field ProductID มีข้อมูล ProductID เป็น 0002,0003,0004 เวลาเรา Jion ข้อมูลจาก ทั้งสองตาราง มันจะหาคีย์หลักที่มีข้อมูลใน Record เหมือนกัน ดังนั้น เมื่อเราคิวรี่ข้อมูล ก็จะได้ข้อมูลดังนี้คือ

หากคุณเลือกข้อมูล ComputerID กับ ProductID มาแสดงก็จะได้ข้อมูลเป็น
ComputerID      ProductID
0001                  
0002                 0002
0003                 0003

สังเกตุว่าจะ ไม่มี ProductID 0004 เนื่องจากเราใช้ข้อมูลจากตารางแรกเป็นหลักนั่นเอง (จากการเลือกข้อ 2 เงื่อนไขในการ Join ข้อมูลจากตาราง)

หากต้องการที่จะแสดงรายละเอียดอื่นๆ อีกเช่น ProductName ก็เลือกจากตารางที่สองมาแสดงได้เลย เนื่องจากข้อมูลจะถูกเก็บตาม Record

ComputerID      ProductID          ProductName
0001                  
0002                 0002                 AAA
0003                 0003                 BBB

ปล : อธิบายยาวไปหน่อยนะครับ แต่คิดว่าคุณนัทคงจะเพิ่งเริ่มหัดใช้ Access ดังนั้นเลยอยากอธิบายให้เข้าใจเนื่องจากการคิวรี่ข้อมูลเป็นส่วนสำคัญในการจัดการฐานข้อมูลรองจากการออกแบบฐานข้อมูลเลย
6 @R08861
ขอบคุณ คุณ Sak มากๆครับที่อธิบายละเอียดมากๆ

ถ้าผมต้องการให้คิวรี่แบบนี้ได้ไหมครับ

ComputerID      0001
CPUID               รหัส      ชื่อ      ราคา       ประกัน
RAMID               รหัส      ชื่อ      ราคา       ประกัน
.......ID               รหัส      ชื่อ      ราคา       ประกัน
.......ID               รหัส      ชื่อ      ราคา       ประกัน

ได้หรือไม่ครับ โดยที่ รหัส ชื่อ ราคา ประกัน มันเป็นรายละเอียดจะอยู่ในตาราง ที่2 ครับ

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

7 @R08862
ต้องถามว่าในตารางที่ 2 คุณ มี Field อะไรที่อ้างอิงกับ Field ในตารางที่ 1 ได้บ้างละ ครับ ถ้ามีก็ให้ ทำตามที่ผมบอกนั่นหละครับ อยากได้รายละเอียดอะไรก็ เลือกจากตารางที่ 2 ไง ครับ หากคุณ ไม่มี Field ใดๆ ในตาราง ที่ 2 ที่จะ อ้างอิง ในตารางที่ 1 ได้เลย มันก็ไม่สามารถคิวรี่อย่างที่ผมบอกได้หรอกครับ

ดังนั้น ปัญหา นี้ไม่ได้อยู่ที่การสร้างคิวรี่แล้วครับ แต่อยู่ที่คุณออกแบบตารางผิดหลัก หรือไม่ คุณก็ต้องหา คีย์หลัก จากตารางอื่นๆ แทนครับ แต่ที่คุณถามมาเหมือนจะมีแค่ 2 ตาราง

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

ยังไงลองส่งไฟล์ ต.ย. ไปที่ บอร์ด ก็ได้ครับ เดี๋ยวช่วยดูให้ จริงๆ คำถามนี้ไม่ได้ยากเลย เนื่องจากไม่มีการเขียน Code ใดๆ เลย

Mail :   accboard@gmail.com
User : accboard
Pass : accgmail


8 @R08865
ส่งไฟล์ ไปแล้วนะครับ คุณ Sak รบกวนด้วยครับ
9 @R08871
ผมส่งไฟล์ ต.ย. กลับไปให้แล้วครับ คุณออกแบบตารางไม่ถูกต้องครับ ทำให้ไม่สามารถคิวรี่ข้อมูลตามที่คุณต้องการได้ รายละเอียดผมอธิบายไว้ในเมลล์ ที่ส่งกลับไปแล้วนะครับ ลองศึกษาดูจาก ต.ย. ไฟล์ ที่ส่งคืนให้ ชื่อไฟล์ bbb_v2003.rar ครับ
10 @R08880
ผมลืมดูไปว่าในคิวรี่ต้องการ Field ไหนบ้างจึงได้ส่ง ต.ย. ไฟล์ไปให้ใหม่และได้สร้างความสัมพันธ์ของตารางให้ด้วยครับ
11 @R08881
ขอบคุณมากๆครับ ติดปัญหาตรงไหน ผมขอรบกวนอีกครั้งน่ะครับ ขอบคุณมากๆครับ
12 @R08882
ตามที่ผมดู คุณ Sak แนะแนวทางให้ผมทำการแยก ตารางComputer ออกเป็น 2 ตารางไว้เก็บข้อมูล และ อุปกรณ์ ใช่ไหมครับ

ส่วนตาราง tblEquipment นั้นผมเอาออกเพราะผมมีตาราง Type อยู่แล้ว (อาจจะไม่ได้ใช้ส่วนนี้ครับ)

ส่วนตารางสุดท้ายก็เก็บข้อมูลอุปกรณ์ สรุปคือ ให้เพิ่มตารางเอาไว้เชื่อมหากัน

แล้วผมควรทำยังไงในการอัพเดทรหัสคอมพิวเตอร์และรหัสอุปการณ์จากตาราง Detail ไป ComputerSet ครับ
13 @R08884
ผมยังไม่ค่อยเข้าใจงานของคุณนัท สักเท่าไร เนื่องจากคุณไม่ได้บอกรายละเอียดของงานคุณทั้งหมดผมจึงแนะแนวทางให้คุณนัทไปประยุกต์ใช้ต่อเอง หากคุณต้องการอัพเดทรหัสคอมพิวเตอร์และรหัสอุปกรณ์จากตาราง tblDetails ไปตาราง tblComputerSet ก็สร้างคิวรี่ Append เข้าไปสิครับโดยเลือกเฉพาะ Field ที่เราต้องการ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3574s