Access 2003 : condición IF sobre un campo

Resuelto
sebbiker Mensajes publicados 9 Estado Miembro -  
 Salsero77 -
Hola,
Soy principiante en programación Access 2003 y no sé cómo programar esto en un formulario:
tengo 1 campo "facturación", 1 campo "margen bruto", 1 campo "margen neto", 4 otros campos.
Lo que quiero para el campo "Margen Neto":

SI facturación = 0 ENTONCES margen neto = margen bruto
SI NO margen neto = (una fórmula de cálculo basada en los 4 otros campos (solo sumas o restas))

Intenté programarlo pero no funcionó.

Gracias por la ayuda.

Seb
Configuración: Windows XP Internet Explorer 7.0

5 respuestas

  1. Salsero77
     
    Varia neta: Verdadero/Falso([Facturación]=0;[MargenBruto];([precio1]-[costo2])+([costo1]-[costo2])+[precio bonificación])
    2
  2. sebbiker Mensajes publicados 9 Estado Miembro 2
     
    No estoy seguro de si quieres la traducción al español o una expresión en lenguaje de Access (VBA/SQL) para una consulta o función. Aquí te dejo ambas opciones para que elijas la que necesitas.

    1) Traducción al español (manteniendo el formato HTML):
    No es exactamente eso. Quiero saber cómo expresar esta condición:
    El valor de "margen neto" depende de esta condición:

    SI "facturación" = 0 ENTONCES "margen neto" = "margen bruta" (de hecho la "margen neto" toma el valor de la margen bruta)

    SI NO (por lo tanto "facturación" = un valor en €)
    "margen neto" = ((precio1 - precio2) + (costes1 - costes2) + precio bono)

    Voilà lo que necesito.

    2) Expresión equivalente en lenguaje Access (VBA/SQL):
    Si quieres una regla en VBA dentro de Access, podría ser algo así:

    If [facturation] = 0 Then
    [marge nette] = [marge brute]
    Else
    [marge nette] = (([prix1] - [prix2]) + ([couts1] - [couts2]) + [prix bonus])
    End If

    Si prefieres una expresión de campo calculado en una consulta de Access (SQL/DAO), podría ser:

    MargeNette: IIf([facturation] = 0, [marge brute], ([prix1] - [prix2]) + ([couts1] - [couts2]) + [prix bonus])

    Remplace les noms entre crochets por los nombres reales de tus campos en la base de datos. Si necesitas que lo adapte exactamente a tu estructura (nominal nombres de campos), pásame esos nombres y te lo ajusto.
    2
  3. Jacques
     
    Buenas noches,

    Si no hay malentendidos, debería verse así:

    =iff([facturation] = 0 ; [Marge_Nette] = [Marge_Brute] ; [Marge_Nette]= ([prix1] - [prix2])+ (([couts1])-([couts2])+[Prix_Bonus) )

    El primer ";" significa "entonces"
    El segundo ";" significa "Entonces"

    NB : No he realizado ningún ensayo

    Saludos cordiales
    2
  4. Jacques
     
    Hola,

    En el formulario que resume los datos, es necesario crear un campo de texto en el que se realicen los cálculos aritméticos:

    Aquí un ejemplo: (el que aparece en la ayuda en línea) que adaptarás.

    = IIf([Montant] > 1000, "Élevé", "Modeste")

    Atención: en este contexto, el resultado de los cálculos no se registra en la tabla subyacente.

    Nota: Estas indicaciones se refieren a Access 2000
    1
  5. sebbiker Mensajes publicados 9 Estado Miembro 2
     
    Hola,

    OK voy a probar y les digo mañana por la mañana.
    Gracias de antemano.

    Sébastien
    0