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 :

[Requête]Requête qui ne s'execute pas


Sujet :

Requêtes et SQL.

  1. #1
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut [Requête]Requête qui ne s'execute pas
    Bonjour

    J'ai fais un programme par le biais d'un formulaire dans une base .adp reliée à SQL Serveur.
    J'ai un petit soucis sur ce morceau de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                DoCmd.RunSQL ("truncate table listecomplete")
     
                Sleep 10000
     
                stSQL = "insert into listecomplete (INDIV_NUM, NOM, ADR_COMP1, ADR_COMP2, ADR_ADR, CPVILLE, MUM_PAYS, PUBLI_NUM, CODE_RELANCE, REGLE_EXAMPLAIRE, ABO_DTE_PNUM, ABO_PNUM, DNUM, ABO_SERVIR, TARIF_LIB, REGLE_INDIV_NUM, REGLE_FACTURE, ORIREG_LIB, Lib_reglement, REGLE_MONTANT, REGLE_ECART, NOM_NUM, ABO_DTE_DER_MODIF,REGLE_DATE_OPERATION, REGLE_LIB, ADR_CP, REGLE_DATETITRE, PUBLI_CODE, PUBLI_NOM) " + stSQL
     
                ' on remplie la table
                DoCmd.RunSQL (stSQL)
    Avec dans stSQL un select suivant les options cochées dans mon formulaire.

    Il me fait bien le truncate par contre il ne rempli pas ma table.
    J'ai lancé une trace dans SQL serveur, je vois bien les 2 requêtes arriver. De plus, si je copie la seconde requête dans l'analyseur de requête il rempli bien ma table !

    J'ai ajouté un sleep pensant que ca résoudrait quelque chose mais ca ne change rien.

    Ce qu'il y a de bizarre c'est que ca fonctionne 1 fois sur 10.

    Là je sèche complètement, quelqu'un aurait une idée ?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Essaie de changer ton opérateur de concaténation.

    En VBA, c'est & au lieu de +.

  3. #3
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    j'ai testé mais ca ne change rien. De toutes façons je vois bien la requette dans ma trace sur le serveur et elle fonctionne dans l'analyseur.

  4. #4
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stSQL = "INSERT INTO listecomplete VALUES (INDIV_NUM, NOM, ADR_COMP1, ADR_COMP2, ADR_ADR, CPVILLE, MUM_PAYS, PUBLI_NUM, CODE_RELANCE, REGLE_EXAMPLAIRE, ABO_DTE_PNUM, ABO_PNUM, DNUM, ABO_SERVIR, TARIF_LIB, REGLE_INDIV_NUM, REGLE_FACTURE, ORIREG_LIB, Lib_reglement, REGLE_MONTANT, REGLE_ECART, NOM_NUM, ABO_DTE_DER_MODIF,REGLE_DATE_OPERATION, REGLE_LIB, ADR_CP, REGLE_DATETITRE, PUBLI_CODE, PUBLI_NOM) " + stSQL

  5. #5
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    Euh il ne s'agit pas des valeurs que j'insère mais des colonnes de ma table.
    Je l'ai peut être mal exprimé plus haut, j'ai un select à la suite, ma requête donne quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    insert into matable (colA, colB...)
    select col1, col2... from monautretable
    Et je ne pense pas que le problème vient de la requête car si je la récupère dans ma trace et que je la copie dans l'analyseur, elle fonctionne

  6. #6
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Salut !

    Juste une idée comme ça :
    Au lieu d'utiliser DoCmd.RunSQL, essai d'instancier ta base dans une variable DAO.DataBase, et utilise toujours cette instance pour exécuter ton SQL (avec la méthode Execute).

  7. #7
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    Je viens de tester ca en m'aidant de la FAQ mais ca ne compile pas
    Erreur de compilation : type défini par l'utilisateur non défini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Dim db As DAO.Database
        Set db = CurrentDb
    (il bloque sur la 1ere ligne ci dessus).

    J'ai essayé de voir s'il ne manquait pas une référence mais je ne vois pas laquelle ajouter.

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Il faut ajouter la référence DAO dans l'éditeur VBA.

  9. #9
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    c'est ce que j'avais cherché mais je ne l'avais pas vu, maintenant c'est bon mais ca plante sur la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    db.Execute "truncate table listecomplete"
    Erreur d'execution '91':
    Variable objet ou variable bloc With non définie
    J'ai pourtant pris exemple sur un code de la FAQ

  10. #10
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Est-ce que CurrentDb fonctionne pour les projet Adp ?
    Même question pour DAO qui modélise le JetEngine je crois... Du coup, je maintiens mon idée de bosser sur une seule instance pour exécuter son SQL, mais peut-être que DAO ne peut pas être utilisé. ADO ?

  11. #11
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    J'avais pensé à ADO, mais comme je n'utilise pas les "serveur SQL", j'ai fait confiance à Fred.

    ADO est moins souple.

  12. #12
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Citation Envoyé par Heureux-oli
    comme je n'utilise pas les "serveur SQL", j'ai fait confiance à Fred.
    Et moi je faisais confiance à Heureux-oli.

    Soyons clairs : je n'ai jamais utilisé de projet ADP

  13. #13
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    effectivement dans l'aide ils parlent de CurrentDb pour des projets .mdb
    Mais du coup je ne connais pas la syntaxe pour lui définir ma base sur un projet .adp

    Edit : ok je vais essayer de chercher sur le net mais ca fait un bout de temps que je coince là dessus et j'ai jamais trouvé de solution

  14. #14
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    j'ai passé le truc en ADO en jetant un oeil sur cette page : http://argyronet.developpez.com/offi...b2adp/#L10-5-2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim db As ADODB.Connection
    Set db = CurrentProject.Connection
    mais ca me fait une expiration de delais sur ma 2eme requete

  15. #15
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Le timeout doit être paramêtrable.

    Mon aide sur ADO est HS, mais il y a un CommandTimeOut ...

  16. #16
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    chez moi non plus l'aide en ligne ne fonctionne pas

  17. #17
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Il me semble que dans un projet ADP les requêtes actions doivent être dans une procédure stockée.

  18. #18
    Membre chevronné Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Points : 1 967
    Points
    1 967
    Par défaut
    J'ai résolu mon problème avec ADO. Maintenant ca a l'air de fonctionner à chaque fois.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim db As ADODB.Connection
    Set db = New ADODB.Connection
    db.ConnectionString = "Provider='sqloledb';Data Source='monserveur'; Initial Catalog='mabdd'; User ID='toto';Password='toto';"
    db.ConnectionTimeout = 0
    db.Open
     
    Dim cmd As ADODB.Command
    Set cmd = New ADODB.Command
    Set cmd.ActiveConnection = db
    cmd.CommandText = "truncate table listecomplete"
    cmd.CommandType = 1
    cmd.CommandTimeout = 240
    cmd.Execute
    Set cmd = Nothing

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

Discussions similaires

  1. Requête SQL qui ne s'execute pas.
    Par dimitri13 dans le forum SGBD
    Réponses: 1
    Dernier message: 24/11/2014, 16h56
  2. [AC-2007] Requête SQL qui ne s'applique pas à un sous-formulaire
    Par Nephyline dans le forum IHM
    Réponses: 1
    Dernier message: 24/08/2009, 11h53
  3. [MySQL] une requête Update qui ne s'exécute pas
    Par DeveX dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/07/2008, 13h37
  4. [SQL] Requête UPDATE qui ne s'exécute pas avec PHP
    Par xplose dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 16/08/2007, 09h42
  5. requéte insert qui ne s'execute pas
    Par anaaa dans le forum SQL
    Réponses: 3
    Dernier message: 18/06/2007, 09h40

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