DAO ed elemento non trovato in questo insieme

di il
9 risposte

DAO ed elemento non trovato in questo insieme

Buongiorno a tutti, saltuariamente programmo in VBA il database access che uso per la mia attività lavorativa. Oggi non riesco a venire fuori dall'errore di runtime 3265 : Elemento non trovato in questo insieme semplicemente a seguito di queste semplicissime righe di codice:

Dim database As DAO.database
Dim tabella As DAO.Recordset

Set database = CurrentDb
Set tabella = database.OpenRecordset("commesse", dbOpenDynaset)

tabella.MoveLast

servizio = tabella.Fields(“chiave_primaria”) ?-------------------------------------- L'ERRORE VIENE RESTITUITO QUA
MsgBox servizio

tabella.Close
database.Close

Non riesco a capire a cosa sia dovuto. La tabella commesse esiste ed anche il campo al suo interno che sto andando a leggere. Utilizzo Office 2007. Grazie a tutti per il supporto.

9 Risposte

  • Re: DAO ed elemento non trovato in questo insieme

    Se apri un rs su tabella si usa [dbOpenTable] hai letto come si usa il metodo OPENRECORDSET ed i parametri…?

    La grossa differenza tra i 2 type è che dbOpenTable supporta la collection Inexes… ed il metodo Seek.

    Non credo impattino nel tuo esempio, ma prova… devi tuttavia mettere una gestione errori perche se il rs fosse vuoto … insomma quel codice è un po semplificato.

  • Re: DAO ed elemento non trovato in questo insieme

    18/08/2024 - Armada ha scritto:


    tabella.MoveLast

    Mi spieghi perché ti posizioni in fondo al recordset?

  • Re: DAO ed elemento non trovato in questo insieme

    Il movelast è solo un refuso di programmazione, era stato inserito per una prova ma irrilevante ai fini del problema.

  • Re: DAO ed elemento non trovato in questo insieme

    18/08/2024 - Armada ha scritto:


    MsgBox servizio

    Sicura che la sintassi sia giusta?

    MsgBox(servizio)

    Servizio dove lo hai dichiarato? Ha la stessa natura del campo? Testo? Numero?

    Errore 3265 Crash - Errore 3265 è un noto, che si verifica quando una riga di codice errata viene compilata nel codice sorgente del programma. Quando Microsoft Access non è in grado di fornire un output sufficiente all'input dato, o non sa veramente cosa produrre, spesso confonderà il sistema in questo modo.

  • Re: DAO ed elemento non trovato in questo insieme

    18/08/2024 - Antony73 ha scritto:


    18/08/2024 - Armada ha scritto:


    tabella.MoveLast

    Mi spieghi perché ti posizioni in fondo al recordset?

    Va a leggere l'ultimo id… suppongo!

  • Re: DAO ed elemento non trovato in questo insieme

    19/08/2024 - sihsandrea ha scritto:


    Va a leggere l'ultimo id… suppongo

    Lo suppongo anche io. Ma a quale scopo?

  • Re: DAO ed elemento non trovato in questo insieme

    19/08/2024 - Antony73 ha scritto:


    Lo suppongo anche io. Ma a quale scopo?

    Supposto che si tratta di un faidate…

    Magari l'indice non è autoincrementante e forse manco numerico…. Lo prende per aggiungere l'unità?

    Oppure per verificare che abbia letto l'ultimo id?

    Il punto è quell'errore che dal supporto microsoft ne da più cause tra le quali quello che mi sembra più probabile: errore di sintassi al msgbox.

    In ogni caso non ha risposto  al mio intervento.

  • Re: DAO ed elemento non trovato in questo insieme

    19/08/2024 - sihsandrea ha scritto:


    19/08/2024 - Antony73 ha scritto:


    Lo suppongo anche io. Ma a quale scopo?

    Supposto che si tratta di un faidate…

    Magari l'indice non è autoincrementante e forse manco numerico…. Lo prende per aggiungere l'unità?

    Oppure per verificare che abbia letto l'ultimo id?

    Il punto è quell'errore che dal supporto microsoft ne da più cause tra le quali quello che mi sembra più probabile: errore di sintassi al msgbox.

    In ogni caso non ha risposto  al mio intervento.

    Speriamo non sia per questo… senza l'ordinamento Crescente forzato io non mi fiderei… e poi basterebbe un DMAX, se non si è in MultiUtenza.

    Come dicevo in modo bonario quel codice “è semplificato” tradotto significa che non ha senso perchè non fa nulla di comprensibile, quindi speravo l'utente lo completasse.

  • Re: DAO ed elemento non trovato in questo insieme

    Allora, ho risolto, posto che ho poi usato una query come recordset, ma il problema era sul fatto che volesse le parentesi quadre così: recset.Fields("[commerciale]").

    Grazie!

Devi accedere o registrarti per scrivere nel forum
9 risposte