Help and Support

Identificativo articolo: 128157 - Ultima modifica: venerdì 19 gennaio 2007 - Revisione: 2.3

ACC: Utilizzo di DAO in codice Visual Basic per l'Importazione relazioni

Espandi tutto | Chiudi tutto

Sommario

Avanzate: Richiede la codifica degli esperti, interoperabilità e competenze multiutente.

In questo articolo viene illustrato come utilizzare DAO (Data Access Objects) in Visual Basic, Applications Edition per leggere le relazioni da un database Microsoft Access esterno e per importare le relazioni che possono essere aggiunto al database corrente.

Si suppone che l'utente conosca Visual Basic Applications Edition e sappia creare applicazioni Microsoft Access avvalendosi degli strumenti di programmazione forniti con Microsoft Access. Per ulteriori informazioni su Visual Basic, Applications Edition, fare riferimento alla versione del manuale "Building Applications con Microsoft Access".

Nota: Visual Basic, Applications Edition viene chiamato Access Basic in Microsoft Access versione 2.0. Per ulteriori informazioni su Access Basic, consultare il manuale "Building Applications".

Informazioni

Quando si tenta di aggiungere le relazioni nel database corrente, è possibile aggiungere solo le relazioni con i nomi delle tabelle e nomi dei campi che corrispondono a quelli nel database corrente.

Nell'esempio seguito viene illustrato come utilizzare gli oggetti di relazione in DAO per importare le relazioni appropriate nel database corrente:

  1. Creare un nuovo database chiamato ImpRel.mdb.
  2. Importare le tabelle seguenti dagli esempio database Northwind.mdb (o Nwind.mdb nella versione 2.0) per il database ImpRel:

    • Prodotti
    • Clienti
    • Ordini
    • Dettagli ordini
    Nota: In Microsoft Access 7.0 e 97, fare clic sul pulsante Opzioni nella finestra di dialogo Importa oggetti e deselezionare l'opzione di relazioni prima di importare le tabelle.
  3. Creare un nuovo modulo e il tipo la seguente riga in dichiarazioni di sezione se non è già presente:
    opzione Explicit
  4. Digitare la seguente routine:

    Nota: Nel codice di esempio riportato di seguito, un carattere di sottolineatura (_) viene utilizzato come un carattere di continuazione di riga. Consente di rimuovere il carattere di sottolineatura alla fine del campo quando si ricrea il codice in Access Basic.
          Function ImportRelations (DbName As String) As Integer
          '------------------------------------------------------------------
          ' PURPOSE: Imports relationships where table names and field names
          '          match.
          ' ACCEPTS: The name of the external database as a string.
          ' RETURNS: The number of relationships imported as an integer.
          '------------------------------------------------------------------
    
          Dim ThisDb As Database, ThatDB As Database
          Dim ThisRel As Relation, ThatRel As Relation
          Dim ThisField As Field, ThatField As Field
          Dim Cr As String, i As Integer, cnt As Integer, RCount As Integer
          Dim j As Integer
          Dim ErrBadField As Integer
    
          Cr$ = Chr$(13)
          RCount = 0
    
          Set ThisDb = CurrentDB()
          Set ThatDB = DBEngine.Workspaces(0).OpenDatabase(DbName$)
    
          ' Loop through all existing relationships in the external database.
          For i = 0 To ThatDB.Relations.count - 1
             Set ThatRel = ThatDB.Relations(i)
    
             ' Create 'ThisRel' using values from 'ThatRel'.
             Set ThisRel = ThisDb.CreateRelation(ThatRel.name, _
                ThatRel.table, ThatRel.foreigntable, ThatRel.attributes)
    
             ' Set bad field flag to false.
             ErrBadField = False
    
             ' Loop through all fields in that relation.
             For j = 0 To ThatRel.fields.count - 1
                Set ThatField = ThatRel.fields(j)
    
                ' Create 'ThisField' using values from 'ThatField'.
                Set ThisField = ThisRel.CreateField(ThatField.name)
                ThisField.foreignname = ThatField.foreignname
    
                ' Check for bad fields.
                On Error Resume Next
                ThisRel.fields.Append ThisField
                If Err <> False Then ErrBadField = True
                On Error GoTo 0
             Next j
    
             ' If any field of this relationship caused an error,
             ' do not add this relationship.
             If ErrBadField = True Then
                ' Something went wrong with the fields.
                ' Do not do anything.
             Else
                ' Try to append the relation.
                On Error Resume Next
                ThisDb.Relations.Append ThisRel
                If Err <> False Then
                   ' Something went wrong with the relationship.
                   ' Skip it.
                Else
                   ' Keep count of successful imports.
                   RCount = RCount + 1
                End If
                On Error GoTo 0
             End If
          Next i
    
          ' Close databases.
          ThisDb.Close
          ThatDB.Close
    
          ' Return number of successful imports.
          ImportRelations = RCount
    
          End Function
    						
  5. Salvare il modulo come DAOExample e chiuderla.
  6. Creare la nuova macro come riportato di seguito:

    Nota: Nell'espressione macro riportata di seguito, un carattere di sottolineatura (_) alla fine di una riga viene utilizzato come un carattere di continuazione di riga. Consente di rimuovere il carattere di sottolineatura alla fine del campo quando si ricrea la macro.
                Macro Name           Macro Actions
          ----------------------------------
          DAOImportRelations   RunCode
                               MsgBox
    
          DAOImportRelations Actions
          ---------------------------------------------------------------
          RunCode
             Function Name: ImportRelations("C:\Program Files\Microsoft _
                            Office\Office\Samples\Northwind.mdb")
          MsgBox
             Message: All Done.
    						
    Nota: se la copia di Microsoft Access non è installata nella cartella Programmi\microsoft Office\Office (directory) dell'unità C, sostituire l'unità corretta e il percorso nella funzione ImportRelations().
  7. Salvare la macro e quindi chiuderlo.
  8. Eseguire la macro. Tre le relazioni definite tra le quattro tabelle importati dal database Northwind vengono importate. Non vengono importate le relazioni altri quattro nel database Northwind.
  9. Per visualizzare le relazioni nel database corrente, selezionare il database finestra, quindi scegliere Opzioni dal menu (o del menu Modifica nella versione 2.0) scegliere relazioni. Scegliere Mostra tutto dal menu, relazioni. Le tabelle e le relazioni sono visualizzate nella finestra; le relazioni tra le tabelle sono disegnate automaticamente.

Le informazioni in questo articolo si applicano a:
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
Chiavi: 
kbmt kbinfo kbprogramming KB128157 KbMtit
Traduzione automatica articoliTraduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 128157  (http://support.microsoft.com/kb/128157/en-us/ )
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.
Retired KB ArticleDichiarazione di non responsabilità per articoli della Microsoft Knowledge Base su prodotti non più supportati
Questo articolo è stato scritto sui prodotti per cui Microsoft non offre più supporto. L?articolo, quindi, viene offerto ?così come è? e non verrà più aggiornato.

Traduzione articoli