หน้าจอแสดงตารางรถ,เครื่องบิน
กระทู้เก่าบอร์ด อ.Yeadram

 1,761   9
URL.หัวข้อ / URL
หน้าจอแสดงตารางรถ,เครื่องบิน

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

1.แสดงข้อมูล Update รถที่ยังไม่ถึงเวลาออก ทุก 10 วินาที
2.รายการ รถ มีหลายหน้า จะทำอย่างไรให้แสดงหน้าที่ 1 จบแล้วแสดงหน้าที่ 2 ต่อไปจนครบ (โดยอัตโนมัติ)

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

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

1 @R04921
1) การสั่งให้ทำงานทุกๆกี่วินาที ลองดูหลักการได้จากถาม-ตอบในกระทู้นี้ http://www.thai-access.com/yeadram_view.php?topic_id=1128

2) คำว่า "หน้าที่1" "หน้าที่2" มันหมายถึงอย่างไร ต้องอธิบายให้ละเอียด ตามที่คุณออกแบบไว้ คุณใช้อะไรเป็นตัวแบ่งแยกหน้า เอาภาพมาโพสให้ดูด้วยก็จะดี
2 @R04924
ขอบคุณครับ

หน้าที่ 1 และหน้าที่ 2 .....
หมายถึงว่า มีตารางรถที่จะต้องออกประมาณ 200 รายการครับ
แสดงผลรายการที่หน้าจอ ทำได้ไม่ครบในครั้งเดียว
เหมือน Report ที่มีหลายหน้าน่ะครับ ต้องการให้เลื่อนไปหน้าที่ 2,3,....

ขอบคุณครับ
3 @R04929
เราสามารถใช้การส่งค่าคีย์ Page Down เพื่อจำลองการกดคีย์ Page Down ให้ข้อมูลชุดต่อไปแสดงบนหน้าจอได้ ส่วนการเช็คว่ามันแสดงทุกหน้าหรือยัง ก็เช็คจากที่ว่าเรคอร์ดแรกในหน้า + จำนวนเรคอร์ดที่แสดงได้ มันมากกว่า จำนวนเรคอร์ดทั้งหมดหรือยัง

โค้ดโดยรวมก็จะมีแนวทางเป็นอย่างนี้

Const REC_PER_PAGE = 8 ' จำนวนบรรทัดที่สามารถแสดงได้ต่อครั้ง คุณไปปรับเปลี่ยนตรงนี้เอาเอง
Dim T As Variant    ' จำนวนเรคอร์ดทั้งหมด

Private Sub Form_Open(Cancel As Integer)
    Dim RS As DAO.Recordset
    
    Set RS = Me.RecordsetClone
    If RS.RecordCount > 0 Then
        RS.MoveLast
        T = RS.RecordCount
    Else
        T = 0
    End If
    RS.Close: Set RS = Nothing
End Sub

Private Sub Form_Timer()
    If Me.Recordset.AbsolutePosition + REC_PER_PAGE > T Then
        DoCmd.GoToRecord acDataForm, "ชื่อฟอร์ม", acFirst
    Else
        SendKeys "{PGDN}", True
    End If
End Sub

หมาเหตุ : ค่าของ AbsolutePosition เริ่มจาก 0


4 @R04930
ขอบคุณมากคับ
5 @R04942
โค้ดเขียนไม่ถูกไปบางจุด แม้ทำงานได้ แต่เปลี่ยนเป็นอันนใหม่ดีกว่าเพื่อให้เหมาะสม

Dim T As Variant เปลี่ยนเป็น Dim T As Long

If RS.RecordCount > 0 Then เปลี่ยนเป็น If Not RS.EOF Then
6 @R04972
ชอบตรงที่ใช้

SendKeys "{PGDN}", True

เพราะไม่เคยนึกถึงจริง ๆ มีประโยชน์มากครับ

ขอบคุณมากครับอาจารย์
7 @R04992
อาจารย์สันติสุขครับผมเห็นเรื่อง sendkey เลยอยากถามครับว่าถ้าอยาก sendkey ปุ่ม ctrl+' ต้องเขียนอย่างไรครับทำไม่เป็น
8 @R04993
เครื่องหมาย + แทนการกด Shift, ^ แทนการกด Ctrl, % แทนการกด Alt, ตัวอักษรหรือตัวเลข ก็แทนตัวนั้นๆ   ดังนั้น Ctrl + ' (single quote) ก็ใช้คำสั่ง SendKeys "^'", True ครับ
9 @R04994
อาจารย์ครับผมลองหามาตั้งนานแล้วครับผมในหนังสือมักอธิบายเรื่องการใช้ sendkey แค่บางส่วนครับ ขอบคุณอีกครั้งครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3545s