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

Requêtes et SQL. Discussion :

Utilisation Générateur d'expression dans une requête mise à jour [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2012
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 37
    Points : 9
    Points
    9
    Par défaut Utilisation Générateur d'expression dans une requête mise à jour
    Bonjour,

    Juste une petite question.
    Est-il possible de faire fonctionner une fontion VBA dans une requête MAJ ?
    Ma fonction fonctionne dans une requête normale mais pas avec mise à jour.

    Merci d'avance.

    Bonne fin de journée.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 553
    Points
    24 553
    Par défaut
    Bonjour,
    Un fonction VBA est active dans tous type de requête. Sauf celle en ADO puisqu'elle est exécuté en dehors d'ACCESS.

    Quand tu dis "elle ne fonctionne pas" que veux tu dire exactement ?
    message d'erreur ou ne fait pas ce que tu attends ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2012
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 37
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Désolé de répondre aussi tardivement mais avec les fêtes de fin d'année, j'avais mis un peu ça de côté.

    En fait, j'ai fait une fonction VBA qui me donne le résultat attendu en l'excutant dans une requête simple, mais avec une requête mise à jour, aucun résultat.

    Merci d'avance.

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 553
    Points
    24 553
    Par défaut
    Bonjour,

    Peux-tu être plus précis sur le non fonctionnement, sur ce qu'elle fait, son code, ce que tu lui fournis et ce qu'elle est sensé retourner ?

    Comme l'indique mon lien, et avec les lois "européennes draconiennes", je n'ai plus d'entrailles à ma disposition.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2012
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 37
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Voici le code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Public Function PremierJourSemaine(ByVal Semaine As Byte, ByVal Année As Integer) As Date
     
        Dim d As Date
        Dim numS As Integer
     
        ' Premier jour de l'année
        d = DateSerial(Année, 1, 1)
     
        ' Numéro de la semaine du 1er janvier
        numS = DatePart("ww", d, vbMonday, vbFirstFourDays)
     
        ' Si le 1er janvier fait partie de la dernière semaine de l'année précédente
        ' alors passe à la semaine suivante (la première de la nouvelle année)
        If numS <> 1 Then d = DateAdd("d", 7, d)
     
        ' Calcule le premier jour de la première semaine de l'année
        d = DateAdd("d", 1 - Weekday(d, vbMonday), d)
     
        ' Ajoute (numSemaine-1) semaines
        PremierJourSemaine = DateAdd("ww", Semaine - 1, d)
     
    End Function

    En fait, j'ai un champs DELAI sous la forme 201302 par exemple. Je sépare l'année et la semaine avec les fonctions droite et gauche et j'utilise ma fonction PremierJourSemaine dans une requête normale qui me renvoie 07/01/2013.

    Si je l'utilise dans ma requête mise à jour, il me renvoie rien. Le champs est vide.
    Dans la ligne Mise à jour, j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PremierJourSemaine(Droite([DELAI];2);Gauche([DELAI];4))
    Merci de ton aide.

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 553
    Points
    24 553
    Par défaut
    Ne pas le voir lorsque tu fais une visu c'est une chose souvent normale, mais si tu l'exécutes les données de la table destination ne changent pas ?

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2012
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 37
    Points : 9
    Points
    9
    Par défaut
    Malheuresement non, je fais plusieurs mises à jour en même temps dans la même requête, elles fonctionnent toutes sauf elle.

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 017
    Points : 24 553
    Points
    24 553
    Par défaut
    Peux-tu poster la table avec un échantillon de données et ta requête, j'ai fait le test et je n'ai rien constaté.

  9. #9
    Futur Membre du Club
    Inscrit en
    Juillet 2012
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 37
    Points : 9
    Points
    9
    Par défaut
    Elu boulet de l'année !

    Après avoir vérifié, je me suis aperçu que les champs que j'avais créé avec ma requête création de table était en binaire, ça va bcp mieux quand je les passe en texte ou numérique !

    Désolé du dérangement.

    Merci t'avoir pris de ton temps pour m'aider.

    Bonne journée.

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 16/04/2014, 08h05
  2. [AC-2007] Fonction left dans une requête mise à jour
    Par vincent1746 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 24/06/2010, 10h12
  3. Réponses: 7
    Dernier message: 08/02/2008, 10h35
  4. Utilisation d'un tableau dans une requête
    Par stigma dans le forum Access
    Réponses: 2
    Dernier message: 20/12/2007, 10h42
  5. Réponses: 4
    Dernier message: 01/12/2005, 14h36

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