IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Test de controle champ vide


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Points : 16
    Points
    16
    Par défaut Test de controle champ vide
    Bonjour cela fait une heure que je cherche....

    Je souhaite faire un controle afin d'éviter qu'un champ ne soit vide

    Ex : je voudrais éviter que le champ prix ne soit vide avant de faire un calcul de marge.

    Soit une table avec 10 enregistrements dont les prix sont tous remplis

    J'ai donc une requete VBA comme ceci

    if nz(prix,"") = "" then .....

    Le probleme est qu'il me trouve chaque fois la dernière ligne la ligne 11 qui par définition est vide puisque c'est celle qui me sert à rajouter un nouvel enregistrement

    ça m'énerve merci pour votre aide

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    comment est la structure de ta boucle sur tes enregistrements ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Je n'ai visiblement pas été assez clair désolé.
    J'ai une table avec les champs : prixachat prixvente et quantité

    j'ai une requete qui me montre la marge : (pa-pv)*quantité

    Je voudrais effectuer un controle pour être sur que toutes les quantités soient bien remplies

    J'ai donc créé un code (je suis vraiment au début du VBA en Access)

    Public sub controle_click
    dim quantite
    if nz(quantite,"") = "" then
    do.cmd OpenForm "Fcontrole"
    exit sub
    end if
    end sub

    ou FControle est un formulaire qui a pour données RQuantitéVide

    Le probleme est qu'il m'ouvre toujours le formulaire pour me montrer qu'il y a un champ quantité vide .... qui est ma ligne 11 c'est à dire la ligne de rajout d'un enregistrement.

    Si vous avez d'autres idées ... c'est avec plaisir mais attention je suis un débutant en VBA

  4. #4
    Membre actif Avatar de ActionAccess
    Inscrit en
    Mars 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 175
    Points : 213
    Points
    213
    Par défaut
    Bonjour,

    Une astuce consisterait à exclure l'enregistrement vierge en bas de liste. Et ce dernier se caractérise par le fait qu'aucun de ses champs n'est renseigné.
    A mon sens, il suffirait donc de rajouter un test comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Public sub controle_click
     dim quantite
     if nz(quantite,"") = "" and IsNull(pa) = False then 
     do.cmd OpenForm "Fcontrole"
     exit sub 
     end if 
     end sub
    Concrêtement, on interpèle l'utilisateur si la quantité n'est pas renseignée ET le prix d'achat est renseigné.

    PS : merci d'utiliser systématiquement les balises "codes" pour une meilleure lecture.

    Cdlt,

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Merci pour la réponse hélas cela ne fonctionne tjrs pas
    Il m'indique toujours cette fameuse ligne d'ajout
    j'ai ensuite essayé en rajoutant dans ma requête : pa est pas null
    rien n'y fait
    (c'est peut etre pcq j'ai un champ Datedecreation qui se remplit automatiquement et donc sur la derniere ligne quoique)
    merci anyway

  6. #6
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    Salut,

    Juste une petite idée en passant.

    Pourquoi ne pas mettre ton formulaire en "Ajout autorisé" à non,puis

    créer un bouton sur ce dernier pour te permettre de remettre ton form en

    Ajout autorisé dès lors ou tu voudrais saisir un nouvel enregistrement?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Bouton_Click()
    Me.AllowAdditions = True
    End Sub

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Merci
    hélas cela ne fonctionne tjrs pas même s'il me trouve aucun enregistrement....
    N'y a t il pas moyen de lui demander
    si nombre d'enregistrements trouvé est > 1 then ...
    else end sub
    Par contre pour coder ça ....
    merci anyway

  8. #8
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    Re,

    Tu peux essayé de mettre ça dans un bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Bouton_Click()
    Dim bds As Database, rst As Recordset
        Set bds = CurrentDb
            Set rst = bds.OpenRecordset("TaTable")
        If rst.RecordCount > 1 Then
        Tu lances ta requête ou ce que tu veux
        Else
        DoCmd.OpenForm "FControle"
        End If
          rst.Close
        Set bds = Nothing
    End Sub

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Merci,
    comme je ne suis pas un pro du VBA, (Voir ci dessus : il me dit erreur de compilation : type défini par l'utilisateur non défini (allez savoir ce que cela veut dire) en surlignant : bds as Database)

    Pour finir je crois que je vais leur demander de faire un controle pour chaque élément vide .... ils devront appuyer chaque fois sur un bouton et contrôler ensuite chacun des champs apparraissant dans la requête
    C'est pas le pied mais à mon avis cela ira
    Désolé pour tout ce remue ménage
    et merci à tous les contributeurs

  10. #10
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    Lorque tu es en mode débogage,vas dans Outils/références et côches
    "Microsoft DAO 3.5 Object library"

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    merci mais cela ne fonctionne tjrs pas
    la ligne est tjrs présente
    Lorsque j'actionne la requête R_quantité vide la ligne appraît à chaque fois

  12. #12
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    ???????

    la ligne est tjrs présente
    tu parles de l'erreur de compilation ?

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Oups sorry,
    j'ai encore été trop vite, je parle de cette fameuse ligne qui permet de rajouter un enregistrement . Elle apparait tjrs quand j'exécute ma requète (trouver les quantités vides)
    Merci

  14. #14
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    Mais quel ... !!!

    Je viens de relire le post et je me rend compte que je n'y étais pas du tout.

    Si dans ta requête tu ne veux pas de ligne supplémentaire à zéro

    Le probleme est qu'il me trouve chaque fois la dernière ligne la ligne 11 qui par définition est vide puisque c'est celle qui me sert à rajouter un nouvel enregistrement
    Il te suffit juste de mettre dans les propriétés de ta requête

    "Instantanné" dans le "Type Rercordset".

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 28
    Points : 16
    Points
    16
    Par défaut
    Je suis un peu gèné mais je suis pas tres bon en VBA cela s'installe ou
    "Instantanné" dans le "Type Rercordset".
    en sachant que mon code est le suivant

    Public sub controle_click
    dim quantite
    if nz(quantite,"") = "" and IsNull(pa) = False then
    do.cmd OpenForm "Fcontrole"
    exit sub
    end if
    end sub

    merci

Discussions similaires

  1. Réponses: 8
    Dernier message: 06/03/2013, 06h22
  2. [AC-2003] Test sur un champ vide
    Par rch05 dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/07/2010, 13h11
  3. Controles Champs vide et focus
    Par hugo69 dans le forum Access
    Réponses: 4
    Dernier message: 19/01/2007, 20h28
  4. Test evenement sur champ vide dans une table
    Par eddyG dans le forum Access
    Réponses: 3
    Dernier message: 30/05/2006, 17h02
  5. Test sur un champs vide
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 27/04/2004, 12h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo