Errore di run-time "2046" su comando --> DoCmd.RunCommand acCmdRecordsGoToNew

Anonimo
2018-10-08T22:24:22+00:00

Ciao a tutti,

cercavo di utilizzare il comando DoCmd.RunCommand acCmdRecordsGoToNew,

ricevo però il messaggio di errore

se invece utilizzo il comando DoCmd.GoToRecord , , acNewRec tutto funziona,

stessa cosa se utilizzo il comando  DoCmd.RunCommand acCmdDeleteRecord,

c'è qualche accorgimento particolare da utilizzare?

Ciao & Grazie

Marco

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

2 risposte

Ordina per: Più utili
  1. Anonimo
    2018-10-12T19:15:03+00:00

    Ciao David,

    grazie per il riscontro,

    in effetti ci sono svariati metodi per raggiungere un obiettivo,

    proprio per questo per me la scelta del miglior metodo da utilizzare non è mai facile.

    Ciao & grazie per l'aiuto

    Marco

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-10-09T21:57:17+00:00

    Ciao Marco,

    sono riuscito a riprodurre il tuo errore nel seguente modo: ho creato una form associata in cui ho inserito un pulsante. Nell'evento click ho inserito il comando

    DoCmd.RunCommand acCmdRecordsGoToNew

    e successivamente l'ho sostituito con il comando

    DoCmd.GoToRecord , , acNewRec

    I due comandi realizzando lo stesso risultato, ovvero spostano il focus nel nuovo record della maschera ed entrambi, la prima volta, non restituiscono errori. Se, tuttavia, dopo essermi spostato nel nuovo record, clicco di nuovo sul pulsante eseguendo una seconda volta il comando, con l'istruzione

    DoCmd.RunCommand acCmdRecordsGoToNew

    ottengo l'errore 2046 mentre il l'istruzione

    DoCmd.GoToRecord , , acNewRec

    non mi viene restituito alcun errore.

    Credo che sia un comportamento "by design" su cui poco si può fare. In qualche post in giro per il mondo leggo che DoCmd.RunCommand acCmdRecordsGoToNew è un istruzione deprecata.

    L'unica cosa che potresti fare, volendo per qualche motivo continuare ad utilizzarla, è quello di testare il record attuale:


        If Not Me.NewRecord then

            DoCmd.RunCommand acCmdRecordsGoToNew

        End If


    David

    La risposta è stata utile?

    0 commenti Nessun commento