1
votes

Instruction Microsoft Access IF

Je me demandais si vous pouviez faire une déclaration if dans Microsoft Access.

L'idée est que vous avez 2 colonnes. Le premier s'appelle "Quantité" (le type est un nombre) et le second s'appelle "En stock" (saisissez Oui / Non) et vous souhaitez faire la déclaration:

"si quantité> 0 alors" En stock "doit être coché sinon pas de coche."

J'essayais:

iff([quantity] = 0, [in stock] = false, [in stock] = true)

a également essayé ceci

iff([quantity] = 0, [in stock] = "No", [in stock] = "Yes")

J'espère que vous l'avez, pouvez quelqu'un m'aide ou me dit si c'est possible de faire ça?

Merci d'avance


1 commentaires

c'est IIF pas IFF mais ça ne marche pas comme ça. IIF est une fonction, il génère une valeur mais il ne peut pas modifier un champ. Pour ce faire, vous devez exécuter une requête de mise à jour. Ce que vous pouvez faire, dans un contrôle indépendant dans un formulaire ou une nouvelle colonne dans une requête est = IIF ([Quantity] = 0, TRUE, FALSE), puis étiqueter ce contrôle / nouvelle colonne comme "En stock", mais ensuite n'est pas un champ, c'est un calcul.


3 Réponses :


2
votes

Si vous utilisez une version de MS Access qui offre le type de champ Calculé, cette tâche est relativement simple et ne nécessite pas de requêtes ou de code.

Il vous suffit de configurer votre champ En stock pour être un champ Calculé , calculé à l'aide de l'expression:

[Quantity] > 0

Définissez le Type de résultat sur Oui / Non pour indiquer que le résultat sera celui d'un champ booléen.

Le Format peut être défini en fonction de votre application ( Oui / Non code > Je suppose).


1 commentaires

Sa version 2007 et le "champ calculé" ne sont pas là :(



0
votes

toutes les éditions de Microsoft Access prennent en charge les valeurs calculées dans les requêtes. Il s'agit de le mettre en œuvre correctement. c'est-à-dire:

En stock: iff ([quantité] = 0, "Non", "Oui")

Ceci est inséré et crée le nouveau champ: En stock


0 commentaires

0
votes

Premièrement, vous ne pouvez pas utiliser la fonction IIf pour changer la valeur d'une case à cocher ou d'un contrôle lié.

Si vous voulez simplement déterminer quel article / produit est en stock et lequel ne l'est pas, vous n'avez en fait pas besoin d'avoir un champ tel que le champ [En stock] pour figurer dans le tableau. Une méthode plus élégante consiste simplement à évaluer le champ Quantité et à utiliser une zone de texte indépendante pour afficher Oui ou Non.

Définissez la source de contrôle de la zone de texte indépendante sur:

If [Quantity] > 0
Then SetValue [In Stock] =Yes
Else: SetValue [In Stock] = No

Une légère alternative est:

=IIf([Quantity] > 0, "Yes", "No") 

Dans le cas de la légère alternative ci-dessus, vous modifiez le libellé ou le libellé d'en-tête de la zone de texte non liée en "En stock". De cette façon, le Oui ou Non qui sera affiché pour chaque produit aura un sens pour tous les utilisateurs et spectateurs. Veuillez noter que le signe égal (=) fait partie de ce que vous allez taper.

Si, pour une raison quelconque, vous devez stocker le champ [En stock] comme type de données Oui / Non dans la table sous-jacente et que vous souhaitez mettre à jour cette valeur sur Oui ou Non (cochez ou décochez), alors vous pouvez utiliser une macro. Dans cette macro, vous utiliseriez l'instruction If Then Else traditionnelle avec l'action SetValue. Je ne peux pas publier de captures d'écran / illustrations pour le moment car j'utilise actuellement un téléphone. La déclaration sera la suivante:

=IIf([Quantity] > 0, "In Stock", "Out of Stock") 

REMARQUE: vous pouvez également sous-titrer 1 pour Oui et 0 pour Non


0 commentaires