Help and Support

Identificativo articolo: 287638 - Ultima modifica: martedì 23 gennaio 2007 - Revisione: 7.3

Utilizzo del metodo Seek con oggetti ADO (ActiveX Data Objects) su un recordset Jet

Questo articolo è stato precedentemente pubblicato con il codice di riferimento I287638
Utenti esperti: sono richieste conoscenze avanzate di gestione di codice, interoperabilità e funzioni multiutente.

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

Per la versione di questo articolo relativa a Microsoft Access 2000, vedere 243465  (http://support.microsoft.com/kb/243465/ ) .
Espandi tutto | Chiudi tutto

Sommario

In questo articolo viene illustrato come utilizzare il metodo Seek con un recordset ADO (ActiveX Data Objects).

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.

Informazioni

Nell'esempio seguente viene mostrato come utilizzare il metodo Seek per trovare l'ordine di un cliente con un ID ordine e un ID prodotto particolari. Se l'ordine viene trovato, nella finestra Immediata verrà riprodotta la quantità dell'ordine cliente.

Generalmente è possibile scegliere tra l'utilizzo di una libreria dei cursori del lato client o di una libreria disponibile sul server. Perché il metodo Seek funzioni, è necessario utilizzare un cursore del lato server, come indicato nella proprietà CursorLocation.

È inoltre possibile utilizzare il metodo Seek solo quando un recordset accede direttamente alla tabella. In questo esempio al recordset vengono fornite istruzioni per l'accesso diretto alla tabella tramite l'argomento adCmdTableDirect nel metodo Open. Non è possibile utilizzare il metodo Seek su oggetti come query e tabelle collegate. Il metodo Seek può essere utilizzato solo su tabelle di Microsoft Jet native. Se il database in uso contiene tabelle collegate, è possibile aprire una connessione esterna al database di back-end per la memorizzazione della tabella, quindi utilizzare il metodo Seek direttamente sulla tabella.
  1. Creare un nuovo database di Microsoft Access e denominarlo Db1.mdb.
  2. Fare clic su Moduli in Oggetti, quindi su Nuovo.
  3. Scegliere Riferimenti dal menu Strumenti. Assicurarsi che la libreria Microsoft ActiveX Data Objects 2.x Library sia inclusa nella casella Riferimenti disponibili (dove 2.x è la versione 2.1 o successiva).
  4. Nel nuovo modulo digitare o incollare il seguente codice:
    Option Compare Database
    Option Explicit
    
    Function SeekRecord()
        Dim conn As ADODB.Connection
        Dim rst As ADODB.Recordset
    
        Set conn = New ADODB.Connection
        Set rst = New ADODB.Recordset
    
        'Set the connection properties and open the connection.
        With conn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "<Drive>\<Path to Northwind sample database>"
            .Open
        End With
    
        With rst
            'Select the index used in the recordset.
            .Index = "PrimaryKey"
    
            'Set the location of the cursor service.
            .CursorLocation = adUseServer
    
            'Open the recordset.
            .Open "Order Details", conn, adOpenKeyset, _
              adLockOptimistic, adCmdTableDirect
    
            'Find the customer order where OrderID = 10255 and ProductID = 16.
            .Seek Array(10255, 16), adSeekFirstEQ
    
            'If a match is found, print the quantity of the customer order.
            If Not rst.EOF Then
                Debug.Print rst.Fields("Quantity").Value
            End If
        End With
    End Function
    						
    Nel codice il percorso del database Northwind.mdb può variare da un computer all'altro.
  5. Scegliere Compila db1 dal menu Debug.
  6. Nella finestra Immediata digitare la seguente riga e premere INVIO:
    SeekRecord

Riferimenti

Per ulteriori informazioni sull'utilizzo del metodo Seek con le tabelle di Microsoft Jet, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
290060  (http://support.microsoft.com/kb/290060/ ) ACC2002: Errore nell'impostazione della proprietà Index del recordset ADO basato su un database di Microsoft Jet

Le informazioni in questo articolo si applicano a:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Chiavi: 
kbado kbdatabase kbprogramming kbdta kbhowto KB287638
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