Teď jste offline a čekáte, až se znova připojí internet.

Pomalejší výkon Access nebo Jet-programů založených na databázi po upgradu ze systému Windows NT 4.0 na systém Windows 2000 nebo Windows XP

Podpora Office 2003 byla ukončena.

Společnost Microsoft ukončila dne 8. dubna 2014 podporu Office 2003. Tato změna ovlivnila aktualizace softwaru a možnosti zabezpečení. Další informace o tom, co to pro vás znamená a jak zajistit ochranu

Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.

891176
Příznaky
Po upgradu počítače ze systému Microsoft Windows NT 4.0 na systém Windows 2000 nebo Microsoft Windows XP Professional můžete zaznamenat snížení výkonu v aplikaci Microsoft Access - založené nebo Jet programy založené na databázi.
Příčina
K tomuto problému může dojít, pokud platí nebo více z následujících podmínek:
  • Při práci s rozdělenou databázi a soubor databáze databáze na serveru nachází ve složce, která má název, který je delší než 8 znaků. Například databázový soubor databáze na serveru nachází ve složce, která má název, který se podobá následující:
    BigFolderName
  • Při práci s rozdělenou databázi a název souboru databáze na serveru databáze je delší než 8 znaků, s výjimkou MDB tříznakovou příponu názvu souboru. Například soubor databáze na serveru databáze má název, který je podobný následujícímu:
    BigDatabaseFileName.mdb
  • Pracujete s databází, která není rozdělena a název souboru databáze nedodržuje 8.3 úmluvy. Nebo je databáze uložena ve složce, která má dlouhý název.
Ukládání do mezipaměti návrh službu pracovní stanice v systému Windows 2000 a novějších verzích systému Windows se liší od ukládání do mezipaměti návrh službu pracovní stanice v dřívějších verzích systému Windows.

V systému Windows 2000 a novějších verzích systému Windows, ukládání do mezipaměti návrh službu pracovní stanice byla změněna na prospěch databáze integritu ve víceuživatelském prostředí. Tato změna návrhu způsobí zpoždění při Jet provede volání rozhraní API k načtení informací o dlouhý název nebo o dlouhý název souboru. Další informace získáte následujícím článku znalostní báze Microsoft:
889588Jak optimalizovat výkon aplikace Office Access a Jet databáze motoru síťových klientů se systémem Windows 2000 a systémem Windows XP
Řešení
Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci bez žádné záruky výslovně uvedené nebo mlčky. To zahrnuje, ale není omezen pouze na předpokládaných záruk vztahujících se k obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že jste je obeznámen s programovacím jazykem, který je předmětem ukázky a s nástroji, které slouží k vytvoření a ladění skriptu. Pracovníci technické podpory společnosti Microsoft mohou vysvětlit funkce určitého postupu však nemohou tyto příklady přidány funkce nebo vytvářet postupy podle svých specifických požadavků.

Pracujete-li rozdělenou databázi, lze tento problém vyřešit změna vazby do existujících tabulek Jet. Chcete-li to provést, vytvořte kód odeslat znázornění krátký název dlouhý složky rozhraní API systému Windows. Toto řešení vyžaduje koncovému databáze má název souboru, který následuje 8.3 úmluvy. Chcete-li vytvořit tento kód, postupujte takto front-end databáze:
  1. Chcete-li 2.5 rozšíření Microsoft ADO (nebo novější verzi ADO) nastavte odkaz.
  2. Přidejte následující kód do nového modulu.
    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. Spuštění funkce RefreshLinks. Chcete-li to provést, postupujte takto:
    1. V editoru jazyka Visual Basic klepněte na příkaz okno Immediate v nabídce Zobrazit.
    2. Do okna Immediate zadejte RefreshLinks. Stiskněte klávesu ENTER.
Funkce RefreshLinks však cyklicky propojené Jet tabulek v databázi a ověří, zda je odkaz platný. Pokud je odkaz platný, tento kód používá rozhraní Windows API funkci GetShortPathName, chcete-li vytvořit krátký název následující konvence 8.3. Další informace získáte následujícím článku báze Microsoft Knowledge Base:
142982Generuje názvy souborů typu 8.3 systému Windows z dlouhé názvy souborů
Tento kód pak aktualizuje propojení pomocí cesty, která zahrnuje nové krátký název. Pokud odkaz odkazuje na soubor databáze koncovému, který nedodržuje 8.3 úmluvy, tento kód generuje zprávu a navrhne přejmenovat soubor databáze na serveru databáze.
Prohlášení
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části „ platí.

Poznámka: Pokud používáte systém Windows XP, může zlepšit výkon použitím systému Windows XP Service Pack 2 (SP2).
Další informace
Další informace získáte v následujících článcích v databázi Microsoft Knowledge Base:
209862Jak znovu propojit tabulky databáze na serveru s běžné ovládací prvek dialogové okno v aplikaci Access 2000
175512How to get krátký název souboru from dlouhý název souboru
ACC2007 Acc2002 Acc2003, aplikace Microsoft Access XP Jet NT4, NT4.0 Win2000 WinXP

Upozornění: Tento článek byl přeložen automaticky

Vlastnosti

ID článku: 891176 - Poslední kontrola: 12/01/2007 02:09:17 - Revize: 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 KbMtcs
Váš názor