Inicio > Microsoft Access > johhan16 > Actualizar Campo con datos de otra tabla.

Actualizar Campo con datos de otra tabla.

Experto:
Usuario:
Fecha: 27/12/2008
Valoración: (3,00 sobre 5) Categoría: Microsoft Access
24/12/2008
jmoraga1, usuario preguntando en Microsoft Access
Usuario
Hola, primeramente comento que soy completamente ignorante de Access asi que tratenme con paciencia jiji.
La consulta es la siguiente: Tengo dos tabla, la primera tiene todos los Puntos de Venta llamada Nom_PDV y tiene los campos Nom_PDV.Cod_PDV, Nom_PDV.Desc_PDV y Nom_PDV.Cod_Cadena y estos campos los lleno yo manualmente. Hasta allí todo bien.
La segunda tabla es la que quiero que se actualice automaticamente y se llama Bitacora en ella hay muchos campos entre ellos Bitacora.Cod_Cliente, Bitacora.Cod_PDV, Bitacora.Desc_PDV, Bitacora.Comentario, Bitacora.Status, etc...Esa es la que se llena con un programa.
Lo que quiero es que cuando el programa incluya una nueva linea con información, la BD busque el Cod_PDV en la tabla Nom_PDV (donde esta toda la info) y actualice el campo Cod_Cadena con el dato que se asocia en la primera tabla.
Por ejemplo en el Nom_PDV.Cod_PDV es "10101", la Nom_PDV.Cod_Cadena es "7" y el Nom_PDV.Descr_PDV es "Hipermas Curridabat"; entonces cuando el programa incluya una nueva linea del Bitacora.Cod_PDV con el codigo "10101" automaticamente el campo Bitacora.Cod_Cadena sea "7". Se puede??
24/12/2008
jmoraga1, experto respondiendo en Microsoft Access
Experto
claro que se puede amigo te explico
debes crear un formulario en blanco y colocas los cuadros de texto correspondientes ejemplo
cuadro1 = "Cod_PDV"
cuadro2 = "Cod_cadena"
cuadro3 = "Descr_PDV"          (todos estos nombres se colocan en la parte de nombre de la propiedad de cada cuadro de texto para que asi el codigo que haremos lo reconozca como tal)
entonces en el cuadro1 llamado Cod_PDV vamos a las propiedades en el evento Al Salir colocas generador de codigo he ingresas lo siguiente
**********************************************
Private Sub Cod_PDV_Exit(Cancel As Integer)
If IsNull(Cod_PDV) = False Then
If IsNull(DFirst("id", "Nom_PDV", "val(Cod_PDV) ='" & Cod_PDV & "'")) = False Then
Cod_cadena = DFirst("Cod_Cadena", "Nom_PDV", "Val(Cod_PDV) ='" & Cod_PDV & "'")
Descr_PDV = DFirst("Descr_PDV", "Nom_PDV", "Val(Cod_PDV) ='" & Cod_PDV & "'")
Else
MsgBox "El Codigo de PDV " & Cod_PDV & " no aparece registrado"
End If
End If
End Sub
***********************************************
cabe destacar que en la tabla Nom_PDV debes teer una columna Id que debe ser autonumerico.
espero que te sirva cualquier cosa avisas
Feliz Navidad!!!
24/12/2008
jmoraga1, usuario preguntando en Microsoft Access
Usuario
:) mmm gracias y feliz navidad para usted también. Pero vieras que yo se hacerlo por código con la instrucción UPDATE sin embargo lo que estoy buscando es la forma de que el mismo Access se encargue de hacerlo y llene los campos automaticamente. Eso se puede? Lei varios manuales de Access 2003 y no tengo ni idea!!
27/12/2008
jmoraga1, experto respondiendo en Microsoft Access
Experto
la verdad no entiendo bien lo que deseas pero el codigo que te coloque lo que hace es que al escribir un Cod_PDV y darle a enter el programa te mostrara el Cod_Cadena y la Descr_PDV que esta relacionada a ese Cod_PDV y en dado caso que no exista informacion del Cod_PDV te muestra un mensaje diciendo que no aparece registrado
27/12/2008
jmoraga1, usuario preguntando en Microsoft Access
Usuario
tranqui no te sientas frustrado que ya le pregunté a un par de expertos en access y me confirmaron que no se puede hacer asi que don't worry :) gracias de todos modos!!
Enlaces patrocinados