Access 2010 กับล้อเลื่อนเม้าส์
กระทู้เก่าบอร์ด อ.Yeadram

 3,542   11
URL.หัวข้อ / URL
Access 2010 กับล้อเลื่อนเม้าส์

คือว่า มีปัญหากับ Access 2010 กับล้อเลื่อนเม้าส์ค่ะ (ตัวปุ่มหมุนๆ ตรงกลางเม้าส์)

ปกติใช้ Access 2003 ใน Form หากอยากกด Next หรือ Previous เรคคอร์ส ถัดไป ก็แค่ หมุนลูกกลิ้งเม้าส์ ขึ้น ลง สะดวก สะบาย ง่ายที่สุด ไม่ต้องมานั่ง กด คลิก ๆ ๆ ทีละ คลิ๊ก

แต่พอมาเปิดใน 2010 ไม่สามารถ หมุน ๆ เพื่อ เลื่อน Record ได้แล้ว ทำให้ต้องคลิ๊ก ทีละ Record

(คือผู้ใช้มีความจำเป็นต้อง คลิก Next หรือ Previous อ่ะค่ะ ด้วยเนื่องเหตุผล นาๆ ประการของผู้ใช้)

พอจะมีวิธีทำตรงไหนไหมคะ

ขอบพระคุณมากๆ ค่ะ

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

1 @R11737
เขียน Function นี้ใน Module นะครับ เซฟชื่ออะไรก็ได้

Public Function DoMouseWheel(frm As Form, lngCount As Long) As Integer
On Error GoTo Err_Handler
    'Purpose:   Make the MouseWheel scroll in Form View in Access 2007.
    '           This code lets Access 2007 behave like older versions.
    'Return:    1 if moved forward a record, -1 if moved back a record, 0 if not moved.
    'Author:    Allen Browne, February 2007.
    'Usage:     In the MouseWheel event procedure of the form:
    '               Call DoMouseWheel(Me, Count)
    Dim strMsg As String
    'Run this only in Access 2007 and later, and only in Form view.
    If (Val(SysCmd(acSysCmdAccessVer)) >= 12#) And (frm.CurrentView = 1) And (lngCount <> 0&) Then
        'Save any edits before moving record.
        RunCommand acCmdSaveRecord
        'Move back a record if Count is negative, otherwise forward.
        RunCommand IIf(lngCount < 0&, acCmdRecordsGoToPrevious, acCmdRecordsGoToNext)
        DoMouseWheel = Sgn(lngCount)
    End If

Exit_Handler:
    Exit Function

Err_Handler:
    Select Case Err.Number
    Case 2046&                 'Can't move before first, after last, etc.
        Beep
    Case 3314&, 2101&, 2115&   'Can't save the current record.
        strMsg = "Cannot scroll to another record, as this one can't be saved."
        MsgBox strMsg, vbInformation, "Cannot scroll"
    Case Else
        strMsg = "Error " & Err.Number & ": " & Err.Description
        MsgBox strMsg, vbInformation, "Cannot scroll"
    End Select
    Resume Exit_Handler
End Function

เวลาใช้งาน ก็เข้าไปที่ออกแบบฟอร์ม ใน Event หัวข้อ On Mouse Wheel เขียนคำสั่งนี้ใน VBA

'Private Sub Form_MouseWheel(ByVal Page As Boolean, ByVal Count As Long)
    Call DoMouseWheel(Me, Count)
'End Sub
2 @R11738
ลืมบอกไปครับ ฟังก์ชั่นนี้ใช้กับฟอร์มที่เซ็ทเป็น Read Only ไม่ได้นะครับ
3 @R11739
แต่ถ้าจำเป็นต้องใช้กับฟอร์มประเภทที่เป็น Read Only แนะนำให้เซฟคำสั่งนี้เป็นอีกชื่อนึง แล้วตัดคำสั่งบรรทัดนี้ออก

RunCommand acCmdSaveRecord

ก็ใช้ได้ครับ
4 @R11740
เพราะถ้าไม่มีบรรทัดข้างบนนี้แล้ว ข้อมูลที่ถูกแก้ไขอาจไม่มีการบันทึกก่อนเปลี่ยนหน้าได้นะครับ
5 @R11741
ขอบคุณมากๆ เรยค่ะ ทำได้แล้ว

นึกว่าจะต้องกลับไปใช้ Access 2003 ซ๊ะแล้วค่ะ

ว่าแต่ Access 2003 กับ รุ่นใหม่ 2010 อันไหน น่าใช้กว่ากันหรอคะ

6 @R11745
ขอบคุณอาจารย์ TTT ที่กรุณาให้คำตอบ และ คุณมะหมิงที่ได้ตั้งกระทู้นี้นะคะ

หนูก็เจอปัญหานี้เช่นกัน แต่ก็ไม่ได้คิดอะไร ทำใจยอมรับ
แต่หากทำให้ใช้ลูกกลิ้งได้ ก็จะสะดวกและเกิดประโยชน์มากเลย

ตอนนี้ทำได้แล้วจากกระทู้นี้ค่ะ
7 @R11748
@มะหมิง ยินดีครับ 2003 กับ 2010 ไม่มีข้อมูลมากเท่าไรนะครับ เพราะถึงจะใช้ 2010 แต่ไฟล์ผมก็ยังใช้เป็นไฟล์ 2003 อยู่ ยังไม่เปลี่ยนไม่ได้เพราะใช้กันหลายเครื่อง แต่ของใหม่ก็น่าใช้อยู่แล้วครับ ดีไม่ดีค่อยว่ากัน แก้กันไป

@มาลี ยินดีครับ พอรู้ก็แชร์กันไปครับ ส่วนคำว่า อาจารย์ ผมยังห่างไกลมากครับ เรียก คุณก็ดีแล้วครับผม

8 @R11749
@TTT ขอบคุณ คุณ TTT มาก ๆ นะคะ ที่มาตอบให้มะหมิง จริงๆ ตอนนี้หมิงก็มี ของเก่าเป็น 2003 แต่เนื่องด้วย เล็งเห็นว่า รุ่นใหม่ออกมาเป็น 2007 และ 2010 แล้ว ก็เลยคิดว่า ไหน ๆ จะทำอะไรใหม่ๆ ทั้งที ก็จึงใช้กับ Version ใหม่ไปเลยค่ะ

@มาลี ดีใจด้วยที่กระทู้ของมะหมิงเป็นประโยชน์ สำหรับคนอื่นๆ ด้วยค่ะ
9 @R11780
เคยเจอปัญหานี้เหมือนกันครับ กับงานที่เขียนให้ลูกค้าไปเมื่อ หลายปีก่อน ตั้งแต่สมัยเรียน แต่ ลุกค้าบอกไม่เป็นไร แล้วตอนนั้นผมก็ยุ่งกับงานที่บริษัท เลยไม่มีเวลาใส่ใจ
ขอบคุณครับ

ว่าแต่ใครพอจะทราบไหมครับ ว่า สาเหตุมันคืออะไร?
10 @R11856
@ PichaiTC
In Access 2003 and earlier, scrolling the mouse jumped records. This caused a range of problems: incomplete records were saved, and people were confused about why their record disappeared when they bumped the mouse. Some developers completely disabled the mouse wheel.

11 @R11857
ผมก็เห็นด้วยนะครับที่รุ่นใหม่ปิดการใช้งาน mouse wheel ไป เนื่องจากผมเห็นว่ามันทำให้ข้อมูลที่เรา Bound ไว้กับฟอร์ม เกิดการผิดพลาดได้หากผู้ใช้เผลอไปโดน mouse wheel เข้าให้อย่างที่คุณ TTT ได้หาคำตอบมาให้ในข้างต้น ....
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.1812s