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

VBA Access Discussion :

Syntaxe : UPDATE d'une table dans une autre base variable [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2022
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2022
    Messages : 115
    Points : 60
    Points
    60
    Par défaut Syntaxe : UPDATE d'une table dans une autre base variable
    Bonjour,

    un petit souci bloquant (pour moi )

    Je veux mettre à jour une table dans plusieurs bases dans le même répertoire
    = mettre à jour un champ de la table avec un texte saisi dans un textbox de la base ouverte
    Pour la selection des fichiers : pas de problème

    Mais quant au UPDATE, j'ai systématiquement l'erreur 3129 : Instruction SQL non valide

    j'ai essayé 2 methodes : une de moi-même et une inspirée d'un post de ce forum

    Pouvez-vous me dire ce qui cloche ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       monsql = "UPDATE TabPBXMod IN " & StrComplet & " SET TabPBXMod.Version = " & Me.RechGlob & "WHERE (((TabPBXMod.Version) Is Not Null))"
     
     monsql = "UPDATE [MS Access;Database= '" & StrComplet & "'].TabPBXmod SET TabPBXmod.Version = '" & StrRechGlob & "' WHERE TabPBXmod.Version is not null"
    StrComplet est le nom du fichier à ouvrir, StrRechGlob = me.RechGlob

    Merci

  2. #2
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2022
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2022
    Messages : 115
    Points : 60
    Points
    60
    Par défaut
    Bon, j'ai trouvé :

    IS NOT NULL : pas bon

    <> Null : bon

    moi : *on

  3. #3
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    Citation Envoyé par nemog
    Bon, j'ai trouvé :

    IS NOT NULL : pas bon

    <> Null : bon
    je trouve vraiment étonnant que ce soit la solution de ton problème ... as-tu vraiment testé tous les cas ?
    l'expression <> null est à éviter car elle est toujours fausse, comme précisé dans cet article dans l'encadré gris.
    IS NOT NULL est une syntaxe correcte, donc, je pense que l'erreur 3129 ne vient pas de là ...

    Ce qui me saute au yeux en lisant les 2 codes postés, c'est:
    pour le premier code, je pense qu'il manque les apostrophes autour de Me.RechGlob et un espace avant le WHERE
    pour le second, les apostrophes sont en trop autour de StrComplet
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  4. #4
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    N'est-ce pas plus tôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monsql = "UPDATE TabPBXMod IN '" & StrComplet & "' SET TabPBXMod.Version = '" & Me.RechGlob & "' WHERE (((TabPBXMod.Version) Is Not Null))"
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  5. #5
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2022
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2022
    Messages : 115
    Points : 60
    Points
    60
    Par défaut
    Merci,
    Je n' ai pas voulu m'étaler parce que je pensais que ça ne susciterait pas beaucoup d'intérêt

    J'ai en fait corrigé plusieurs erreurs en même temps et ai cru que c'était l'histoire de "Is not null"

    Mon code qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monsql = "UPDATE TabPBXMod IN '" & StrComplet & "' SET TabPBXMod.Version = '" & Me.RechGlob & "' WHERE (((TabPBXMod.Version) <> Null))"
    Merci @Tee_grandbois pour la précision sur les apostrophes :
    donc apostrophe pour les objets mais pas pour les variables, c'est ça ?

    Et je viens de reprendre ma version "fausse", j'avais ecrit trop vite la ligne suivante c'est à dire

    et c'est ça qui provoquait l' erreur 3129.
    La prochaine fois, j'utiliserai quelque chose du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     mabase.Execute ("blablablablabla")
    , ce sera plus simple

    Mais après, j'avais un autre type d'erreur - je n'ai pas noté lequel

    Voila, vous savez tout !

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    salut hyperion13
    Citation Envoyé par hyperion13 Voir le message
    Salut
    N'est-ce pas plus tôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monsql = "UPDATE TabPBXMod IN '" & StrComplet & "' SET TabPBXMod.Version = '" & Me.RechGlob & "' WHERE (((TabPBXMod.Version) Is Not Null))"
    en effet ... mea culpa, j'ai mal lu, il faut bien des apostrophes autour du nom de la base distante

    Citation Envoyé par nemog
    Mon code qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monsql = "UPDATE TabPBXMod IN '" & StrComplet & "' SET TabPBXMod.Version = '" & Me.RechGlob & "' WHERE (((TabPBXMod.Version) <> Null))"
    si cela fonctionne, tant mieux, mais <> null n'est toujours pas correct (as-tu lu l'article ?)

    et c'est ça qui provoquait l' erreur 3129.
    La prochaine fois, j'utiliserai quelque chose du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mabase.Execute ("blablablablabla")
    ça ne change rien, Execute affichera aussi l'erreur 3129 si elle est présente
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  7. #7
    Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2022
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2022
    Messages : 115
    Points : 60
    Points
    60
    Par défaut
    oui j'ai lu l'article mais n'ai pas tout compris

    ma condition se voulait être : quand il y a quelque chose dans le champ Version de la table TabPBXmod

    et je persiste, l'erreur 3129 était provoquée par les guillemets autour de monsql

    provoque l'erreur 3129

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

Discussions similaires

  1. suppression d'une table dans un autre base
    Par darkspoilt dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 15/09/2008, 09h41
  2. Réponses: 11
    Dernier message: 20/03/2007, 00h13
  3. Réponses: 4
    Dernier message: 15/03/2007, 20h32
  4. Réponses: 2
    Dernier message: 02/06/2006, 11h26
  5. [SQL]Select dans une table d'une autre base de données
    Par Didouille dans le forum Access
    Réponses: 3
    Dernier message: 21/12/2005, 09h00

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