Help and Support

Identificativo articolo: 261000 - Ultima modifica: lunedì 29 gennaio 2007 - Revisione: 5.0

BUG: Prestazioni ridotte nelle tabelle collegate di Access 2000

Questo articolo è stato precedentemente pubblicato con il codice di riferimento I261000
Per la versione di questo articolo relativa a Microsoft Access 2002 e versione successiva, vedere 275085  (http://support.microsoft.com/kb/275085/ ) .
Media: sono richieste conoscenze di base di creazione di macro, gestione di codice e di interoperabilità.

Il contenuto di questo articolo è applicabile solo ai database di Microsoft Access (mdb).

In questa pagina

Espandi tutto | Chiudi tutto

Sintomi

È possibile che all'apertura delle tabelle collegate contenute in un database si noti un rallentamento delle prestazioni oppure che l'esecuzione di aggiornamenti richieda più tempo del previsto.

Questo comportamento può verificarsi dopo la conversione del database da una versione precedente di Microsoft Access, anche se questo non è il solo caso in cui potrebbero presentarsi questi sintomi.

Cause

Il database contiene numerose tabelle collegate nelle quali sono presenti anche relazioni e la proprietà Nome foglio dati second. della tabella che si sta aprendo è impostata su [Automatico]. Questo potrebbe rallentare l'apertura della tabella. I fogli secondari sono una nuova caratteristica di Access 2000, pertanto è più probabile che questo comportamento si verifichi dopo la conversione di un database da una versione precedente.

Risoluzione

Per aggirare il problema, impostare la proprietà Nome foglio dati second. in ogni tabella del database back-end su [NESSUNO]. Questa operazione può essere eseguita manualmente o utilizzando il codice.

Impostazione manuale della proprietà Nome foglio dati second.

Per impostare manualmente la proprietà Nome foglio dati second., attenersi alla seguente procedura:
  1. Nel database back-end aprire una tabella in visualizzazione Struttura.
  2. Scegliere Proprietà dal menu Visualizza.
  3. Impostare la proprietà Nome foglio dati second. su [NESSUNO].
  4. Salvare e chiudere la tabella.

Impostazione della proprietà per tutte le tabelle utilizzando il codice

Per impostare automaticamente su [NESSUNO] la proprietà Nome foglio dati second. per tutte le tabelle non di sistema di un database, è possibile utilizzare una funzione di Visual Basic, Applications Edition. Per effettuare questa operazione, attenersi alla seguente procedura:
  1. Aprire il database back-end.
  2. Nella finestra Database scegliere Moduli, quindi Nuovo.
  3. Scegliere Riferimenti dal menu Strumenti. Verificare che la casella di controllo Microsoft DAO 3.6 Object Library sia selezionata, quindi scegliere OK.
  4. Nel nuovo modulo digitare o incollare il seguente codice.
    Sub TurnOffSubDataSheets()
    Dim MyDB As DAO.Database
    Dim MyProperty As DAO.Property
    Dim propName As String, propVal As String, rplpropValue As String
    Dim propType As Integer, i As Integer
    Dim intCount As Integer
    
    On Error GoTo tagError
    
    Set MyDB = CurrentDb
    propName = "SubDataSheetName"
    propType = 10
    propVal = "[None]"
    rplpropValue = "[Auto]"
    intCount = 0
    
    For i = 0 To MyDB.TableDefs.Count - 1
        If (MyDB.TableDefs(i).Attributes And dbSystemObject) = 0 Then
            If MyDB.TableDefs(i).Properties(propName).Value = rplpropValue Then
                 MyDB.TableDefs(i).Properties(propName).Value = propVal
                 intCount = intCount + 1
            End If
        End If
    tagFromErrorHandling:
    Next i
    
    MyDB.Close
    
    If intCount > 0 Then
        MsgBox "The " & propName & " value for " & intCount & " non-system tables has been updated to " & propVal & "."
    End If
    
    Exit Sub
    
    tagError:
    If Err.Number = 3270 Then
        Set MyProperty = MyDB.TableDefs(i).CreateProperty(propName)
        MyProperty.Type = propType
        MyProperty.Value = propVal
        MyDB.TableDefs(i).Properties.Append MyProperty
        intCount = intCount + 1
        Resume tagFromErrorHandling
    Else
        MsgBox Err.Description & vbCrLf & vbCrLf & " in TurnOffSubDataSheets routine."
    End If
    End Sub
    
  5. Per eseguire la funzione, nella finestra Immediata digitare il seguente testo e premere INVIO:
    TurnOffSubDataSheets
    						
    Si noti che dopo alcuni secondi, se tutte le tabelle non sono già aggiornate, viene visualizzata una finestra di messaggio che informa che la proprietà SubDataSheetName relativa a <NumeroDiTabelleAggiornate> tabelle non di sistema è stata aggiornata a [NESSUNO].
Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presume che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. Gli esperti Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare procedura, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare procedure atte a soddisfare specifiche esigenze.

Status

Microsoft ha confermato che questo problema si verifica con i prodotti elencati nella sezione "Le informazioni in questo articolo si applicano a" del presente articolo.

Le informazioni in questo articolo si applicano a
  • Microsoft Access 2000 Standard Edition
Chiavi: 
kbperformance kbbug kbnofix KB261000
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Traduzione articoli

 

Related Support Centers