Access 2007 forma Split VBA: acNewRec sulla impedisce aperte tabulazione attraverso la forma - si comporta come il primo campo non e 'selezionato'

StackOverflow https://stackoverflow.com/questions/4047422

Domanda

Spero che qualcuno mi può dare una mano, o per lo meno aiutare a capire una soluzione.

Sto usando la caratteristica maschera divisa Access 2007 di, e hanno il codice qui sotto corsa sull'evento Form_Open, così come dopo due eventi Button_Click. Il codice funziona bene quando viene eseguito dopo gli eventi Button_Click, ma quando si gira su l'evento Form_Open, causa problemi.

Se la forma viene aperta e utente immette il testo nel primo campo, lui / lei non può usare Tab o il mouse per selezionare il campo modulo successivo. L'utente è bloccato sul primo campo modulo fino a quando premendo Esc per annullare l'immissione dei dati. Per entrare con successo i dati del primo campo di modulo quando il modulo viene aperto, l'utente deve prima selezionare un altro campo modulo, poi ri-selezionare il primo campo di modulo, quindi immettere testo in primo campo modulo. Dopo questa assurdità, l'utente può selezionare il prossimo campo di modulo con Tab o il mouse. Questo deve essere eseguita una volta ogni volta che viene lanciato il modulo. Lo stesso codice VBA sugli eventi Button_Click funziona bene.

Degno di nota: quando il modulo viene prima aperto, nessuno dei campi del modulo nella sezione scheda tecnica del modulo di apparire 'Selected'. Quando un utente inizia a immettere dati nel primo campo modulo, il marcatore 'nuovo record' (*) si sposta alla seconda fila come dovrebbe, ma la prima riga non mostra i dati in ingresso. Questo comportamento è dispari.

Dopo aver eseguito il campo libero, fare clic su un altro campo, fare clic su Indietro per prima soluzione campo sopra descritto, gli spettacoli datasheet campi e dei dati selezionati correttamente in quanto è in ingresso.

Tutte le idee? è un insetto? C'è una soluzione semplice, come ad esempio eseguire la soluzione campo di selezione via VBA in forma aperta?

Ogni aiuto è molto apprezzato.

Codice:

DoCmd.ApplyFilter , "([Contractor].[CheckOutStamp] Is Null)"
DoCmd.GoToRecord , "", acNewRec

Link mdb: https://docs.google.com/leaf?id=0B-jx09cwIQDsYWM2MzMzMDQtYjUzNi00N2E5LWFjYTktNzFiYWYzMDZiYWU1&hl = it & authkey = CPPmoMEF

È stato utile?

Soluzione

Alcuni pensieri:

Prova a spostare da OnOpen a OnLoad. Gli eventi in SuApertura possono accadere prima che i dati sono effettivamente caricata, dove come OnLoad accade dopo che è già stato fatto.

Inoltre, si potrebbe desiderare di solo impostare la proprietà Filter della maschera [Contractor].[CheckOutStamp] Is Null e impostare la FilterOn Sì, e impostare il modulo per DataEntry, il che significa il valore predefinito è un nuovo record su aperta, e non caricare qualsiasi della record anziani. Una volta che è aperto, è possibile cambiare la modalità di modifica / aggiunta del modulo per quello che vuoi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top