Top value เวลา random
กระทู้เก่าบอร์ด อ.Yeadram

 1,124   5
URL.หัวข้อ / URL
Top value เวลา random

ทำการส่มคำศัพท์ ของ ม.4 ทีนี้สอน ม.อื่นๆ ด้วย ขี้เกียจคัดลอกวางคิวรี่แล้วเข้ามากำหนดในคิวรี่ อยากได้คำสั่งตรง where เพื่อให้เราพิมพ์ว่าจะสุ่มสอบกี่คำครับ ตอนนี้ผมทำคิวรี่ของ ม.4 มี 10 คำ 15 คำ และ 20 คำ 3 คิวรี่

SELECT TOP 15 [4].unit, [4].words
FROM 4
WHERE ((([4].unit)=[ระบุบทที่]) AND (([4].note) Is Null))
ORDER BY Rnd([id]) DESC;

ขอบคุณครับ

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

1 @R18817
อาจต้องใช้การเขียนโค๊ดช่วย ยกตัวอย่างแล้วปรับใช้ดูนะครับ

- สร้างฟอร์มเปล่าขึ้นมาใหม่
- สร้างปุ่มขึ้นมา 1 ปุ่ม ใส่โค๊ดใน Event > On Click:

    Dim db As DAO.Database
    Dim Qdf As QueryDef
    Dim strSQL As String
    Dim Top_N As Integer, Table_N As String
On Error GoTo Err_Input
    Top_N = InputBox("จำนวนการสุ่ม", "ตัวเลข")
    Table_N = InputBox("ชื่อตารางเป้าหมาย", "ตัวอักษร")
    Set db = CurrentDb
    
    If Nz(DLookup("Name", "MsysObjects", "[Name] = '" & "QryTemp" & "'"), "") <> "" Then
            DoCmd.Close acQuery, "QryTemp"
            db.QueryDefs.Delete "QryTemp"
    End If

    strSQL = "SELECT TOP " & Top_N & " [" & Table_N & "].* FROM [" & Table_N & "] ORDER BY Rnd(" & Table_N & ".ID_av);"
    Set Qdf = db.CreateQueryDef("QryTemp", strSQL)
    db.QueryDefs.Refresh
    DoCmd.OpenQuery "QryTemp"
    Qdf.Close: Set Qdf = Nothing
    db.Close: Set db = Nothing
Exit_Exit:
    Exit Sub
Err_Input:
    MsgBox "การใส่ค่าของคุณผิดพลาด", , "Error"
    Resume Exit_Exit

- จากนั้นเมื่อคลิ๊กที่ปุ่ม จะมี Inputbox ใส่ตัวเลขจำนวนที่ต้องการสุ่ม เช่น 10 คำ ก็ใส่เลข
10
- Inputbox ตัวที่สอง ให้ใส่ชื่อตารางว่าจากตารางไหน เช่น Table3 ก็ใส่
Table3

- จากนั้นโปรแกรมก็จะสร้างคิวรี่ชื่อ qryTemp ไว้ใช้งานต่อไป
- ถ้ากดใหม่ qryTemp ก็จะเปลี่ยนตามค่าใหม่เสมอ

ลองปรับใช้ดู โดยคุณอาจไม่ใช้เป็น inputbox จะใช้เป็น Listbox combobox บนฟอร์มแทนอะไรก็ตามชอบครับ
2 @R18821
แก้บรรทัดนี้

strSQL = "SELECT TOP " & Top_N & " [" & Table_N & "].* FROM [" & Table_N & "] ORDER BY Rnd(" & Table_N & ".ID_av);"

แก้ไขบรรทัดนี้ ID_av เป็น ID

strSQL = "SELECT TOP " & Top_N & " [" & Table_N & "].* FROM [" & Table_N & "] ORDER BY Rnd(" & Table_N & ".ID);"
3 @R18826
ขอบคุณครับ ผมทำพัฒนาใช้ไปเรื่อยๆ ครับ ว่างๆ จะมารายงานว่าใช้แอคเซสทำอะไรไปแล้วบ้างครับ.
4 @R21460
เพิ่มเงื่อนไขเข้าไปคล้ายคิวรี่เดิม
ปรับปรุงตารางใหม่
ตารางเก่า


ตารางใหม่หลังจากได้คำตอบ

5 @R21461
แก้ไขภาพตารางที่ได้หลังจากได้คำตอบ

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