Actualizar Varios Registro, Cuadro lista |
Responder
|
| Autor | |||
Lys
Nuevo
Unido: 02/Marzo/2023 Localización: Madrid Estado: Sin conexión Puntos: 3 |
Opciones de entrada
Gracias(0)
Cita Respuesta
Tema: Actualizar Varios Registro, Cuadro listaEnviado: 03/Marzo/2023 a las 11:58 |
||
|
Lo primero, gracias a
todos los que ayudais a los novatos como
una servidora, intentare ser breve y concisa.
Tengo una base de datos para pasar ofertas a los clientes,
con la siguiente estructura: 1º TABLA CABECERA DE OFERTAS [IDNUMEROOFERTA](CLAVE
PRINCIPAL), [FECHA], [CLIENTE] etc. 2º TABLA DETALLE DE OFERTAS [IDDEOFERTA](CLAVE PRINCIPAL), [NUMERO
OFERTA], [ARTICULO], [UND], [DIAS] etc. Relación uno a varios 3º TABLA COEFICIENTE [ID],[INDICADOR],[DIAS] FORMULARIO NUEVAS OFERTAS, con los campos de la primera
tabla SUBFORMULARIO DETALLE DE OFERTAS, con los campos de la
segunda tabla CUADRO
DE LISTA DE LA TABLA COEFICIENTE con los campos de la tercera tabla En muchas ocasiones después de pasar la oferta al cliente con
un montón de artículos ejemp. por 1 [DIA] tengo que modificar este campo e indicar 2 ó
3,5 o lo que sea. Cree un cuadro de lista y en el evento al hacer click puse el
siguiente código, pero solo me actualiza el primer registro. Private Sub Lista_Coeficiente_Click() Me.DIAS = Me.Lista_Coeficiente.Column (2) End Sub Navegando encontré éste otro, y me dice error de
compilación, no se ha definido Sub o Function Private Sub Lista_Coeficiente_Click() Update.DETALLE_DE_OFERTAS Me.DIAS = Me.Lista_Coeficiente.Column(2) WHERE
[FORMULARIOS]![FORMULARIO_NUEVAS_OFERTAS].IDNUMEROOFERTA =
[FORMULARIOS]![SUBFORMULARIO_DETALLE_DE_OFERTA].NUMEROOFERTA End Sub Lo único que me funciona a medias es una consulta de
actualización (ejecuto desde un botón) donde he puesto como criterio [indicar número de días] aquí el
error es que como estamos acostumbrados a usar el teclado numérico, el punto no
lo coge como una coma y cundo pones 3.5
en el campo[DIAS] pone 35. Espero haberme explicado bien. Graciaaaaaassssss Alguna sugerencia??? ¡Creo que al final me he enrollado demasiado! Sorry. Editado por Lys - 03/Marzo/2023 a las 12:45 |
|||
|
Esther
|
|||
![]() |
|||
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14926 |
Opciones de entrada
Gracias(1)
Cita Respuesta
Enviado: 03/Marzo/2023 a las 12:21 |
||
|
Hola Esther y bienvenida al foro,
Este código:
solo actualizará un registro (el que esté activo del subformulario) El otro código que pones es una pseudo-SQL que nunca puede funcionar directamente. Colocado así podria funcionar:
De todas formas, para mi la mejor técnica que se me ocurre para actualizar el conjunto de registros de un subformulario es recorrer su RecordsetClone para lanzar la modificación. (se supone que el ListBox Lista_Coeficiente se encuentra en el formulario padre)
Nota: los experimentos, con gaseosa (o sea, que lo hagas en una copia) Nota2: escrito al vuelo. Revisa la sintáxis. Un saludo
|
|||
![]() |
|||
Lys
Nuevo
Unido: 02/Marzo/2023 Localización: Madrid Estado: Sin conexión Puntos: 3 |
Opciones de entrada
Gracias(0)
Cita Respuesta
Enviado: 03/Marzo/2023 a las 15:15 |
||
|
Un millón de gracias!
El primer código me da error (3078, no puede encontrar la tabla o consulta) El segundo lo escribo así y me da error en esta línea Set rstClone = Me ! DIAS.Form.RecordsetClone No se encontró el método o el dato miembro ListBox Lista_Coeficiente se encuentra en el SUBFORMULARIO_DETALLE_DE_OFERTAS Algo debo de escribir mal ![]() |
|||
|
Esther
|
|||
![]() |
|||
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14926 |
Opciones de entrada
Gracias(0)
Cita Respuesta
Enviado: 03/Marzo/2023 a las 15:54 |
||
|
Hola,
El código CurrentDb no deja de ser lo que conseguirías con una consulta de actualización. Lo que se hace es substituir el valor que darías (clausula SET) por el que tengas en el control y el criterio (clausula WHERE) por el registro actual. El segundo debes asignar el recordsetclone correctamente. Si el cuadro de lista esta en el subformulario y el código se lanza desde el propio subformulario, entonces la asignación es: Set rstClone = Me.RecorsetClone El RecordsetClone es la copia en memoria de los registros de una tabla/consulta/formulario. Tu has escrito Me!DIAS.Form.RecordsetClone y tienes error. Analiza: Me! --> El formulario actual DIAS --> El nombre del control .Form --> Indicas que el control DIAS es un subformulario .RecordsetClone --> y que pretendes hacer una copia (clone) de los registros Como comprenderás, eso es un error. Busca información sobre RecordsetClone (escribe eso en la ventana de código y pulsa F1) para ver como funciona. Un saludo |
|||
![]() |
|||
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14926 |
Opciones de entrada
Gracias(0)
Cita Respuesta
Enviado: 03/Marzo/2023 a las 15:56 |
||
|
Por cierto, me dejé una línea en el código
(es lo que tiene escribir al vuelo)
|
|||
![]() |
|||
Responder
|
|
|
Tweet
|
| Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |