กระทู้เก่าบอร์ด อ.Yeadram
1,239 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;
ขอบคุณครับ
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
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);"
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
แก้ไขภาพตารางที่ได้หลังจากได้คำตอบ

Time: 0.5192s
- สร้างฟอร์มเปล่าขึ้นมาใหม่
- สร้างปุ่มขึ้นมา 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 บนฟอร์มแทนอะไรก็ตามชอบครับ