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 :

Problème update des tables


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut Problème update des tables
    Bonjour à tous,
    J'ai un problème pour mettre à jour une de mes tables Access, j'ai créé une boucle qui met à jour mes lignes automatiquement. La première ligne de ma table est mise à jour correctement, seulement les suivantes ne le sont pas et Access me prétexte à chaque fois l'erreur :

    "Microsoft Office Access n'a pas mis à jour 0 champ(s) à cause d'un échec de conversion de type, 1 enregistrement(s) à la suite de violation de clé, 0 enregistrement(s) à la suite de violation de verrou et 0 enregistrements à la suite de violation de la règle de validation."

    Je ne comprends pas car mon update marche lors du premier passage dans la boucle, alors que ça devrai être la même chose pour tout les passages..

    Quelqu'un peut-il m'aider svp ?? Merci d'avance.

    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
    For i = 2 To NbLine
        With xlApp.ActiveWorkbook.Worksheets("Bdd")  'recuperation des données de la feuille2
     
            sql = "SELECT * FROM site"
            Set Req = db.OpenRecordset(sql)
            Req.AddNew
     
            n_liaison = .Range("E" & i).Value
            n_siteA = .Range("V" & i).Value
            n_siteB = .Range("Y" & i).Value
     
            If DCount("n_liaison", "liaison", "n_liaison='" & xlApp.ActiveWorkbook.Worksheets("Bdd").Range("E" & i).Value & "'") = 1 Then
                MsgBox ("boucle 1")
     
                'Mise à jour table liaison
                cSQL = "UPDATE liaison SET n_siteA='maj' WHERE n_liaison='" & n_liaison & "'" 'requete SQL
                DoCmd.RunSQL cSQL
     
            Else
               ....
    (je précise que c'est un code qui récupère des données d'un fichier Excel vers une table Access)

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 048
    Par défaut
    Sans doute après ta première boucle la commande
    DoCmd.RunSQL cSQL
    peut laisser un verrou de modification sur la table.

    J'ai trouvé à l'usage qu' marchait correctement dans ce cas.

    Si qqun veut bien confirmer...

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    Merci pour ta réponse mais cette commande ne marche pas chez moi...
    Elle ne s'execute pas. Donc mon problème n'est toujours pas résolu

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    Re,
    je suis arriver à l'exécuter, mais il m'a été nécessaire de changer toutes mes commandes de mon code par la tienne. J'ai toujours mon problème pour faire l'update en dynamique, j'ai essayé de les rentrés statiquement comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cSQL = "UPDATE liaison SET n_siteA='maj' WHERE n_liaison='222123'" 'requete SQL
    Et ça marche... J'ai aussi regarder en mode debug, et n_liaison récupère bien les bonnes valeurs à chaque passage dans ma boucle, donc je vois vraiment pas à quoi c'est dû.

    Help me please

  5. #5
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 048
    Par défaut
    ... WHERE n_liaison='" & n_liaison & "'"
    Quel est le type de n_liaison ?
    car si c'est un Long tu n'as pas à encadrer par des '
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...WHERE n_liaison=" & n_liaison


    J'ajoute : insére un debug.print avant de lancer la commande SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
    cSQL = "UPDATE liaison SET n_siteA='maj' WHERE n_liaison='" & n_liaison & "'" 'requete SQL
    Debug.print cSql
    DoCmd.RunSQL cSQL

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 134
    Par défaut
    n_liaison est de type chaîne de caractère

    ça sert à quoi : Debug.print cSql ?? Et c'est censé faire quoi ?

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

Discussions similaires

  1. [AC-2003] problème update de table VBA vers table oracle
    Par valmelissa dans le forum VBA Access
    Réponses: 10
    Dernier message: 29/10/2009, 13h39
  2. problème update multi-tables
    Par steevest dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/10/2009, 12h44
  3. [AC-2007] Mise en réseau: Problème liaison des tables
    Par tomZH dans le forum Access
    Réponses: 3
    Dernier message: 23/07/2009, 14h41
  4. problème avec des tables
    Par Ninie87 dans le forum Requêtes
    Réponses: 5
    Dernier message: 05/09/2008, 13h21
  5. Problème jointure des tables
    Par opeo dans le forum SQL
    Réponses: 9
    Dernier message: 28/11/2007, 16h43

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