Actualizar desde un cuadro de texto a un cuadro combinado.

En el formulario tengo un CuadroCombinado en el cual hay el Id, Nombre y RutaFoto, en este tengo esta instrucción al no estar en la lista.

Private Sub CboGasto_NotInList(NewData As String, Response As Integer)
Dim ctl As Control
Set ctl = Me.CboGasto
If MsgBox("¿Quieres dar de alta este gasto Si/No? ", vbYesNo, "Confirmar") = vbYes Then
DoCmd.OpenForm "altaGastoNombre", acNormal, , , acFormAdd, acDialog, NewData
Response = acDataErrAdded
Else
Response = acDataErrContinue
ctl.Undo
End If

End Sub

La cual me permite ingresar el nombre si no se encuentra en la lista y tambien la RutaFoto, luego tengo un cuadro de texto que también ingreso la RutaFoto por si en algún momento quiero cambiar la foto con esta instrucción

Private Sub Archivo_LostFocus()

On Error Resume Next
Me.Imagen138.Requery
If Not IsNull(Me.Archivo) Then
Me.Imagen138.Picture = Me.Archivo
Else
Me.Imagen138.Picture = ""
End If
End Sub 'Archivo_LostFocus()

La cual muestra la foto, la cuestión que si entro la RutaFoto en el cuadro combinado si se actualiza en el cuadro de texto pero si lo hago a la inversa no

¿Es posible que se actualice del cuadro de texto al cuadro combinado?

1 respuesta

Respuesta
1

¿Cómo cargas los valores del CuadroCombinado?

Lo suyo es que fuera desde una tabla, si es así, bastaría con añadir el registro a la misma y refrescar el origen del Combo.

Como ves hace falta que detalles más como lo haces.

Hola: más o menos como he puesto al principio tengo el evento si no esta en la lista el código que he puesto donde los va gravando en una tabla que se encuentra el Id, El nombre y la ruta foto, si la ruta foto la entro en este formulario que se habré al introducir en el cuadro combinado un nombre que no se encuentra en la lista todo bien el problema es que si por algún motivo tengo que cambiar la foto que lo hago desde el cuadro de texto no se grava en la Tabla.No se si me explico bien.

La cuestión, se puede gravar desde el cuadro de texto la ruta foto al cuadro combinado.

Saludos.

Suponiendo nombres ...

CurrentDb.Execute "UPDATE TablaFotos SET RutaFoto = '" & NuevoValor & "' WHERE Id = " & Me.Combo

Entiendo que Id es numérico y que es la columna dependiente del combo. 

Donde debo poner esta instrucción.

Saludos

Me ha faltado ponerte el 'refresco' del combo, después del UPDATe le pones un:

Me. Combo. Requery

En el sitio dónde quieras que se cambie el valor, será en el afterUpdate del campo que contiene el nuevo valor de la ruta de la foto.

Donde debo poner el evento al perder enfoque, antes de actualizar etc.

Gracias. 

AfterUpdate = despues de actualizar

Hola de nuevo, he colocado en después de actualizar

Private Sub Archivo_AfterUpdate()
CurrentDb.Execute "UPDATE NombreGastos SET Archivo = '" & NuevoValor & "' WHERE Id = " & Me.Combo
Me.Combo.Requery
End Sub

Algo estará mal porque no hace nada.

Gracias.

Carlos, si copias/pegas sin ver lo escrito es normal que no haga nada. :-P

He puesto NuevoValor haciendo referencia a que ahí tendrás que poner el nuevo valor que quieras que tome el campo. ¿Qué campo tiene el nuevo valor? ¿Archivo? ... pues tendrás que poner ese.

Creo que no nos entendemos la ruta foto la creo en un cuadro de texto llamado Archivo y se tiene que copiar en un cuadro combinado llamado CboGasto donde se encuentran el Id, Nombre y RutaFoto esta con el nombre también Archivo que se debería grabar la ruta que e puesto en el cuadro de texto, osea tanto el cuadro de texto se llama Archivo y el cuadro combinado tiene la RutaFoto se llama también Archivo.

Gracias.

Yo si te entiendo ... lo que tienes que hacer es lo siguiente:

- Al crear la ruta de la foto (evento después de actualizar del campo que contiene ese valor) tienes que actualizar la tabla que contiene los datos (la instrucción UPDATE)

- Acto seguido refrescas el combo (requery) para que coja los datos que acabas de actualizar en la tabla (ya que según has escrito el combo se nutre de esta tabla)

Dices que Yo si te entiendo ... pero no lo tengo claro,

Este es el formulario

si quiero ingresar un IdGasto que no se encuentra en el se abre este

clic en Si este otro

Clic en Ruta Foto se abre la carpeta donde tengo los logos al salir actualiza bien el logo pero si lo quiero cambiar tengo esta otra poción

Clic en Copia Logo abre la carpeta donde están los logos, lo cambio y al salir si actualiza al nuevo logo, pero le doy clic en el Cuadro combinado y aparece el logo que había anteriormente llegados a este punto abro la tabla y veo que la nueva ruta no esta gravada sino que esta la primera, la cuestión es que si tengo que crear un nuevo gasto siempre aparece el logo primero no el segundo., este es lo que no se el porque no se actualiza a la segunda opción siempre esta la primera.

Gracias. Saludos y disculpas por la molestia.

Tienes que analizar lo que te estoy diciendo, el entorno exacto de tu aplicación sólo lo conoces tú.

- Al crear la ruta de la foto (evento después de actualizar del campo que contiene ese valor) tienes que actualizar la tabla que contiene los datos (la instrucción UPDATE)

Según deduzco de tu último post el sitio dónde cambias realmente el valor es en el botón Copia Logo, supongo que lo que hará en el evento click de ese botón es cambiar el valor del campo dónde está la nueva ruta del logo factura y ahí es dónde deberás cambiar el valor del registro en la tabla (con la UPDATE).

Y justo detrás de cambiar ese valor...

- Acto seguido refrescas el combo (requery) para que coja los datos que acabas de actualizar en la tabla (ya que según has escrito el combo se nutre de esta tabla)

Como verás yo si te he entendido, pero tienes que adaptarlo a tu entorno, campos, eventos, etc, ...

Hola: vamos a ver los datos  de la tabla se actualizan tanto el nombre como el logo lo que pasa es que el nombre funciona bien pero el logo tengo que volver a marcarlo en el cuadro combinado para que se actualice el logo, esto es lo que no comprendo porque el nombre si simplemente al abrir el formulario y el logo tengo que marcarlo de nuevo.

 Saludos y gracias.

Puedes asignar la ruta directamente al logo después de haber actualizado la tabla, suponiendo que el valor sea NuevaRuta y el logo se llame Logo:

Me.Logo.Picture = NuevaRuta

También puedes actualizar el valor del combo, justo después de hacer el requery al combo:

Me.Combo = NuevaRuta

Hola. Esta es la instrucción que tengo Al Cargar.

Archivo es la Ruta Foto y Imagen138 es donde se muestra la imagen.

Creo que esta bien.

Saludos.

Hola de nuevo, ne estoy dando cuenta que si creo un gasto y logo nuevo funciona perfecto el problema es cuando me interesa cambiar el logo, entonces es cuando tengo que volver a marcarlo de nuevo en el cuadro combinado para que se actualiza y aparezca el nuevo loga.

Saludos.

Pues ya sabes la instrucción que te falta por poner, asigna el nuevo valor a la imagen que contiene el logo.

No hay manera, lo solucione haciendo clic en el logo para que se actualice y listo, es un poco chapuzas pero no encuentro otra manera.

Gracias por todo.

Ok.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas