سؤال

لدي Microsoft Access 2003 ADP، والذي يستخدم نموذجًا "رئيسيًا" منضمًا مع عدة نماذج فرعية ذات نمط مستمر منضم.جميعهم يستخدمون مجموعات السجلات المنفصلة عبر فئة المساعدة.

لاحظ العديد من المستخدمين نفس السلوك الغريب:يضيفون/يحررون سجلاً في النموذج الفرعي المستمر، ويتركون السجل (مع إجراء التحرير على مجموعة السجلات)، ويقفلون الكمبيوتر (Ctrl+Alt+Del)، ويفتحون قفل الكمبيوتر، ويعودون إلى النموذج، بعد حوالي يومض لمدة 5 ثوانٍ ويعود إلى الحالة الأصلية غير المعدلة.

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

يبدو الأمر كما لو أنه بعد حوالي 5 ثوانٍ، تقوم مجموعة السجلات المنفصلة الخاصة بي بإعادة الاتصال (من تلقاء نفسها) وإعادة الاستعلام عن مجموعة السجلات.

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

لدي البرنامج النصي ADP وSQL لإنشاء قاعدة البيانات إذا كان شخص ما يرغب في إعادة إنشاء هذا في بيئته.

إليك كيفية إنشاء مجموعة السجلات المنفصلة:

Dim cnn                 As ADODB.Connection
Dim stmTest             As ADODB.Stream

Set cnn = New ADODB.Connection
cnn.Open Application.CurrentProject.AccessConnection.ConnectionString

' Create recordset and disconnect it.
Set mrsTest = New ADODB.Recordset
mrsTest.CursorLocation = adUseClient
mrsTest.Open "SELECT * FROM [tblChild] WHERE ParentID = 1" _
    , cnn _
    , adOpenStatic, adLockBatchOptimistic
Set mrsTest.ActiveConnection = Nothing

cnn.Close
Set cnn = Nothing

' Copy recordset to stream in memory.
Set stmTest = New ADODB.Stream
stmTest.Open
mrsTest.Save stmTest, adPersistADTG

' Bind form to disconnected recordset.
Set Me.Recordset = mrsTest

' Open a copy of the recordset from the stream.
Set mrsTest = New ADODB.Recordset
stmTest.Position = 0
mrsTest.Open stmTest
هل كانت مفيدة؟

المحلول

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

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

http://www.access-programmers.co.uk/forums/showthread.php?t=206862

ستيف

نصائح أخرى

ربما يكون خارج الموضوع قليلاً، لكن هذا رمز مثير للاهتمام.لم أفكر أبدًا في العمل مع مجموعات بيانات كهذه.هل هناك سبب محدد لاستخدام "مجموعات البيانات المنفصلة" هذه؟

لقد قمت أيضًا بتجربة نفس الكود منذ فترة وحصلت على نفس التجربة.

هذه هي الطريقة التي أرى بها سبب إعادة اتصال مجموعة السجلات بالخادم ...

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

إذا وجدت حلاً لهذا يرجى النشر!

شكرًا لك.

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