ครูที่ปรึกษาหลายคนกับชื่อนักเรียน1คน



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

28 ม.ค. 63 , 16:11:19
อ่าน 169 ครั้ง

SakDa

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

  • ขอบคุณ ไท.Access

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

ดูจากกระทู้เก่า
"- ตารางนักเรียนไม่ต้องมี FatherID, MotherID ก็ได้(มี [ID] เป็น PK)
- ตารางผู้ปกครอง เพิ่ม StudentID เข้าไป(มี [StudentID] และ [ParentID] เป็น PK)
- เชื่อมความสัมพันธ์ระหว่าง [ตารางนักเรียน]![ID] <--> [ตารางผู้ปกครอง]![StudentID]
- สร้าง Main Form จาก ตารางนักเรียน และ Sub Form จาก ตารางผู้ปกครอง คุณก็จะสามารถ
เก็บข้อมูลของนักเรียน และผู้ปกครองได้พร้อมๆกัน"
มีตารางนักเรียน student มี stud_code stud_class และ มีตารางครูที่ปรึกษา adviser มี adviser_code, stud_class ที่ปรึกษามี 1 คน 2 คน 3 คน 4 คน แต่ละห้องไม่เท่ากัน ที่นี้ อยากจะให้แสดงข้อมูลบรรทัดเดียวกัน ตรงคิวรี หรือ รายงานก็ได้ครับ เช่น
รหัสนักเรียน 59001 รหัสห้อง 2/1 ครูที่ปรึกษา adviser_code คนที่ 1 (ชื่อ),adviser_code คนที่ 2 (ชื่อ), adviser_code คนที่ 1 (ชื่อ) แบบนี้ครับ

 

29 ม.ค. 63 , 20:08:30
ตอบกลับ #1

PNR

: ครูที่ปรึกษาหลายคนกับชื่อนักเรียน1คน
« ตอบกลับ #1 เมื่อ: 29 ม.ค. 63 , 20:08:30 »
ทำแบบไหนดีนะ  :sweat: :sweat:
ลองใช้คิวรี่แบบ Cross Tab หรือยังครับ
« แก้ไขครั้งสุดท้าย: 30 ม.ค. 63 , 08:14:56 โดย PNR »
:meaw: :grin: :shout:
 
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

30 ม.ค. 63 , 13:47:14
ตอบกลับ #2

SakDa

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

  • ขอบคุณ ไท.Access

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

: ครูที่ปรึกษาหลายคนกับชื่อนักเรียน1คน
« ตอบกลับ #2 เมื่อ: 30 ม.ค. 63 , 13:47:14 »
กำลังทำตามครับ ลบหลายคิวรี่แล้ว ยังไม่โชว์ชื่อครบ ทั้ง value row column ลองๆสลับกันดู ยังไม่สำเร็จ ออกชื่อครูที่ปรึกษาไม่ครบ

 

30 ม.ค. 63 , 14:02:03
ตอบกลับ #3

PNR

: ครูที่ปรึกษาหลายคนกับชื่อนักเรียน1คน
« ตอบกลับ #3 เมื่อ: 30 ม.ค. 63 , 14:02:03 »
กำลังทำตามครับ ลบหลายคิวรี่แล้ว ยังไม่โชว์ชื่อครบ ทั้ง value row column ลองๆสลับกันดู ยังไม่สำเร็จ ออกชื่อครูที่ปรึกษาไม่ครบ

ส่งฐานข้อมูลที่มี student และ ตารางที่มี adviser มาครับ
ผมทำให้ดู
:meaw: :grin: :shout:
 
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

31 ม.ค. 63 , 08:38:07
ตอบกลับ #4

SakDa

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

  • ขอบคุณ ไท.Access

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

: ครูที่ปรึกษาหลายคนกับชื่อนักเรียน1คน
« ตอบกลับ #4 เมื่อ: 31 ม.ค. 63 , 08:38:07 »
TRANSFORM First(studAdviser.adviserName) AS FirstOfadviserName
SELECT studAdviser.code, studAdviser.fname, First(studAdviser.adviserName) AS [Total Of adviserName]
FROM studAdviser
GROUP BY studAdviser.code, studAdviser.fname
PIVOT studAdviser.teacode;

 

31 ม.ค. 63 , 11:33:15
ตอบกลับ #5

PNR

: ครูที่ปรึกษาหลายคนกับชื่อนักเรียน1คน
« ตอบกลับ #5 เมื่อ: 31 ม.ค. 63 , 11:33:15 »
ผมสมมุติตาราง 2 ตารางคือ ตารางรายละเอียดนักเรียนชื่อ tblstudent มี ข้อมูลตามภาพ


ตารางที่สองเป็นตารางรายละเอียดคุณครู ชื่อ tblAdviser


ต่อมาสร้างคิวรี่ชื่อว่า QryMakeDATA เพื่อรวบรวมรายละเอียดที่จะนำไปสร้างโดยใช้ โค้ด
โค๊ด: [Select]
SELECT tblStudent.Stud_Code, tblStudent.Stud_Name, tblAdviser.Adviser_Name
FROM tblStudent LEFT JOIN tblAdviser ON tblStudent.Stud_Class = tblAdviser.Adviser_Class;

สร้างตารางเพื่อไว้เก็บข้อมูลที่ผ่านการสร้างใหม่ขึ้นมาแล้วผมให้ชื่อว่า tblResult
โดย มี 2 field ดังนี้
Column1 ชนิดข้อมูลเป็น text
Column2 ชนิดข้อมูลเป็น text


ที่ฟอร์มสร้างปุ่มขึ้นมา 1 ปุ่ม Event Click ใส่ข้อมูลดังนี้

โค๊ด: [Select]
Private Sub Makedatatotable_Click()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim rstOut As DAO.Recordset
Dim strStud_Code As String
Dim strAdviser_Name As String
Set db = CurrentDb()
Set rst = db.OpenRecordset("QryMakeDATA", dbOpenDynaset)

If Not rst.BOF And Not rst.EOF Then
  rst.MoveFirst
  strStud_Code = rst!Stud_Code
  strAdviser_Name = rst!Adviser_Name
 
  rst.MoveNext
   
  Do Until rst.EOF
    If strStud_Code = rst!Stud_Code Then
      strAdviser_Name = strAdviser_Name & ", " & rst!Adviser_Name
    Else
    Set db = CurrentDb()
    Set rstOut = db.OpenRecordset("tblResult", dbOpenDynaset)
    rstOut.AddNew
    rstOut!Column1 = strStud_Code
    rstOut!Column2 = strAdviser_Name
    rstOut.Update
       
      strStud_Code = rst!Stud_Code
      strAdviser_Name = rst!Adviser_Name
        rstOut.Close
        db.Close   
    End If
    rst.MoveNext
  Loop
    Set db = CurrentDb()
    Set rstOut = db.OpenRecordset("tblResult", dbOpenDynaset)
    rstOut.AddNew
    rstOut!Column1 = strStud_Code
    rstOut!Column2 = strAdviser_Name
    rstOut.Update       
      strStud_Code = rstOut!Column1
      strAdviser_Name = rstOut!Column2 
    rstOut.Close
    db.Close
   MsgBox "ออกข้อมูลเรียบร้อย", vbInformation, "แจ้งเตือน"
End If
Set rst = Nothing
Set db = Nothing
Set rstOut = Nothing
End Sub

ตัวอย่างข้อมูลที่ได้ครับ


ข้อมูลเหล่านี้สามารถไปสร้างเป็นรายงานได้เลยครับ
« แก้ไขครั้งสุดท้าย: 31 ม.ค. 63 , 15:45:09 โดย PNR »
:meaw: :grin: :shout:
 
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa


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


 

Sitemap 1 2 3 4 5