[RESUELTO]Consulta que actualice tabla a partir de otra tabl
-
- Mensajes: 47
- Registrado: Sab Feb 12, 2011 2:17 pm
[RESUELTO]Consulta que actualice tabla a partir de otra tabl
Buenos dias: Tengo una tabla llamada Sumarios en la que hay dos campos, uno llamado Sumariante y el otro idsumariante.
Por su parte tengo otra tabla en la que estan los noimbres de los sumariantes que llenan el campo Sumariante de la tabla Sumarios. Esta tabla Sumariantes tiene asignado a cada uno de los nombres un Id
Lo que necesitaria es hacer una consulta que me permita llenar el campo idsumariante de la tabla sumarios de acuerdo al nombre seleccionado, con el Id de la tabla Sumartiantes.
Ejemplo Tabla Sumariantes:
Nombre Id
Nacho 1
Pablo 2
Si en la tabla Sumarios, en el campo Sumariante figura Nacho, que la consulta ponga en idsumariante el numero 1, o sea que busque el numero de id de la tabla Sumariantes y la ponga en la tabla sumarios de acuerdo al sumariante seleccionado.
Espero que se entienda.
Muchas gracias
Por su parte tengo otra tabla en la que estan los noimbres de los sumariantes que llenan el campo Sumariante de la tabla Sumarios. Esta tabla Sumariantes tiene asignado a cada uno de los nombres un Id
Lo que necesitaria es hacer una consulta que me permita llenar el campo idsumariante de la tabla sumarios de acuerdo al nombre seleccionado, con el Id de la tabla Sumartiantes.
Ejemplo Tabla Sumariantes:
Nombre Id
Nacho 1
Pablo 2
Si en la tabla Sumarios, en el campo Sumariante figura Nacho, que la consulta ponga en idsumariante el numero 1, o sea que busque el numero de id de la tabla Sumariantes y la ponga en la tabla sumarios de acuerdo al sumariante seleccionado.
Espero que se entienda.
Muchas gracias
Última edición por estudioiar el Mié Mar 16, 2011 4:05 pm, editado 1 vez en total.
Open Office 3.2 - Windows 7
Re: Consulta que actualice tabla a partir de valor de otra t
Hola...
¿Es la misma pregunta que hiciste aquí: http://user.services.openoffice.org/es/ ... 25&start=0 ?
¿Es la misma pregunta que hiciste aquí: http://user.services.openoffice.org/es/ ... 25&start=0 ?
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
-
- Mensajes: 47
- Registrado: Sab Feb 12, 2011 2:17 pm
Re: Consulta que actualice tabla a partir de valor de otra t
No. Porque en la otra pregunta quería hacerlo directamente desde un formulario. Para eso use el ejemplo de Gesfactura, pero lo que ahora quiero hacer es actualizar los datos a traves de una consulta SQL. Lo puedo hacer desde el Ejecutor de Comandos SQL, pero la idea era hacerlo a través de una consulta que se ejecutara al cerrar el formulario.
La consulta SQL la tengo. es UPDATE Sumarios, Sumariantes SET Sumarios.IdSumariante = [Sumariantes]![Id]
WHERE ((([Sumarios]![Sumariante])=[Sumariantes]![Sumariante]));
pero no puedo ejecutarla como consulta ni se como hacerlo desde una macro.
Asi que a la pregunta si es sobre el mismo tema, la respuesta es si. Pero no es la misma pregunta ya que lo que busco es modo diferente de llegar al resultado deseado.
Se agradece la ayuda
La consulta SQL la tengo. es UPDATE Sumarios, Sumariantes SET Sumarios.IdSumariante = [Sumariantes]![Id]
WHERE ((([Sumarios]![Sumariante])=[Sumariantes]![Sumariante]));
pero no puedo ejecutarla como consulta ni se como hacerlo desde una macro.
Asi que a la pregunta si es sobre el mismo tema, la respuesta es si. Pero no es la misma pregunta ya que lo que busco es modo diferente de llegar al resultado deseado.
Se agradece la ayuda
Open Office 3.2 - Windows 7
-
- Mensajes: 47
- Registrado: Sab Feb 12, 2011 2:17 pm
Re: Consulta que actualice tabla a partir de valor de otra t
Mejor dicho, ahora que lo pienso es como puedo hacer una mcro que ejecute la siguiente consulta SQL:
UPDATE Sumarios, Sumariantes SET Sumarios.IdSumariante = [Sumariantes]![Id]
WHERE ((([Sumarios]![Sumariante])=[Sumariantes]![Sumariante]));
Muchas gracias
UPDATE Sumarios, Sumariantes SET Sumarios.IdSumariante = [Sumariantes]![Id]
WHERE ((([Sumarios]![Sumariante])=[Sumariantes]![Sumariante]));
Muchas gracias
Open Office 3.2 - Windows 7
Re: Consulta que actualice tabla a partir de valor de otra t
Hola,
En Gesfactura tienes el ejemplo, la macro esta asignada en el formulario forArticulos al botón cambiar precios.
Saludos
En Gesfactura tienes el ejemplo, la macro esta asignada en el formulario forArticulos al botón cambiar precios.
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
-
- Mensajes: 47
- Registrado: Sab Feb 12, 2011 2:17 pm
Re: Consulta que actualice tabla a partir de valor de otra t
La acabo de ver y de probar. Sin embargo me sale un error. La macro me quedó asi
Sin embargo me tira el error: Corchetes no validos en el nombre Sumariantes.Id
Código: Seleccionar todo
Sub ActualizarId( Evento )
Dim oCon As Object
Dim oStat As Object
Dim sSQL As String
Dim oRes As Object
'Conecto con la base
oCon = ThisDatabaseDocument.CurrentController.ActiveConnection
oStat = oCon.CreateStatement
'Actualizo todos los datos en una consulta
sSQL = "UPDATE ""Sumarios"" SET ""IdSumariante"" = ""Sumariantes.Id"" WHERE ""Sumarios.Sumariante""=""Sumariantes.Sumariante"""
oRes = oStat.ExecuteQuery(sSQL)
End Sub
Open Office 3.2 - Windows 7
-
- Mensajes: 47
- Registrado: Sab Feb 12, 2011 2:17 pm
Re: Consulta que actualice tabla a partir de valor de otra t
Modifique la consulta, y la macro quedó asi:
Sin embargo tira el siguiente error en la linea oRes= oStat.ExecuteQuery(sSQL) : La ejecucion de la consulta no regresa un resultado válido
Muchas gracias
Los cambios los hace.Sub ActualizarId( Evento )
Dim oCon As Object
Dim oStat As Object
Dim sSQL As String
Dim oRes As Object
'Conecto con la base
oCon = ThisDatabaseDocument.CurrentController.ActiveConnection
oStat = oCon.CreateStatement
'Actualizo todos los datos en una consulta
sSQL = "UPDATE Sumarios, Sumariantes SET Sumarios.IdSumariante = [Sumariantes]![Id] WHERE ((([Sumarios]![Sumariante])=[Sumariantes]![Sumariante]));"
rem sSQL = "UPDATE ""tabArticulos"" SET ""Precio""=""Precio""+ ( ""Precio""*"& Aumento &" / 100 ),""FechaActualizacion""=CURDATE() WHERE ""IDFamilia"" = "&Familia
oRes = oStat.ExecuteQuery(sSQL)
End Sub
Sin embargo tira el siguiente error en la linea oRes= oStat.ExecuteQuery(sSQL) : La ejecucion de la consulta no regresa un resultado válido
Muchas gracias
Open Office 3.2 - Windows 7
Re: Consulta que actualice tabla a partir de valor de otra t
Hola,
Creo que el problema es de la SQL. No te puedo asegurar si se pueden actualizar campos donde intervienen dos tablas, nunca lo he probado, pero lo de los corchetes lo tienes mal, revisalo.
Saludos
Creo que el problema es de la SQL. No te puedo asegurar si se pueden actualizar campos donde intervienen dos tablas, nunca lo he probado, pero lo de los corchetes lo tienes mal, revisalo.
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
-
- Mensajes: 47
- Registrado: Sab Feb 12, 2011 2:17 pm
Re: Consulta que actualice tabla a partir de valor de otra t
El tema es que la consulta la hace, los datos los actualiza, pero tira ese error. Dejo el tema como pendiente. Lo voy a seguir estudiando.
Muchas gracias
Muchas gracias
Open Office 3.2 - Windows 7
-
- Mensajes: 47
- Registrado: Sab Feb 12, 2011 2:17 pm
Re: Consulta que actualice tabla a partir de valor de otra t
Ya encontre la forma de hacerlo. Se puede hacer una consulta SQL con dos tablas. El tema esta en que en vez de ExecuteQuery debe decir ExecuteUpdate.
La macro quedaría asi
La macro quedaría asi
Código: Seleccionar todo
Sub ActualizarId( Evento )
Dim oCon As Object
Dim oStat As Object
Dim sSQL As String
Dim oRes As string
'Conecto con la base
oCon = ThisDatabaseDocument.CurrentController.ActiveConnection
oStat = oCon.CreateStatement
'Actualizo todos los datos en una consulta
sSQL = "UPDATE Sumarios, Sumariantes SET Sumarios.IdSumariante = [Sumariantes]![Id] WHERE ((([Sumarios]![Sumariante])=[Sumariantes]![Sumariante]));"
oRes = oStat.ExecuteUpdate(sSQL)
End Sub
Open Office 3.2 - Windows 7
Re: Consulta que actualice tabla a partir de valor de otra t
Hola...
ExecuteQuery es para hacer consultas...
ExecuteUpdate es para hacer actualizaciones...
Saludos
ExecuteQuery es para hacer consultas...
ExecuteUpdate es para hacer actualizaciones...
Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Re: [RESUELTO]Consulta que actualice tabla a partir de otra
Hola estoy intentando usar esta misma macro adaptada a mi base pero me da error. Tengo dos tablas TABLA_PALET y TABLA REGISTO. En las dos tablas tengo los campos de IDPALET y UBICACION. Lo que necesito es que con la macro me rellene el campo ubicacion de la tabla registo. para ello tiene que comparar los IDPALET de las dos tablas y copiar el dato de la UBICACION de la TABLA_PALET a la TABLA_REGISTRO.
End Sub
Sub ActualizarTABLA( Evento )
Dim oCon As Object
Dim oStat As Object
Dim sSQL As String
Dim oRes As string
'Conecto con la base
oCon = ThisDatabaseDocument.CurrentController.ActiveConnection
oStat = oCon.CreateStatement
sSQL = "UPDATE TABLA_PALET, TABLA_REGISTRO SET TABLA_PALET.IDPALET = [TABLA_REGISTRO]![IDPALET] WHERE ((([TABLA_PALET]![UBICACION])=[TABLA_REGISTRO]![UBICACION]));"
oRes = oStat.ExecuteUpdate(sSQL)
End Sub
gracias por la ayuda
End Sub
Sub ActualizarTABLA( Evento )
Dim oCon As Object
Dim oStat As Object
Dim sSQL As String
Dim oRes As string
'Conecto con la base
oCon = ThisDatabaseDocument.CurrentController.ActiveConnection
oStat = oCon.CreateStatement
sSQL = "UPDATE TABLA_PALET, TABLA_REGISTRO SET TABLA_PALET.IDPALET = [TABLA_REGISTRO]![IDPALET] WHERE ((([TABLA_PALET]![UBICACION])=[TABLA_REGISTRO]![UBICACION]));"
oRes = oStat.ExecuteUpdate(sSQL)
End Sub
gracias por la ayuda
OPPENOFFICE 4.1.1 en WINDOWS
Re: [RESUELTO]Consulta que actualice tabla a partir de otra
Hola,
No es conveniente reabrir un viejo tema y menos si esta solucionado, pues tienes menos posibilidades que te puedan ayudar. De todas formas prueba con esto y si no te funciona abres un nuevo hilo con un pequeño ejemplo. Por supuesto pon las comillas correspondientes de la macro
update TABLA_REGISTRO set UBICACION = (select UBICACION from TABLA_PALET where IDPALET = TABLA_REGISTRO.IDPALET)
Saludos
No es conveniente reabrir un viejo tema y menos si esta solucionado, pues tienes menos posibilidades que te puedan ayudar. De todas formas prueba con esto y si no te funciona abres un nuevo hilo con un pequeño ejemplo. Por supuesto pon las comillas correspondientes de la macro
update TABLA_REGISTRO set UBICACION = (select UBICACION from TABLA_PALET where IDPALET = TABLA_REGISTRO.IDPALET)
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Re: [RESUELTO]Consulta que actualice tabla a partir de otra
Muchas gracias funciona perfectamente.
Saludos
Saludos
OPPENOFFICE 4.1.1 en WINDOWS