Help and Support
 

powered byLive Search

ACC: Utilizzare DAO in Codice di Visual Basic per importare le relazioni

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

Sommario

Passato: Richiede il codice esperto, l'interoperabilità e le competenze multiutente.

Questo articolo illustra come utilizzare Data Access Objects (DAO) nel codice Visual Basic Applications Edition per leggere le relazioni da un database esterno Microsoft Access e importare quelle relazioni che si possono accodare correttamente 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, vedere la versione del manuale "Microsoft Access con Creazione di applicazioni".

NOTA: Access Basic Visual Basic Applications Edition si dice in Microsoft Access versione 2.0. Per ulteriori informazioni su Access Basic, vedere il manuale "Creazione di applicazioni".

Informazioni

Quando si tenta di aggiungere le relazioni nel database corrente, è possibile accodare solo quelle relazioni che hanno i nomi di tabella e i nomi di campo che corrispondono a quelli nel database corrente.

Nel seguente esempio si illustra come utilizzare gli oggetti Relazione in DAO per importare le relazioni appropriate nel database corrente:

1.Creare un nuovo database denominato ImpRel.mdb.
2. Le seguenti tabelle dal Northwind.mdb o da NWIND.MDB di esempio di database nella versione 2.0 al database ImpRel importare:

?Prodotti
?Clienti
?Ordini
?Order Details
NOTA: In Microsoft Access 7.0 e 97, fare clic sul pulsante Opzioni nella finestra di dialogo Importa oggetti e deselezionare l'opzione Relazioni prima che le tabelle importino.
3. Creare un nuovo modulo e digitare la seguente riga nella sezione Dichiarazioni se non è già qui:
Option Explicit
4.Digitare la seguente routine:

NOTA: Nel seguente codice di esempio, un segno di sottolineatura (_) si utilizza come un carattere di continuazione della riga. Rimuovere il carattere quando si ricrea questo 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 chiuderlo.
6.Creare la nuova macro come riportato di seguito

NOTA: Nella seguente espressione di macro, un segno di sottolineatura (_) al fine di una riga si utilizza come un carattere di continuazione della riga. Rimuovere il carattere quando si ricrea questa 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 (directory), Programmi\Microsoft Office\Office, sull'unità C, specificare l'unità e il percorso corretto nella funzione ImportRelations().
7.Salvare la macro e quindi chiuderlo.
8. Eseguire la macro. Le tre relazioni definite tra le quattro tabelle importanti del database Northwind vengono importate. Le altre quattro relazioni del database Northwind non vengono importate.
9. Per visualizzare le relazioni nel database corrente, si seleziona la finestra di database e quindi sugli Strumenti, il menu (o il menu Modifica nella versione 2.0) fa clic su Relazioni. Dal menu Relazioni, scegliere Mostra tutto. Tutte le tabelle e le relazioni si visualizzano nella finestra; le relazioni tra le tabelle si prelevano 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

Torna all'inizio

Chiavi: 
kbinfo kbprogramming KB128157 KbMtit kbmt
Traduzione automatica articoliIl 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. Nel caso in cui si riscontrino degli errori e si desideri inviare dei suggerimenti, è possibile completare il questionario riportato alla fine del presente articolo.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 128157 (http://support.microsoft.com/kb/128157/en-us/)

Torna all'inizio

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

 

Other Support Options

  • Need More Help?
    Contact a Support professional by Email, Online or Phone.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.