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 :

Utilisation d'une fonction VBA pour remplir les champs d'une table


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 43
    Points
    43
    Par défaut Utilisation d'une fonction VBA pour remplir les champs d'une table
    Bonjour,

    J'essaie de creer une fonction tres simple afin de remplir un champ VersionExterne pour tous les enregistrements d'une table a partir d'un autre champ VERSION_EXTERNE:

    Si VERSION_EXTERNE n'est pas vide, on le recopie dans VersionExterne
    sinon on met la chaine "na" dans VersionExterne

    Voici la fonction:
    Function VersionExt(x As String) As String

    If x <> "" Then
    VersionExt = x
    Else
    VersionExt = "na"
    End If

    End Function

    Quand je l'utilise avec Access, pour les champs VERSION_EXTERNE non nuls, je recopie bien la chaine dans VersionExterne mais pour les autres j'obtiens #Erreur au lieu de "na".

    Exemple:

    VERSION_EXTERNE VersionExterne
    G01R06C05 G01R06C05
    G01R06C05 G01R06C05
    G03R00C02 G03R00C02
    G03R00C03 G03R00C03
    #Erreur
    #Erreur
    #Erreur
    #Erreur

    J'ai beau tourner la fonction dans tous les sens, je ne comprend pas d'ou vient le pb.
    Il y a peut-etre plus simple pour fait ca.

    Merci de votre aide,
    Sylvain

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    isnull
    est different de ="" et de isempty

  3. #3
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 43
    Points
    43
    Par défaut
    Helas,

    J'ai essaye les 2 et j'ai exactement le meme resultat.

    Function VersionExt(x As String) As String

    If IsNull(x) Then
    VersionExt = "na"
    Else
    VersionExt = x
    End If

    End Function

    Je ne comprend pas, c'est peut etre Access le pb

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Essaye comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Function VersionExt(x As String) As String
     
    If len(x & "") = 0  Then
         VersionExt = "na"
    Else
         VersionExt = x
    End If
     
    End Function
    A+

  5. #5
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 43
    Points
    43
    Par défaut
    Ca ne marche pas non plus.
    J'ai l'impression que le pb est plus du cote d'Access que de la fonction elle meme.

    Je me complique peut-etre la vie en voulant utiliser une fonction, il y a peut etre plus simple, mais je ne connais pas bien Access encore.
    Si qq1 a des suggestions pour realiser ce que je veux: remplacer les champs vide par "na", je suis preneur.

    Ciao,
    Sylvain

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Regarde l'aide de la fonction NZ

    A+

  7. #7
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 273
    Points : 258
    Points
    258
    Par défaut
    Oui essaye ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function VersionExt(x As String) As String
     
    ' x s'il est non null, et na si x est null
         VersionExt = nz(x,"na") 
     
    End Function

  8. #8
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 53
    Points : 43
    Points
    43
    Par défaut
    Merci pour le tuyau,
    La fonction me donne le meme resultat que precedemment (?!!!) mais en faisant directement NZ(VERSION_EXTERNE;"na") j'obtiens bien ce que je voulais.

    Merci a tous,
    Sylvain

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Un flag alors ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/03/2012, 18h14
  2. [C#] Utilisation d'un WebBrowser pour remplir les champs d'une page
    Par nicosaliagos dans le forum Windows Forms
    Réponses: 10
    Dernier message: 29/05/2010, 13h25
  3. Réponses: 6
    Dernier message: 31/07/2006, 17h01
  4. Probleme de requete pour remplir les champs d'une table
    Par Jim_Nastiq dans le forum Langage SQL
    Réponses: 7
    Dernier message: 06/04/2006, 15h56
  5. [VBA-E] Lister les arguments d'une fonction
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/02/2006, 13h04

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