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 :

[VBA] difficultés avec une requête INSERT


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 49
    Points : 45
    Points
    45
    Par défaut [VBA] difficultés avec une requête INSERT
    bonjour,

    j'ai des difficultés à faire fonctionner ma requete (erreur 3134), malgré les aides déjà fournies sur le forum.

    Ma requete utilise des variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    strSQL = "insert into STATS ( id_etab,nbre_recl_annee,nbre_recl_annee-1,nbre_traitees_annee,"
    strSQL = strSQL & "nbre_traitees_annee-1,nbre_non_traitees_annee,nbre_non_traitees_annee-1,"
    strSQL = strSQL & "delai_moyen_annee,delai_moyen_annee-1,delai_cloture_annee,delai_cloture_annee-1)"
    strSQL = strSQL & " Values (" & Me.ID_ETABLISSEMENT.Value & ", " & nbre_recl_annee & ", "
    strSQL = strSQL & " " & nbre_recl_annee_derniere & ", " & nbre_traitees_annee & ", " & nbre_traitees_annee_derniere & ", "
    strSQL = strSQL & " " & recl_non_traitees_annee & ", " & recl_non_traitees_annee_derniere & ", '"
    strSQL = strSQL & " " & delai_annee & "', '" & delai_annee_derniere & "', '" & delai_cloture_annee & "', '"
    strSQL = strSQL & " " & delai_cloture_annee_derniere & "')"
    voilà ce que donnerait ma requête à l'exécution :

    insert into STATS ( id_etab,nbre_recl_annee,nbre_recl_annee-1,nbre_traitees_annee,nbre_traitees_annee-1,nbre_non_traitees_annee,nbre_non_traitees_annee-1,delai_moyen_annee,delai_moyen_annee-1,delai_cloture_annee,delai_cloture_annee-1) Values (4, 6, 1, 4, 1, 2, 0, ' 7,25', '2', '16,3333333333333', ' 3')

    Est-ce que le problème viendrait du fait d'insérer des nombres à virgules ou s'agit-il d'une erreur de synthaxe ?

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    le séparateur décimal est le point, pas la virgule

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 49
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par Tofalu
    le séparateur décimal est le point, pas la virgule

    Je suis d'accord, mais les 7,25 ou autre 16,3333 ... sont des résultats renvoyés par d'autres requetes. Et elles renvoient les nombres dans ce format.
    Existe t'il un moyen de remplacer ces virgules par des points ?

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    La fonction replace permet cela

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 49
    Points : 45
    Points
    45
    Par défaut
    j'ai essayé au préalable de mettre des valeurs, pour tester, mais l'insert ne fonctionne toujours pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    strSQL = "insert into STATS ( id_etab, nbre_recl_annee, nbre_recl_annee-1, nbre_traitees_annee, "
    strSQL = strSQL & "nbre_traitees_annee-1, nbre_non_traitees_annee, nbre_non_traitees_annee-1, "
    strSQL = strSQL & "delai_moyen_annee, delai_moyen_annee-1, delai_cloture_annee, delai_cloture_annee-1)"
    strSQL = strSQL & " Values (4, 6, 1, 4, 1, 2, 0, 7, 2, 16, 3);"

    Est-ce que ça viendrais de ma table ? comme elle n'a que des champs numériques et pas de numauto ? ou une mauvaise synthaxe ?

  6. #6
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,

    essais voir de faire msgbox de ta dernière variable strSQL.
    y a t'il un message d'erreur ? si oui lequel ?

  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Mai 2004
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 236
    Points : 310
    Points
    310
    Par défaut
    Je pense qu'il te manque des [] pour que Access puisse comprendre ta requête. Essayes ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    strSQL = "insert into STATS ( id_etab, [nbre_recl_annee], [nbre_recl_annee-1], [nbre_traitees_annee], " 
    strSQL = strSQL & "[nbre_traitees_annee-1], [nbre_non_traitees_annee], [nbre_non_traitees_annee-1], " 
    strSQL = strSQL & "[delai_moyen_annee], [delai_moyen_annee-1], [delai_cloture_annee], [delai_cloture_annee-1])" 
    strSQL = strSQL & " Values (4, 6, 1, 4, 1, 2, 0, 7, 2, 16, 3);"

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 49
    Points : 45
    Points
    45
    Par défaut
    c'était en effet les [] !
    merci.

    A noter également que si vous voulez exporter cette table, il va falloir que la longueur de vos champs soit inférieur ou égal à 10 caractères (erreur 3191).
    C'était la désagréable erreur que j'ai eu ensuite en utilisant ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    str = str & Me.ID_ETABLISSEMENT.Value
        str = str & ".dbf"
     
        DoCmd.TransferDatabase acExport, "dBase IV", CurrentProject.Path, acTable, "STATS", str

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

Discussions similaires

  1. [AC-2003] Retour à la ligne avec une requête INSERT INTO
    Par shakapouet dans le forum VBA Access
    Réponses: 3
    Dernier message: 03/07/2012, 15h11
  2. Problème avec une requête INSERT (sqlserver2005)
    Par jacko842 dans le forum Développement
    Réponses: 2
    Dernier message: 21/03/2012, 10h09
  3. Difficulté avec une requête SQL
    Par tokuhigh dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/04/2011, 23h42
  4. [VBA] Erreur sur une requête avec un opérateur
    Par elgringo2007 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/07/2006, 17h12
  5. Réponses: 3
    Dernier message: 21/06/2005, 11h37

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