Visual Basic - Pasar datos de una tabla a otra.

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Pasar datos de una tabla a otra.

Publicado por Alberto (115 intervenciones) el 09/09/2021 16:53:11
Trabajo con VB6.0. En una BD tengo dos tablas
Remesas (con los campos INV (inversor), importe, plataforma, etapa, situación (P o R, Pendiente o Recibido) y
Resumen (con los campos INV, saldocuenta, plataforma).
Quiero que cuando en Remesas yo modifique (al pulsar Aceptar y Salir) la situación de P a R
se busque en la tabla Resumen el registro con el mismo INV y Plataforma y sustituya
saldocuenta = saldocuenta + importe.
Llevo dos días intentándolo sin éxito. No consigo abrir la segunda tabla. ¿Cómo debo hacerlo? Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Pasar datos de una tabla a otra.

Publicado por Alberto (115 intervenciones) el 10/09/2021 07:17:16
Para quien haya recibido el mismo nro de respuestas que yo en español (roscou point roscou roscou) y sepa francés, aquí tiene la solución:
Voici le schema sur lequel je me suis basé.

*tbl_Extract_Suprem (source)
-[SB Number]
-[Sb Revision]


*tbl_DCR (destination)
-[SB_N°] (7)
-[SB_rev]

On va donc tenter de mettre à jour tbl_DCR à partir de données
extraites de tbl_Extract_Suprem si:

Left$([tbl_DCR]![SB_N°],7)=[tbl_Extract_Suprem]![SB Number])
ET
[tbl_DCR]![SB_rev]=[tbl_Extract_Suprem]![Sb Revision]

Il y a deux façons de réaliser cela:

-Une boucle qui parcourir la table tbl_DCR, et recherche la correspondance
dans la table tbl_Extract_Suprem.

Ou alors

-Une requete.
Dans ce cas, il faudra passer par une requete intermédiaire,
sur tbl_DCR (appelant la q_tbl_DCR) et dans laquelle on va retrouver tout les champs de
tbl_DCR, plus un champ généré ([SB_7]) qui représente les 7 premier caractère de [SB_N°].
Cette requete doit être réalisée manuellement, et fera partie intègrante de notre base.

Ainsi notre requête mise à jour sera constituée de :
tbl_DCR , q_tbl_DCR et tbl_Extract_Suprem.
et mettra en relation d' un coté :
- tbl_DCR [SB_N°] <---> q_tbl_DCR [SB_N°]

Et de l' autre:
-q_tbl_DCR [SB_7] <---> tbl_Extract_Suprem [SB_Number]
-q_tbl_DCR [SB_rev] <---> tbl_Extract_Suprem [Sb Revision]

Si tu as la possibilité d' ajouter la requete q_tbl_DCR à ta base,on pourra envisager la requete mise

à jour comme suit:

sQuery="UPDATE (q_tbl_DCR INNER JOIN tbl_DCR " & _
"ON q_tbl_DCR.SB_N° = tbl_DCR.SB_N°) " & _
"INNER JOIN tbl_Extract_Suprem " & _
"ON (q_tbl_DCR.SB_7 = tbl_Extract_Suprem.[SB Number]) " & _
"AND (q_tbl_DCR.SB_rev = tbl_Extract_Suprem.[Sb Revision]) " & _
"SET tbl_DCR.chp1 = tbl_Extract_Suprem!chp1, " & _
"tbl_DCR.chp2 = tbl_Extract_Suprem!chp2, " & _
"tbl_DCR.chp3 = tbl_Extract_Suprem!chp3;"

A la place de chp1, chp2 et chp3 ,tTu pourras mettre autant de champs qu' il y' a en commun.
Tu remarqueras que SB_N° est exclus de la partie SET.Parcequ'on peut pas mettre à jour un champ
quand il fait partie d' une relation.

Si tu n' as pas la main pour ajouter la requete q_tbl_DCR à ta base,
on pourra attaquer le volet boucle.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
sin imagen de perfil
Val: 355
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Pasar datos de una tabla a otra.

Publicado por raul (160 intervenciones) el 10/09/2021 18:14:44
Tienes 2 tablas que tienen 2 campo denominado INV, PLATAFORMA que se supone sean iguales por ende

1- De la operación actual ya tienes los valores de P y R que puedes almacenar en una variable
2- Se supone que debes tener una conexion abierta. Que en mi caso yo denomiré CNN, Ahora necesito una varible STRING que yo denominaré SQL

respuesta

SQL = "Update RESUMEN set saldo cuenta = " & VALOR_P + VALOR_R & " where INV = '" & VALOR_INV & "' and PLATAFORMA = '" & VALOR_PLATAFORMA & "'"

CNN.execute(SQL)

OBS: NO SE NECESITA ABRIR LA SEGUNDA TABLA SOLO ACTUALIZAR EL DATO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Pasar datos de una tabla a otra.

Publicado por Alberto (115 intervenciones) el 10/09/2021 18:55:16
Gracias por la respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar