Errore di runtime 2046

di il
16 risposte

Errore di runtime 2046

Salve,
nell'uffico di lavoro ho sostituito un pc ormai andato con uno nuovo (win 2007,office 2010,access 2010)collegato al server come gli altri due pc esistenti.
Anche su quest'ultimi gli stessi programmi.
Ora succede che sul pc nuovo il database di lavoro non si apre e ad un certo punto appare il seguente messaggio: ERRORE DI RUNTIME 2046 Vai a record non disponibile e nel debag appare la riga di comando DOCMD.GOTORECORD ,, ACLAST.
Perchè su questa macchina c'è questo messaggio che non appare selle altre?
Ho cercato nel web ma non ne ho ricavato un gran che.
Poichè il db è stato creato con access 2003 ho eliminato access 2010 e installato una versione inferiore ma non ho risolto nulla.
Vorrei capire in sintesi l'origine del problema e quali passi fare per risolverlo.
Grazie

16 Risposte

  • Re: Errore di runtime 2046

    silene ha scritto:


    nell'uffico di lavoro ho sostituito un pc ormai andato con uno nuovo (win 2007,office 2010,access 2010)collegato al server come gli altri due pc esistenti.
    Anche su quest'ultimi gli stessi programmi.
    Ora succede che sul pc nuovo il database di lavoro non si apre e ad un certo punto appare il seguente messaggio: ERRORE DI RUNTIME 2046 Vai a record non disponibile e nel debag appare la riga di comando DOCMD.GOTORECORD ,, ACLAST.
    E' diviso in FrontEnd e BackEnd o è un file unico?

    In attesa di conoscere la situazione FE/BE, in generale: in VBE guarda i Riferimenti, se qualcuno è segnato come "Manca". Se il db è unico... non puoi modificare i riferimenti così tranquillamente, altrimenti per farlo funzionare su quello nuovo, sugli altri computer potresti avere (direi: avrai sicuramente) problemi.
  • Re: Errore di runtime 2046

    Ciao Philc.,
    il db è unico.
    Nel Web ho trovato un utente con un ( più o meno)problema uguale al mio e come risposta gli è stato consigliato di creare un db vuoto, incollargli tutti gli oggetti, compilarlo e infine compattarlo. Ciò presupponendo che il db origine sia corrotto.
    Può essere efficace una procedura del genere?
    Grazie e buona giornata
  • Re: Errore di runtime 2046

    silene ha scritto:


    Ciao Philc.,
    il db è unico.
    Nel Web ho trovato un utente con un ( più o meno)problema uguale al mio e come risposta gli è stato consigliato di creare un db vuoto, incollargli tutti gli oggetti, compilarlo e infine compattarlo. Ciò presupponendo che il db origine sia corrotto.
    Può essere efficace una procedura del genere?
    Grazie e buona giornata
    L'ho visto anch'io quel suggerimento ed era quello conclusivo, dopo aver escluso altri motivi d'errore. Hai verificato se tu rientri in quelle situazioni? In generale, comunque, vale sempre la pena seguire i suggerimenti di @Alex. (mi raccomando le copie di backup sono ancora più doverose, male che vada rimetti tutto come prima)
    Dai un'occhiata però anche ai Riferimenti. Magari tu credi che i tre computer siano identici come dotazione software mentre alcune cose possono essere differenti (tutte le patch windows e office applicate? )
  • Re: Errore di runtime 2046

    Ciao Philc,
    ho controllato i Riferimenti:
    Nell'applicativo del nuovo pc trovo spuntati:(1) Visual Basic for Applications-(2)Microsoft access 12.0 Object Library-(3)Ole Automation-(4)Microsoft office 12.0 Access database engine Object....
    Negli altri pc trovo spuntati: (1) (2) (3) e poi Microsoft DAO 3.6 Object Library-Microsoft Visual Basic for Applications Extensibility 5......
    Che ne dici?
  • Re: Errore di runtime 2046

    silene ha scritto:


    Ciao Philc,
    ho controllato i Riferimenti:
    Nell'applicativo del nuovo pc trovo spuntati:(1) Visual Basic for Applications-(2)Microsoft access 12.0 Object Library-(3)Ole Automation-(4)Microsoft office 12.0 Access database engine Object....
    Negli altri pc trovo spuntati: (1) (2) (3) e poi Microsoft DAO 3.6 Object Library-Microsoft Visual Basic for Applications Extensibility 5......
    Che ne dici?
    E' una voce unica "Microsoft DAO 3.6 Object Library-Microsoft Visual Basic for Applications Extensibility"? Credo che sia un mancato "a capo" dopo Object Library e che Microsoft Visual Basic for Application Extensibility sia una voce a parte.
    DAO è fondamentale: da selezionare subito!
    La domanda che sorge spontanea è: come è possibile che lo stesso file (perché mi dici che il db è costituito da un file unico, giusto?) da una postazione abbia alcuni riferimenti e aperto da un altro computer abbia altri riferimenti? Molto strano. Quelli che non trova li marca come mancanti, se ce ne sono di "aggiustabili" cerca da solo di trovare il tipo corrispondente nel computer ma non li toglie da solo. A meno che non ci sia dell'altro codice che automaticamente verifica i riferimenti e li "aggiunge-toglie". Hai padronanza del codice vba di quel db, lo hai fatto tutto tu?
    Hai reinstallato Access2010, vero?
  • Re: Errore di runtime 2046

    Si ho reinstallato access 2010
    Il programma l'ho fatto io (ho sufficiente conoscenza di VBA) con l'aiuto di ciò che ho trovato sul Web.
    Ho controllato ma non vi è nulla di "aggiunge toglie".
    Che fare?
    Ciao
  • Re: Errore di runtime 2046

    silene ha scritto:


    Salve,
    nell'uffico di lavoro ho sostituito un pc ormai andato con uno nuovo (win 2007,office 2010,access 2010)collegato al server come gli altri due pc esistenti.
    Anche su quest'ultimi gli stessi programmi.
    Ora succede che sul pc nuovo il database di lavoro non si apre e ad un certo punto appare il seguente messaggio: ERRORE DI RUNTIME 2046 Vai a record non disponibile e nel debag appare la riga di comando DOCMD.GOTORECORD ,, ACLAST.
    Perchè su questa macchina c'è questo messaggio che non appare selle altre?
    Ho cercato nel web ma non ne ho ricavato un gran che.
    Poichè il db è stato creato con access 2003 ho eliminato access 2010 e installato una versione inferiore ma non ho risolto nulla.
    Vorrei capire in sintesi l'origine del problema e quali passi fare per risolverlo.
    Grazie
    Ciao Silene, anche io uso Database in rete ma del tipo Back-end/Front-end. Io non conosco bene questo errore ma per capire bene il problema, secondo me, dovresti dare qualche indicazione in più. L'azione "DoCmd.GotoRecord , , AcLast" dove è inserita? In una sub di un pulsante che stà in una mascherà? Che altre righe di comando ci sono nell sub? La maschera che origine dati ha? C'è qualche filtro sui dati? Perchè in fase di debug a volte può capitare che l'indicazione dell'errore venga data su di una riga mentre viene generato altrove.

    silene ha scritto:


    Si ho reinstallato access 2010
    Il programma l'ho fatto io (ho sufficiente conoscenza di VBA) con l'aiuto di ciò che ho trovato sul Web.
    Ho controllato ma non vi è nulla di "aggiunge toglie".
    Che fare?
    Ciao
    Se il file è unico e risiede sul server, è molto strano che cambiando pc dia riferimenti differenti. I riferimenti vengono fissati in VBA e, come ha detto Phil, o mancano perchè ad esempio manca un programma e la relativa dll oppure ci devono stare. Inoltre, fai bene attenzione al codice che c'è ne db. Il fatto che tu abbia trovato il riferimento a "Microsoft Visual Basic for Applications Extensibility 5.x" mi fa pensare che ci possa essere qualcosa che "aggiunge-toglie" perchè questo è proprio la libreria che ti permette di lavorare da codice con i riferimenti. Se però il programma l'hai fatto tu e dici che funzioni del genere non ci sono, allora la presenza di quel riferimento potrebbe anche non significare nulla.
    Io, per risolvere il problema di avere sempre i riferimenti che voglio anche passando da una versione di Access ad un altra, mi sono creato una funzione che all'avvio mi imposta tutti i riferimenti necessari ed un'altra che alla chiusura me li toglie tutti (tranne naturalmente quelli propri del db). Cercando qualcosa sulle "Reference", potresti provare anche tu a fare due funzioni del genere e vedere se risolvi il problema dei riferimenti che non solo uguali su pc diversi.
  • Re: Errore di runtime 2046

    mikelemm ha scritto:


    silene ha scritto:


    Si ho reinstallato access 2010
    Il programma l'ho fatto io (ho sufficiente conoscenza di VBA) con l'aiuto di ciò che ho trovato sul Web.
    Ho controllato ma non vi è nulla di "aggiunge toglie".
    Che fare?
    Ciao
    Se il file è unico e risiede sul server, è molto strano che cambiando pc dia riferimenti differenti. I riferimenti vengono fissati in VBA e, come ha detto Phil, o mancano perchè ad esempio manca un programma e la relativa dll oppure ci devono stare. Inoltre, fai bene attenzione al codice che c'è ne db. Il fatto che tu abbia trovato il riferimento a "Microsoft Visual Basic for Applications Extensibility 5.x" mi fa pensare che ci possa essere qualcosa che "aggiunge-toglie" perchè questo è proprio la libreria che ti permette di lavorare da codice con i riferimenti. Se però il programma l'hai fatto tu e dici che funzioni del genere non ci sono, allora la presenza di quel riferimento potrebbe anche non significare nulla.
    Vedi che la cosa è strana pure per Mikelemm? (mi rassicura sul fatto che non ho preso una puntato l'attenzione su una cosa insignificante).
    Butto lì un'altra idea: hai qualche programma "commerciale" per la gestione / ottimizzazione del codice vba che potrebbe aver fatto quella cosa dell'aggiungere-togliere i riferimenti magari in automatico? Altrimenti i riferimenti, da soli, non si modificano (se non per la parte in cui cercano la "versione corrispondente" in quelli mancanti: è abbastanza comune che la Microsoft Access Object Library trovi la propria corrispondente nel passaggio da una versione ad un'altra o da un computer ad un altro... ma non certo aggiungere quello che da un'altra parte non c'è)

    Nel frattempo hai verificato se aggiungendo il riferimento a Microsoft DAO 3.6 nel computer dove manca cambia qualcosa?

    Hai detto che sono tutti Win7 (non win 2007 ) con Office 2010 ed Access 2010. Possono esserci problemi con i 32-64 bit? Hai verificato che anche quello corrisponda?
  • Re: Errore di runtime 2046

    Phil. e Mike. grazie per l'attenzione.
    Purtroppo non ho risolto alcunchè.
    Ho controllato e messi a posto i riferimenti,ho verificato i 32-64 bit,ho riprovato con un db vuoto incollandogli gli oggetti ecc.ecc.,ho convertito il db da mdb a acc,....niente da fare.
    Il programma non si apre e nella riga di stato appare la scritta "esecuzione query in corso" e dopo qualche minuto il messaggio di errore di run time.
    Credo a questo punto che vi sia un conflitto tra il data base ed il pc che però non riesco ad individuare.
    nel Web(http://support.microsoft.com/kb/244695/i)ho trovato quale causa "Questo problema si verifica quando la finestra del Database è nascosta nel momento in cui si chiama il metodo ApriMaschera o ApriReport di automazione".Mi si prospettano degli interventi che però mi appaiono
    poco fattibili(?).
    Che fare?
    Buona giornata
  • Re: Errore di runtime 2046

    Partiamo da in fondo:

    silene ha scritto:


    ...
    Credo a questo punto che vi sia un conflitto tra il data base ed il pc che però non riesco ad individuare.
    nel Web(http://support.microsoft.com/kb/244695/i)ho trovato quale causa "Questo problema si verifica quando la finestra del Database è nascosta nel momento in cui si chiama il metodo ApriMaschera o ApriReport di automazione".Mi si prospettano degli interventi che però mi appaiono
    poco fattibili(?).
    Questo link l'avevo visto anch'io ieri ma l'ho escluso fin da subito perché ho concluso, in base a quello che dicevi, che fosse impossibile che ci fosse la finestra del database nascosta, all'avvio. Usi l'automazione per aprire il database? cioè lo fai da un'altra applicazione o da un'altra istanza di Access? Improbabile, direi.

    silene ha scritto:


    Il programma non si apre e nella riga di stato appare la scritta "esecuzione query in corso" e dopo qualche minuto il messaggio di errore di run time.
    Questa cosa l'ho sentita ancora come situazione strana. Però non ricordo, forse è solo una conseguenza del problema "generale" (se hai capito qualcosa di questa frase fammelo sapere, perché non so cosa ho scritto)
    A questo punto sono abbastanza curioso: riesci a privare il db dei dati "sensibili" (sostituendoli con qualsiasi cosa purché si riesca ad operare) e a pubblicarlo qui o su un server di condivisione?
    Prometto che se trovo qualcosa di interessante nel codice, che mi piace e che uso, scrivo dappertutto che è tuo.

    silene ha scritto:


    nel Web(http://support.microsoft.com/kb/244695/i)
    Quando vedi queste pagine che sono il risultato di una traduzione automatica (ed è scritto all'inizio dell'articolo) cambia subito la fine dell'url da /it a /en-us, almeno leggi qualcosa di senso compiuto. A volte le traduzione automatiche sono pericolose.
  • Re: Errore di runtime 2046

    silene ha scritto:


    Il programma non si apre e nella riga di stato appare la scritta "esecuzione query in corso" e dopo qualche minuto il messaggio di errore di run time.
    Quali funzioni utilizzi per automatizzare l'avvio del Db? La scritta "esecuzione query in corso" mi fa pensare ad un recupero di dati che non riesce a fare. Access 2010 elabora alcune condizioni WHERE in maniera differente dalle versioni precedenti. Cerca "Problemi con query di access 2010".
    Però, se sulle altre macchine gira bene con il 2010, hai provato a verificare anche che i Service pack di Windows e di office che sono installati siano tutti uguali?
  • Re: Errore di runtime 2046

    Ciao Philc.,
    purtroppo non posso privare il db dei dati sensibili e quindi non è possibile fare quello che proponi.
    Ciao Mike.,
    l'avvio del DB lo faccio con Autoexec(creazione guidata), forse dovrei avviarlo tramite routine?
    Inoltre ho verificato la versione dei Service Pack:sono tutti uguali.
    Ho visitato il forum sui problemi con le query ma mi pare non facciano al caso mio.
    Ho interpellato il tecnico che ha installato il pc e mi ha fatto notare che potrebbero esserci dei conflitti con il db a causa dei vari file che HP(il pc è un HP)installa per default.
    Mi ha dato delle dritte per disinstallare quelli inutili ed è ciò che ho fatto(con fatica) senza però approdare a nulla, il Db non si apre.
    Non so proprio che pesci pigliare.
    Grazie per i vostri interventi e vi auguro una buona notte.
  • Re: Errore di runtime 2046

    silene ha scritto:


    Ho interpellato il tecnico che ha installato il pc e mi ha fatto notare che potrebbero esserci dei conflitti con il db a causa dei vari file che HP(il pc è un HP)installa per default.
    Con tutto il rispetto per i tecnici che installano i computer: o ha letto ogni riga del codice del db ed è un super esperto di Access + VBA o...

    silene ha scritto:


    Mi ha dato delle dritte per disinstallare quelli inutili ed è ciò che ho fatto(con fatica) senza però approdare a nulla, il Db non si apre.
    la logica conclusione del discorso di prima.
    Altre verifiche: ci sono particolari restrizioni a livello di "rete", tipo accesso limitato al file e/o alla directory in cui si trova il db?
    Sei all'interno di una rete aziendale, forse ci sono regole impostate a livello di server/dominio o quello che può mai essere che limitano l'esecuzione del codice.

    silene ha scritto:


    ...l'avvio del DB lo faccio con Autoexec(creazione guidata)...
    e che c'è in quell'Autoexec? Se non si può avere il db per un'analisi completa credo che dovresti iniziare a postare un po' di codice e qualche videata (alla bisogna), altrimenti facciamo tutte ipotesi campate in aria.
  • Re: Errore di runtime 2046

    silene ha scritto:


    l'avvio del DB lo faccio con Autoexec(creazione guidata), forse dovrei avviarlo tramite routine?
    è una contraddizione in termini, un DB non si può avviare (non è un'eseguibile!!!), quindi l'espressione risulta incomprensibile.
    Traduci in pratica cosa intendi dire...

    silene ha scritto:


    Inoltre ho verificato la versione dei Service Pack:sono tutti uguali.
    Se il DB è sul server, è ininfluente.

    silene ha scritto:


    Ho visitato il forum sui problemi con le query ma mi pare non facciano al caso mio.
    Ho interpellato il tecnico che ha installato il pc e mi ha fatto notare che potrebbero esserci dei conflitti con il db a causa dei vari file che HP(il pc è un HP)installa per default.
    un tecnico non è uno sviluppatore e, soprattutto, ragiona da tecnico.

    silene ha scritto:


    Mi ha dato delle dritte per disinstallare quelli inutili ed è ciò che ho fatto(con fatica) senza però approdare a nulla, il Db non si apre.
    Appunto! C.V.D.

    silene ha scritto:


    Non so proprio che pesci pigliare.
    Immagino
Devi accedere o registrarti per scrivere nel forum
16 risposte