أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

أقل في الأداء في المستندة إلى Access أو Jet يستند إلى قاعدة البيانات البرامج بعد الترقية من Windows NT 4.0 إلى Windows 2000 أو Windows XP

انتهاء دعم Office 2003

لقد أنهت شركة Microsoft دعم Office 2003 في 8 أبريل، 2014. وقد أثر هذا التغيير على تحديثات البرامج لديك وخيارات الأمان الخاصة بك. تعرف على ما يعنيه ذلك فيما يتعلق بك وكيفية الحفاظ على حمايتك.

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

891176
الأعراض
بعد ترقية جهاز الكمبيوتر الخاص بك من نظام التشغيل Microsoft Windows NT 4.0 إلى Microsoft Windows 2000 أو Microsoft Windows XP Professional قد واجهت أقل في الأداء في Microsoft Access - المستند إلى أو البرامج التي تستند إلى قاعدة بيانات Jet.
السبب
قد تحدث هذه المشكلة في حالة أو أكثر من الحالات التالية:
  • العمل مع قاعدة بيانات انقسام وتوجد ملف قاعدة البيانات الواجهة الخلفية في مجلد له اسم أطول من 8 أحرف. على سبيل المثال, ملف قاعدة البيانات الواجهة الخلفية موجود في مجلد له اسم مماثل لما يلي:
    BigFolderName
  • العمل مع قاعدة بيانات انقسام ثم اسم ملف قاعدة البيانات الواجهة الخلفية أطول من 8 أحرف مع ملحق اسم ملف .mdb ثلاثة أحرف. على سبيل المثال، يحتوي ملف قاعدة البيانات الواجهة الخلفية اسم مشابهة للرسالة التالية:
    BigDatabaseFileName.mdb
  • العمل مع قاعدة بيانات التي يتم تقسيم ثم اسم ملف قاعدة بيانات لا تتبع 8.3 اصطلاح تسمية. أو يتم تخزين قاعدة البيانات في مجلد له اسم طويل.
تصميم التخزين المؤقت في خدمة محطة العمل في Windows 2000 والإصدارات اللاحقة من Windows وفي يختلف عن تصميم التخزين المؤقت في خدمة محطة العمل في الإصدارات السابقة من Windows.

في Windows 2000 وفي إصدار أحدث من Windows تم تغيير تصميم التخزين المؤقت في خدمة محطة العمل إلى مستخدمو قاعدة البيانات التكامل في بيئة متعدد المستخدمين. يؤدي هذا التغيير التصميم تأخير عند Jet بإجراء مكالمات API استرداد معلومات حول اسم المجلد طويلة أو حول اسم ملف طويل. لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
889588كيفية الوصول إلى Office "و" Jet قاعدة البيانات محرك شبكة الأداء الأمثل مع عملاء يستند إلى نظام التشغيل Windows 2000 و يستند إلى نظام التشغيل Windows XP
الحل
تقدم Microsoft الأمثلة البرمجية فقط دون أي ضمان التعبير عن أو ضمنية. هذا يتضمن ولكن لم يقتصر على الضمانات الضمنية الخاصة بالتجارة أو الملاءمة لغرض معين. تفترض هذه المقالة تكون مألوفة مع لغة البرمجة التي يتم شرحها مع الأدوات التي يتم استخدامها لإنشاء لتصحيح الإجراءات. يمكن لمهندسي الدعم لدى Microsoft شرح وظيفة إجراء محدد ولكن لن يقوموا بتعديل هذه الأمثلة لتقديم وظيفة إضافية أو إنشاء إجراءات تستوفي متطلبات محددة.

إذا كنت تعمل مع قاعدة بيانات انقسام يمكنك حل هذه المشكلة عن طريق إعادة الربط الجداول Jet الموجودة. للقيام بذلك، إنشاء التعليمات البرمجية لإرسال تمثيل قصيرة اسم المجلد طويلة إلى Windows API. يتطلب هذا الحل قاعدة البيانات الواجهة الخلفية حتى يكون اسم ملف الذي يتبع 8.3 اصطلاح تسمية. لإنشاء هذه التعليمة البرمجية اتبع الخطوات التالية في قاعدة بيانات النهاية الأمامية:
  1. تعيين مرجع إلى 2.5 ملحق ADO Microsoft (أو إلى إصدار أحدث من ADO).
  2. قم بإضافة التعليمة البرمجية التالية إلى وحدة نمطية جديدة.
    Declare Function GetShortPathName Lib "kernel32" _            Alias "GetShortPathNameA" (ByVal lpszLongPath As String, _           ByVal lpszShortPath As String, ByVal cchBuffer As Long) As LongFunction RefreshLinks()    On Error GoTo ErrorHandler        'Define the ADOX Catalog object.    Dim objCat As New ADOX.Catalog     'Define the ADOX Table object.    Dim objTbl As ADOX.Table     'Database name of the linked table.    Dim strFilename As String     'Path and database name of the linked table.    Dim strFullName As String     Dim blnIsMapi As Boolean    Dim blnIsImex As Boolean    Dim blnIsTemp As Boolean    Dim blnLongFileName As Boolean    Dim blnFailedLink As Boolean    Const srtImex = "IMEX"    Const strMapi = "MAPILEVEL="    'Open the catalog.    objCat.ActiveConnection = CurrentProject.Connection    'Loop through the table collection and update the linked tables.    For Each objTbl In objCat.Tables        'Verify that the table is a linked table.        If objTbl.Type = "LINK" = True Then            blnIsTemp = objTbl.Properties("Temporary Table") Or Left(objTbl.Name, 1) = "~"            blnIsImex = (InStr(1, objTbl.Properties("Jet OLEDB:Link Provider String"), srtImex, vbTextCompare) > 0)            blnIsMapi = (InStr(1, objTbl.Properties("Jet OLEDB:Link Provider String"), strMapi, vbTextCompare) > 0)            If Not blnIsTemp And Not blnIsImex And Not blnIsMapi Then                  'Verify that the table is a Jet table.                strFullName = objTbl.Properties("Jet OLEDB:Link Datasource")                strFilename = Mid(strFullName, InStrRev(strFullName, "\", _                            Len(strFullName)) + 1, Len(strFullName))                'Determine whether the database exists.                If DoesFileExist(strFullName) = True Then                    objTbl.Properties("Jet OLEDB:Link Datasource") = GetShortName(strFullName)                  'Update the link by using the short path name.                Else                    MsgBox "Cannot update: '" & objTbl.Name & "'" & String(2, vbCrLf) & "File not found: " & vbCrLf & strFullName                    blnFailedLink = True                End If                If InStr(strFilename, ".") > 9 Then blnLongFileName = True            End If        End If    Next       If blnFailedLink = False Then        If blnLongFileName = True Then            MsgBox "The table links were successfully updated, but the name of the backend database file does not follow 8.3" & _            vbCrLf & "Please rename the file, relink the tables, and then run the procedure again.", vbExclamation        Else            MsgBox "The links were successfully updated!!! ", vbInformation        End If    Else        MsgBox "The links were not successfully updated." & vbCrLf & "Please verify you table links.", vbExclamation    End IfExitHandler:     Exit FunctionErrorHandler:    MsgBox Err.Description & " " & Err.Number    Resume ExitHandler    End FunctionFunction GetShortName(ByVal sLongFileName As String) As String           Dim lRetVal As Long, sShortPathName As String, iLen As Integer           'Set up a buffer area for the API function call return.           sShortPathName = Space(255)           iLen = Len(sShortPathName)               'Call the function.           lRetVal = GetShortPathName(sLongFileName, sShortPathName, iLen)           'Remove unwanted characters.           GetShortName = Left(sShortPathName, lRetVal) End FunctionFunction DoesFileExist(strFileSpec As String) As Boolean    'Return True if the file that is specified in the    'strFilespec argument exists.    'Return False if strFileSpec is not a valid    'file or if strFileSpec is a directory.    Const INVALID_ARGUMENT As Long = 53    On Error GoTo DoesfileExist_Err    If (GetAttr(strFileSpec) And vbDirectory) <> vbDirectory Then        DoesFileExist = CBool(Len(Dir(strFileSpec)) > 0)    Else        DoesFileExist = False    End IfDoesfileExist_End:    Exit FunctionDoesfileExist_Err:    DoesFileExist = False    Resume DoesfileExist_EndEnd Function
  3. تشغيل الدالة RefreshLinks. للقيام بذلك، اتبع الخطوات التالية:
    1. في "محرر Visual Basic" ، انقر فوق الإطار الحالي في القائمة عرض.
    2. في الإطار الحالي اكتب RefreshLinks. ثم اضغط ENTER.
بالرغم من حلقات الجداول Jet المرتبطة في قاعدة بيانات الدالة RefreshLinks والتحقق من ما إذا كان الارتباط صحيح أم لا. إذا كان الارتباط صالح يعمل هذا يستخدم رمز Windows API GetShortPathName إنشاء اسم قصير يتبع 8.3 اصطلاح تسمية. للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف لـ Microsoft:
142982كيف يقوم Windows بإنشاء أسماء ملفات 8.3 من أسماء الملفات الطويلة
هذه التعليمة البرمجية ثم تحديث الارتباط باستخدام مسار الذي يتضمن اسم قصير جديد. إذا أشار الارتباط إلى ملف قاعدة بيانات الواجهة الخلفية التي لا تتبع 8.3 اصطلاح تسمية رمز هذا ينشئ رسالة اقتراح إعادة تسمية ملف قاعدة البيانات الواجهة الخلفية.
تصريح
أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "تنطبق على".

ملاحظة إذا كنت تستخدم Windows XP يمكنك تحسين الأداء بواسطة تطبيق Microsoft Windows XP Service Pack 2 (SP2).
معلومات أخرى
للحصول على معلومات إضافية، انقر فوق أرقام المقالات التالية لعرضها في "قاعدة المعارف لـ Microsoft:
209862كيفية إعادة ربط الجداول الواجهة الخلفية مع عنصر تحكم الحوار الشائعة في Access 2000
175512كيفية الحصول على اسم ملف قصير من اسم ملف طويل
ACC2007 Acc2002 Acc2003 Microsoft Access Jet XP NT4 NT4.0 Win2000 WinXP

تحذير: تمت ترجمة هذا المقال تلقائياً

خصائص

رقم الموضوع: 891176 - آخر مراجعة: 12/01/2007 02:09:17 - المراجعة: 4.3

  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • kbmt kbfilesystems kbenv kbtshoot kbhowto kbinfo KB891176 KbMtar
تعليقات