Agregar un registro en blanco a un subformulario para pegar el resultado de un cuadro combinado

Adjunto la imagen de una duda que preciso resolver desde ya agradecido por sus comentarios,

Tengo un formulario con un subformulario. En el formulario coloque un botón llamado [Buscar Producto] al presionarlo abre un cuadro combinado con la información de los productos (ver imagen), luego de buscar por el cuadro combinado el producto que deseo seleccionar al dar click se ejecuta la siguiente instrucción:

Private Sub cmbProductos_Click()
DoCmd.SetWarnings False
If CurrentProject.AllForms("Orden de Compra").IsLoaded Then
Forms("[Orden de Compra]").[Orden de Compra Detalle].Form.txtcodProducto = Me.cmbProductos.Column(1)
End If
End Sub

Esto se ejecuta sin problemas, sin embargo el usuario siempre debe abrir cuadro combinado estando en un registro en blanco del subformulario, pues de no ser así los datos son cambiados con el valor de la nueva selección, he probado colocando la instrucción:

DoCmd. GoToRecord,, acNewRec como primera instruccion del IF pero no consigo nada.

¿Hay alguna forma de poder evitar que los registros cambien al seleccionar un nuevo producto?

La verdad es bastante incomodo ir a un registro vacío y desde allí pulsar el botão, gracias por la ayuda

1 Respuesta

Respuesta
2

Si quieres mantener ese código, primero tendrías que poner el foco en el subformulario, luego moverte a un registro nuevo, y poner el dato.

Sin embargo, yo lo haría de otra forma (el código anterior tiene "cosillas" que no me gustan), crear el registro nuevo directamente en la tabla y actualizando el subformulario. Algo así:

Application.Echo False
CurrentDb.Execute "INSERT INTO TablaSubform(Campo1,codProd) VALUES(" Me.campo1 & ",'" & Me.cmbProductos.Column(1) & "'")
Me.[Orden de Compra Detalle].Requery  'Si te da error aquí, pon: Me.[Orden de Compra Detalle].Form.Requery  
Application. Echo True

Donde TablaSubform será la tabla de la que coge datos el subformulario, Campo1, el campo por el que se vincula el formulario con el subformulario y Me. Campo1, el nombre del control asociado a ese campo en el formulario principal.

Un saludo.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas