** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Cuadro lista a subformulario
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCuadro lista a subformulario

 Responder Responder
Autor
Mensaje
maxpro Ver desplegable
Colaborador
Colaborador


Unido: 04/Marzo/2006
Localización: Argentina
Estado: Sin conexión
Puntos: 1556
Enlace directo a este mensaje Tema: Cuadro lista a subformulario
    Enviado: 06/Abril/2023 a las 19:02
Hola, buenas tardes!

He probado y escrito miles de códigos (literal) y se me acabaron las ideas, quizas sea simple y yo me la complico.

Tengo un cuadro lista donde están todos los productos en existencia, con un filtro que anda bastante bien, lo que deseo en este caso es que al hacerle doble click al producto deseado me lo inserte en otro formulario de venta rápida, en realidad en el subformulario que es continuo, obviamente sin reemplazarlo en caso que ya haya elegido otro, Las complicaciones que he tenido con cada código creado, sinceramente me parece algo facil pero la estoy haciendo dificil creo, los problemas que he tenido son:
1) Carga los datos pero al no colocarle el Id automaticamente no se muestran en el Subform, si en la tabla pero sin su Id correspondiente.
2) Me abre una copia de subform en una forma individual, tampoco carga el Id, no me sirve
3) Me carga los datos sin el Id y crea 4 campos vacios entre cada uno.
Y asi varios problemas mas.

EDITO: Cabe aclarar que los dos formularios están abiertos al momento de ejecutar el codigo

Ya no se me ocurre mas nada, alguien sabe alguna forma de hacer esto??

Saludos


Editado por maxpro - 06/Abril/2023 a las 19:05
-------Maxpro-------

San Luis - Argentina
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14746
Enlace directo a este mensaje Enviado: 06/Abril/2023 a las 19:46
Hola,

Te voy a decir como lo probaría yo:

- Enfocar el subformulario del segundo formulario con algo parecido a esto:
Forms!ElOtroFormulario.Controls("ElSubForm").Form.SetFocus
- Ir a un nuevo registro:
DoCmd.GoToRecord , Me.NewRecord
- Pasarle el Id del Producto que se supone es el valor de la columna dependiente del ListBox al control adecuado del formulario
Forms!ElOtroFormulario.Controls("ElSubForm").Form.Controls("elIdProducto") = Me!lstProducto


Otra opción podría ser insertar el registro con una consulta y actualizar el subformulario

En cualquier caso está un poco complicado dar más posibilidades sin saber lo que has hecho y lo que no.

Un saludo



Xavi, un minyó de Terrassa

Mi web
Arriba
maxpro Ver desplegable
Colaborador
Colaborador


Unido: 04/Marzo/2006
Localización: Argentina
Estado: Sin conexión
Puntos: 1556
Enlace directo a este mensaje Enviado: 06/Abril/2023 a las 20:36
Hola Xavi, este es uno de los codigos que pense que funcionaria pero no!

Private Sub Lista1_DblClick(Cancel As Integer)
    Dim Id As Long
    Dim producto As String
    Dim Precio As Double
    
    ' Obtener los valores de los campos de la fila seleccionada en la lista
   
    Id = CLng(Me.Lista1.Column(0))
    producto = Me.Lista1.Column(1)
    Precio = Me.Lista1.Column(4)
    
    ' Abrir el subformulario
    DoCmd.OpenForm "VentaRapidaSub", acNormal, , , acFormAdd, acWindowNormal
    
    ' Agregar un nuevo registro en el subformulario
    Forms!VentaRapida!VentaRapidaSub.Form.Recordset.AddNew
   
    ' Asignar los valores a los campos del nuevo registro
    Forms!VentaRapida!VentaRapidaSub.Form.Recordset.Fields("Codigo").Value = Id
    Forms!VentaRapida!VentaRapidaSub.Form.Recordset.Fields("Producto").Value = producto
    Forms!VentaRapida!VentaRapidaSub.Form.Recordset.Fields("Precio").Value = Precio
    
    ' Guardar el registro y refrescar el subformulario
    Forms!VentaRapida!VentaRapidaSub.Form.Recordset.Update
    Forms!VentaRapida!VentaRapidaSub.Form.Requery

End Sub

El formulario a donde deben ir los datos se llama "VentaRapida" y el subform "VentaRapidaSub"

Saludos
-------Maxpro-------

San Luis - Argentina
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14746
Enlace directo a este mensaje Enviado: 11/Abril/2023 a las 08:53
Hola,

No explicas que es lo que no funciona pero me surge una duda: ¿abrir el subformulario? Yo pensaba que el formulario ya lo tendrías abierto, de ahí que propusiera enfocar el subformulario.

En otras ocasiones yo utilizo variables o estructuras públicas (estoy empezando a experimentar con TempVars) para pasar valores entre formularios. En el Load del segundo formulario evalúo si requiere de "algo" especial y actúo en consecuencia pero en el formulario destino.

Un saludo




Xavi, un minyó de Terrassa

Mi web
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 14027
Enlace directo a este mensaje Enviado: 11/Abril/2023 a las 11:03
Si no me he perdido ... el pase de valores a un formulario / subformulario (informe/subinforme) se hace muy fácil con el argumento OpenArgs.

En el caso de que necesites pasar más de un valor, los mandas con un separador y en el destino obtienes los valores con split.

Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
maxpro Ver desplegable
Colaborador
Colaborador


Unido: 04/Marzo/2006
Localización: Argentina
Estado: Sin conexión
Puntos: 1556
Enlace directo a este mensaje Enviado: 11/Abril/2023 a las 17:35
Hola Mihura.

Al otro dia mas descansado entendi que podia pasarle los valores de la siguiente manera:

En el evento doble click a la lista:

Forms!VentaRapida!VentaRapidaSub.Form!Codigo = Me.Lista1.Column(0)
Forms!VentaRapida!VentaRapidaSub.Form!Producto = Me.Lista1.Column(1)
Forms!VentaRapida!VentaRapidaSub.Form!Precio = Me.Lista1.Column(4)
DoCmd.GoToRecord , , acNewRec

De esta manera logro que me inserte el Codigo, Producto y Precio del item al que hice doble click en un Subformulario, por si le sirve a alguien aqui lo dejo

Saludos Cordiales!
-------Maxpro-------

San Luis - Argentina
Arriba
maxpro Ver desplegable
Colaborador
Colaborador


Unido: 04/Marzo/2006
Localización: Argentina
Estado: Sin conexión
Puntos: 1556
Enlace directo a este mensaje Enviado: 11/Abril/2023 a las 17:53
Gracias, ya se puede cerrar el Hilo.



Saludos


Editado por maxpro - 11/Abril/2023 a las 17:55
-------Maxpro-------

San Luis - Argentina
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable