سؤال

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

هل كانت مفيدة؟

المحلول

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

للتحكم في سلوك المفتاح ENTER هو خاصية عالمية.

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

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

نصائح أخرى

ويمكن أيضا أن يتم ذلك في VBA.

Application.GetOption "Move After Enter" 'get current setting
Application.SetOption "Move After Enter", 0 'don't move
Application.SetOption "Move After Enter", 1 'Next Field
Application.SetOption "Move After Enter", 2 'Next Record

http://www.pcreview.co.uk/forums/enter-kents-moving-next-field-t3454281.html

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

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

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

    '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
    

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

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

هناك خياران يمكنك متابعتي.

يمكنك صخرة مفتاح الدخول في Keydown / Keyup / كوائد
- أو -
يمكنك تصفية مصدر البيانات إلى سجل واحد تريده تحرير، وتعطيل إضافة سجلات جديدة من خلال هذا النموذج.

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

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

إذا ذهبت إلى خيارات الوصول في صفحة الملف، فانتقل إلى إعدادات العميل وسيسمح لك الإعداد الأول باختيار مكان تغيير التركيز عند الضغط على الإدخال. على الأقل في الوصول 2013.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top