Ingresar ultimo registro en campo combinado

Tengo un formulario llamado Reporte de servicio balsa, en el cual tengo un cuadro combinado donde elijo el número de balsa, si el mismo no esta en el cuadro combinado lo agrego haciendo click en botón "AGREGAR BALSA", el cual me abre otro formulario para ingresar los datos correspondientes. Mi problema surge cuando ingreso un nuevo registro a través de ese forma, cuando agrego el registro en la tabla AGREGAR BALSA, no se agrega automáticamente en el cuadro combinado, sino que tengo que buscarlo entre todos los registros que figuran en ese campo.

2 respuestas

Respuesta
1

Puede utilizar este código en el evento "Al no estar en la lista" de cuadrdo combinado:

Private Sub cboBolsa_NotInList(NewData As String, Response As Integer)
 Dim intReply As Integer
       intReply = MsgBox("La bolsa'" & NewData & _
       "' no está en la lista, quiere adiconarla ?", vbYesNo, "Registrando Bolsa")
       If intReply = vbYes Then
          DoCmd.OpenForm "miformbolsas", , , , acFormAdd, acDialog, NewData
          'Registro añadido cancelamos el procedemiento predeterminado de Acces
          Response = acDataErrAdded
       Else
          MsgBox "Por favor seleccione una bolsa de la lista", vbInformation, "Registrando Bolsa"
          'Tratamos el error y decimos a Access que continue
          Response = acDataErrContinue
       End If
End Sub

Esto le permite registrar la nueva bolsa y al regresar al cuadro combinado aparezca este número.

Cambie la palabra miformbolsas por el nombre de su formulario donde registra las bolsas nuevas.

Respuesta

Si lo que se desea es que al agregar una nueva balsa al combo esta quede seleccionada automáticamente, solo se necesita que tras la inserción (y correspondiente actualización del combo si fuera necesario) se le asigne ese valor al combo.

Supongamos que tengo el Combo1 como objeto de un formulario y mediante el mismo formulario añado al combo un elemento mas (el ítem 44 o Balsa22 o lo que lo defina).

Tras actualizar el combo para que presente el nuevo dato (ello depende del origen de datos del combo), para que 'auto seleccione' el nuevo elemento solo hay que igualar el valor del combo a ese elemento:

En VBA ==>> Me.Combo1 = 44 o Balsa22 o ...

Esto es: igualarlo al valor recién insertado (y por ello conocido)

¡Gracias!

Entendido, o sea que al campo combinado "balsa" le inserto un evento "despues de actualizar", y le pongo el siguiente codigo: me.balsa = --------- nuevo registro?? pero como lo coloco en vba?

Otro tema importante, es que no quede sujeto siempre a nuevos registros, ya que también necesito poder elegir registros que ya están ingresados también.

Si creas un nuevo dato en el combo (y eso creo que ya lo tienes pues lo buscas y esta), solo has de decirle que lo aplique como el activo y eso se hace igualando el combo (por el dato que devuelve) con el que acabas de crear (y que por lo tanto conoces).

Supongamos que creas el nuevo dato y es 'Balsa 122' ( y si tiene ID, el 1234)

Lo añades al conjunto y tras ello como deseas que se seleccione en el combo (para evitar tener que localizarlo y seleccionarlo)

Si el combo devuelve por defecto 'Balsa 122' :

Me.[El combo] = "Balsa 122"

Si el combo visualiza el nombre pero devuelve el ID:(1234)

Me.[El combo] = 1234

Y sea por uno u otro (el adecuado) en el combo aparecerá el dato recién añadido seleccionado.

La asignación ha de hacerse 'después de' que este ya en el combo añadido el nuevo dato,' si no está ... no podrá ser seleccionado.

Al respecto de ..., es que no quede sujeto siempre a nuevos registros, y

El resto de datos continua estando en el combo (un poco más apretados al aumentar la cantidad de elementos), lo anterior solo fuerza a que se seleccione el recién creado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas