ms-access - نموذج - عمل قائمة منسدلة تعتمد على قائمة أخرى



الحصول على سجلات 65K المدرجة فقط في مربع التحرير والسرد من جدول 155K السجلات (7)

65536 هو في الواقع الحد لعدد من عناصر كومبوكس.

أود أن أقترح استخدام مربع نص مع زر البحث للعثور على شخص من القائمة بدلا من استخدام مربع التحرير والسرد في هذه الحالة.

كبديل يمكنك تحميل العناصر ديناميكيا تعتمد من النص إدراجها.

يمكنك أيضا محاولة "بريفيلتر" الخاص بك كومبوكس عبر قيمة دخلت سابقا في النموذج الخاص بك للحصول على عدد السجلات التي تم إرجاعها إلى الحد الأقصى المسموح به. على سبيل المثال، إذا كان جدولك يحتوي على أسماء وعناوين بقيمة 100000، فسيتعين عليك إدخال المستخدم (قبل استخدام مربع التخصيص) الرمز البريدي أو الحالة التي سيتم استخدامها لتصفية عدد السجلات التي يرجع إليها استعلام مربع البحث الخاص بمصدر السجل.

@ ستيفن أ. لوي وأمدفان: هل تعرف ما هو مربع تمويه ولماذا يسمى مربع التحرير والسرد؟ انها مربع نص جنبا إلى جنب مع مربع القائمة. اكتب نصا ويعرض مربع القائمة الإدخالات الأولى التي تطابق النص.

لذا، أعتقد أن ھذا سؤال مشروع.

لدي جدول من السجلات 155K. لا أستطيع التمرير سوى 65K السجلات في مربع التحرير والسرد من نموذج وجود سجل مع الاستعلام أو سكل، واختيار ثلاثة حقول من هذا الجدول. لماذا لا يتم سرد كافة السجلات 155K حتى الاستعلام، والذي أستخدمه كمصدر السجلات، يظهر كافة السجلات خارج النموذج.


Answer #1

ربما مؤشر البند هو عدد صحيح 16 بت

سيكون السؤال الأفضل، هل تتوقع حقا للمستخدم التمرير من خلال 155 ألف العناصر في مربع تمرير؟


Answer #2

لذلك ما كنت تبحث عنه هو أكثر وظيفة "الإكمال التلقائي"، مثل ما هو مبين في متصفحات الإنترنت؟ عندما تقول مربع التحرير والسرد، الجميع صور المنسدلة حيث يختار المستخدم عنصر - قد ترغب في توضيح سؤالك.


Answer #3

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


Answer #4

فإنه من الصعب استخدام في العالم الحقيقي، وسجلات التخزين مخزن 155k أعتقد أنه إذا تغييره إلى [...] زر تصفح أو غيرها من السيطرة أنا سهلة الاستخدام أكثر من هذه الطريقة


Answer #5

ليس من الصعب جدا إنشاء مجموعة مربع نص وصندوق قائمة حيث ريكريد في مربع القائمة في تغيير الحدث من مربع النص، تضييق تدريجيا العناصر المحددة. وهذا يعني أنه لا يزال بإمكان المستخدمين مشاهدة قائمة بالأسماء، بدلا من التخمين، ولكن قائمة أقصر وأكثر ملاءمة بكثير.

في ما يلي نموذج سكل ل رووسورس مثل هذا المربع:

SELECT tp.PersonKey, 
   tp.Surname & ", " & tp.Forename AS PersonName
FROM tblPersons tp
WHERE tp.Surname 
LIKE Forms!MyForm!txtSurname.Text
ORDER BY  tp.Surname, tp.Forename

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


Answer #6

إذا كان لديك a ليستبوكس ضخمة ثم استبدلها مع جدول (أو نموذج) داخل كائن نموذج فرعي. صناديق التحرير والسرد والقائمة لديها الحد من 65،536 الكائنات وتحميلها ببطء بالمقارنة مع الجدول، الاستعلام أو النموذج في نموذج فرعي. لدي 100،000 سجل في جدول واحد ويحمل في ومضة. فإنه يمتد من خلال حقا بسهولة كذلك، أسرع بكثير ثم ليستبوكس، وهذا يعني أنك لا تحتاج إلى تضييق الخيارات. وعادة ما يكون مربع بحث بسيط أدناه بلدي النموذج الفرعي كذلك.

انها أصعب قليلا لأن لديك للإشارة إلى شكل الطفل من النموذج الأم والعكس بالعكس، ولكن من السهل جدا لتحويل كل ما تبذلونه من التحرير والسرد / قائمة رمز مربع إلى التعليمات البرمجية النموذج الفرعي. على سبيل المثال إذا كنت ترغب في العثور على سجل مطابقة في النموذج الرئيسي عند النقر فوق إدخال في النموذج الفرعي: -

Private Sub POLICY_NO_Click()
    Set Me.Parent.Recordset = CurrentDb.OpenRecordset("qryHPolicy")
    Me.Parent.Recordset.FindFirst "[POLICY_NO]=" & Me.POLICY_NO & ""
End Sub

أو تعيين النموذج الفرعي إلى نفس المصدر كما في الشكل الرئيسي: -

Forms(Me_FormTo).Form.RecordSource = Me_RecSource
Forms(Me_FormTo).Combo6.Form.RecordSource = Me_RecSource

يمكنك جعل لكم نظرة فرعية جديدة والعمل تماما مثل ليستبوكس لذلك انها بالتأكيد يستحق الذهاب عندما يكون لديك أكثر من 64k السجلات.