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 :

Erreur insertion SQL VBA avec base répliquée [AC-2000]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2010
    Messages : 149
    Points : 171
    Points
    171
    Par défaut Erreur insertion SQL VBA avec base répliquée
    Bonjour à tous.

    J'ai un script d'importation qui marche très bien, qui insere des données Excel dans ma base Access.

    J'ai crée un réplica de cette base dans un autre dossier. J'ai voulu testé diverses choses mais depuis que la base est répliquée, mon code VBA ne fonctionne plus, l'erreur venant de mes requetes d'insertions.

    Erreur : Le nombre de valeurs de la requete doit correspondre au nombre de champs de destination.


    J'ai vérifier mais la requete est juste puisqu'elle fonctionne quand la base n'est pas répliquée.

    Si quelqu'un à une idée?!

    Merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Tout dépend de la syntaxe.
    Si l'INSERT INTO précise les champs de destination, il ne doit pas y avoir de problème ; est-ce que c'est ce que tu as fait ?

    S'il s'agit d'un INSERT/SELECT c'est plus risqué et cela correspond dans les éléments que tu fournis, à l'erreur soulignée... Dans une table répliquée, il y a plus de champs que dans la table source.

    Argy

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2010
    Messages : 149
    Points : 171
    Points
    171
    Par défaut
    Voila la requete que je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "Insert into PP values (" & IDPP & ",'" & WbName & "','""','""','""','""')"
    Après recherche, j'ai pû remarqué que lorsque j'ai répliquée ma base, un champ s'est ajouté automatiquement à toute mes tables, le champ s_guid.
    Il n'est visible que par la vue "Relation" D'access. Si j'ouvre mes tables en mode création, je n'arrive pas a voir ce champ

    Je ne sais pas comment je peux gérer ça dans mes requetes d'insertion???

    EDIT : j'ai relu ta réponse et il viens donc du fait que c'est une base répliquée.
    Ma question reste inchangée !

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Donc effectivement, tu dois préciser les champs cibles.
    D'ailleurs, c'est mieux de procéder ainsi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL="INSERT INTO Table (Champ1, Champ2, Champn) VALUES (Value1, Value2, Valuen)"
    DB.Execute SQL, dbFailOnError
    Argy

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2010
    Messages : 149
    Points : 171
    Points
    171
    Par défaut
    Merci pour ta réponse, sa fonctionne mieux maintenant.

    Désolé pour la réponse tardive...

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

Discussions similaires

  1. Info : Petit programme VBA avec base de donnée excel
    Par guismoman60 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/10/2013, 10h20
  2. operateur sql INTERSECT avec base access
    Par lasrevinu dans le forum C#
    Réponses: 2
    Dernier message: 29/04/2010, 13h37
  3. Erreur syntaxe SQL DELETE avec sous requête
    Par jeanbenoit1987 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 07/12/2007, 12h14
  4. INSERT SQL : problème avec valeurs à entrer
    Par St-Jean dans le forum VBA Access
    Réponses: 5
    Dernier message: 25/09/2007, 16h18
  5. Insert SQL + VBA
    Par Hydex dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/05/2007, 22h22

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