Problema funcion Dbúsq en access

Saludos
Quisiera saber si me puede ayudar en un problema que tengo con la aplicación de la función Dbúsq, le cuento mi caso.
Estoy tratando de utilizar esta función para traer información de un formulario a otro. Tengo un formulario que se llama COSTOS VARIABLES y en el tengo un campo (Costos variables totales) quiero traer a un formulario nuevo llamado COSTOS TOTALES el valor que corresponda a un producto en particular la referencia para dientificar el costo es el código del producto.
La fórmula que estoy utilizando es la siguiente:
=DBúsq("[Costo variable total] ","Costos variables","[Codigo]="&Formularios![Costos variables]![Codigo]")
Tengo duda si la aplicación de esta fórmula es correcta o no tiene una aplicación en este caso, gracias por su ayuda.
Respuesta
1
Esto seria para comprobar que costos variables existe en la tabla
Dim Mivariable As Integer
Mivariable = 0 & DLookup("Costo variable total", "Costos variables", "Codigo like '" & Forms![Costos variables].Codigo & "'")
if MiVariable=0 then
Msgbox "No está"
else
Msgbox "Si está"
end if
<div>esto lo puedes poner en un boton o despues de actualizar, si te devuelve o esq no lo ha encontrado.</div>
<div>
</div>
Saludos
Muchas gracias por la pronta respuesta, he agregado el código que me sugiere y la respuesta que me da es: no se encuentra el formulario Costos variables.
No se si me haya explicado bien, pero el dato que trato de traer al nuevo formulario no se encuentra almacenado en ninguna tabla, es un dato que se genera de forma automática en el formulario de Costos variables.
Como me mencionabas una tabla costos pensé que la tenias.
Si lo que quieres es capturar el dato de otro formulario, este tiene que estar abierto
Solo has de poner el path
En formulario nuevo tengo MiDato
En el otro formulario abierto CostoVariables
MIDato=Forms!tuformulario.costoV.value
Parece que mi nivel de conocimientos en access (que es muy limitado) me esta generando algo de problemas para entender la solución que me propones. Esta corrección que me sugieres no se exactamente donde es que la tengo que aplicar. Agradecería si me explicases más a detalle como hacer este cambio, de cualquier forma te comento cuales son mis necesidades y que estructura tiene actualmente la base de datos que estoy diseñando.
Estructura
Formularios:
<span style="white-space: pre;"> </span>Costos variables
<span style="white-space: pre;"> </span>Campos relevantes:
<span style="white-space: pre;"> </span><span style="font-weight: bold;">Codigo</span> (Codigo de producto)
<span style="white-space: pre;"> </span><span style="font-weight: bold;">Costo variable total </span>(Este campo acumula distintos valores de otros <span style="white-space: pre;"> </span>campos que se encuentran en el mismo formulario, no se encuentra <span style="white-space: pre;"> </span>almacenado en ninguna tabla)
<span style="white-space: pre;"> </span>Calculo de precio de venta
<span style="white-space: pre;"> </span><span style="font-weight: bold;">Codigo</span> (Codigo del producto)
<span style="white-space: pre;"> </span><span style="font-weight: bold;">Costo variable</span> (En este campo debe aparecer el mismo dato del <span style="white-space: pre;"> </span>campo <span style="font-style: italic;">Costo variable total </span>que se encuentra en otro formulario, el <span style="white-space: pre;"> </span>criterio que se utiliza es que ofresca el valor que corresponda al mismo <span style="white-space: pre;"> </span>codigo de producto.)
Solucion propuesta inicialmente:
Formula en origen del control del campo <span style="font-weight: bold;">Costo variable </span>en el formulario <span style="font-weight: bold;">Calculo de precio de venta</span>
=DBúsq("[Costo variable total] ","Costos variables","[Codigo]=" & Formularios![Costos variables]![Codigo])
<span style="white-space: pre;"> </span>Esta formula da como resultado: #Error
Agradecería si me puede explicar la solución aplicándola directamente en la fórmula que estoy tratando de utilizar, pues no tengo experiencia en el diseño de comandos con código en Visual Basic. Muchas gracias por su tiempo.
Una disculpa, no se porque razón se anexo el código.
Parece que mi nivel de conocimientos en access (que es muy limitado) me esta generando algo de problemas para entender la solución que me propones. Esta corrección que me sugieres no se exactamente donde es que la tengo que aplicar. Agradecería si me explicases más a detalle como hacer este cambio, de cualquier forma te comento cuales son mis necesidades y que estructura tiene actualmente la base de datos que estoy diseñando.
Estructura
<span style="white-space: pre;"> </span>Formularios:
<span style="white-space: pre;"> </span>Costos variables
<span style="white-space: pre;"> </span>Campos relevantes:
<span style="white-space: pre;"> </span><span style="font-weight: bold;">Codigo</span> (Codigo de producto)
<span style="white-space: pre;"> </span><span style="font-weight: bold;">Costo variable total</span> (Este campo acumula distintos valores de otros <span style="white-space: pre;"> </span>campos que se encuentran en el mismo formulario, no se encuentra, <span style="white-space: pre;"> </span>almacenado en ninguna tabla)
<span style="white-space: pre;"> </span>Calculo de precio de venta
<span style="white-space: pre;"> </span><span style="font-weight: bold;">Codigo</span>(Codigo del producto) 
<span style="white-space: pre;"> </span><span style="font-weight: bold;">Costo variable</span> (En este campo debe aparecer el mismo dato del <span style="white-space: pre;"> </span>campo Costo variable total que se encuentra en otro formulario, el <span style="white-space: pre;"> </span>criterio que se utiliza es que ofresca el valor que corresponda al <span style="white-space: pre;"> </span>mismo codigo de producto.) 
Solución propuesta inicialmente:
Fórmula en origen del control del campo Costo variable en el formulario Calculo de precio de venta
=DBúsq("[Costo variable total] ","Costos variables","[Codigo]=" & Formularios![Costos variables]![Codigo])
Esta fórmula da como resultado: #Error
Agradecería si me puede explicar la solución aplicándola directamente en la fórmula que estoy tratando de utilizar, pues no tengo experiencia en el diseño de comandos con código en Visual Basic. Muchas gracias por su tiempo.
En el campo que te da error ponle su origen que seria Costo Variable.
En las propiedades del form después de actualizar o sino pones un botón
y en procedimientos de evento escriber esto.
' Buscamos el valor según el código
Dim MiValor as integer
MiValor = 0 & DLookup("Costo variable total ", "Costos variables", _
"Codigo Like '" & Forms![Costos variables].Codigo.Value & "'")
' Si encontramos el codigo nos dará el valor que buscas, sino te devolverá O
' Para insertar el valor en el control Costo variables
Debug.Print MiValor
[Costo Variable].Value = MiValor
No quites ninguna comita

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas