ms-access - هل تريد منع الانتقال إلى السجل التالي عند النقر على إنتر؟




3 Answers

تؤثر خاصية دورة فقط على المفتاح تاب.

للتحكم في سلوك مفتاح إنتر هذا خاصية عامة.

انتقل إلى أدوات / خيارات - علامة التبويب لوحة المفاتيح وعلى "نقل بعد إدخال" حدد "الحقل التالي"

هناك أحداث كيبريس و كيدون التي يمكنك استخدامها لفخ مفتاح إنتر أيضا ولكن هذا المزيد من العمل.

لدي نموذج في أسيس 2003 يجب أن يعمل فقط مع سجل واحد. يمكنني تعيين الخاصية Cycle إلى Current Record ، ولكن النموذج لا يزال يقفز إلى السجل التالي عند الضغط على إنتر. كان فكرتي الأولى هي خاصية KeyPreview ، لكنني لا أرى واحدة. فكرتي الأخرى هي ربما حدث KeyUp أو KeyUp ، لكني ظننت أنني أسأل في حالة العواقب غير المقصودة. أيه أفكار؟




يتم الضغط على مفاتيح لحظة مثل تاب ، ألت ، بغوب ، بد ، إنتر في نهاية إضافة السجل (بعد الحقل الأخير في الغالب)، وقاعدة البيانات السيارات يحفظ كل المعلومات التي أدخلتها على النموذج ويمسح الحقول حتى يتسنى لك يمكن إدخال القيمة التالية. لذلك ما يحدث هو أن يتم حفظ البيانات ولكن الشكل يبدو فارغا.

3 أشياء للقيام بها:

  1. نموذج دورة الملكية تعيين إلى السجل الحالي.
  2. نموذج معاينة رئيسية تم تعيين الخاصية إلى نعم.
  3. إضافة التعليمات البرمجية التالية إلى الحدث كيدون في النموذج:

    '33 - PgUp; 34 - PgDown; 9 - Tab; 18=Alt; 13=Enter
    
    Select Case KeyCode
    Case 33, 34, 18, 9, 13
    KeyCode = 0    
    Case Else
    'Debug.Print KeyCode, Shift
    End Select

    لقد وجدت هذا بينما تجوب شبكة الإنترنت ولا تأخذ الائتمان / المسؤولية عن رمز ولكن لا أعرف أين وجدت ذلك. تناسبني!




يمكنك إضافة رمز أدناه إلى نموذج "بيفوروديت" الحدث. إذا كان استخدام تريد الانتقال إلى السجل التالي، وسوف يطلب من المستخدم لحفظ ثم إغلاق النموذج قبل أن يتمكنوا من الانتقال إلى سجل آخر.

  Private Sub Form_BeforeUpdate(Cancel As Integer)
    Select Case MsgBox("Save?", vbYesNo)
      Case vbYes
        DoCmd.Close
      Case vbNo
        Cancel = True
    End Select
  End Sub



Related