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 :

Commande DoCmd.RunSQL STRSql


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2
    Par défaut Commande DoCmd.RunSQL STRSql
    Bonjour,
    Je suis nouveau sur ce site, j'espère que ma 1ère question recevra une réponse.

    En VBA, après avoir exécuté une requête action (insertion de lignes dans une query):
    - soit avec la commande DOcmd.RUNSql
    - soit avec la méthode dbs.Execute (STRSql)

    il m'est impossible de lancer une nouvelle requête action supprimant ces mêmes lignes.
    Je reçois le message 3086 "Could'nt delete from specified tables"

    Didier

  2. #2
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir,

    Est-ce que tu pourrai nous montrer le SQL de la requête DELETE ?
    Et préciser les clés des différentes tables.

    A+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2
    Par défaut Détail
    Remarque:
    Après avoir lancer la requête VBA "INSERT", il m'est également impossible de supprimer le contenu de la query Z_journal manuellement au moyen d'une simple query via l'écran Wizard. Mes enregistrements sont en lecture seule. Donc le problème ne vient pas de la query DELETE mais de la query INSERT qui bloque mes enregistrements en lecture seule (peut être le Group By ??) -> je vais essayer sans.

    INSERTION

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Strsql = " INSERT INTO Z_JournalAchat ( VersionComptaGénérale, [Supplier ID], Num_facture, [Type mouvement], Journal," _
           & " NumeropieceJournal, Date_Compta, Article9, GENCPT6_id, Crédit ) " _
           & " SELECT VersionComptaGénérale, [Supplier ID], Num_facture, 'F', 'JAC', " _
           & " NumeropieceJournal, Date(), 0, Compte, Sum(lgn_total_TVA) " _
           & " FROM Z_Invoice_Details " _
           & " WHERE [Supplier ID] = " & Me.Supplier_ID & " And num_facture = '" & Me.num_facture & "'" _
           & " GROUP BY VersionComptaGénérale, [Supplier ID], Num_facture, 'F', Journal, NumeropieceJournal, Date(), 0, Compte "

    SUPPRESSION
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Strsql = "DELETE * FROM Z_JournalAchat WHERE Num_facture = '" & Me.num_facture & "'" _
     
    DoCmd.RunSQL Strsql
    "Z_journal" = jointure entre tables "T_journal" et "Version" sur un champ version_id.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Z_VersionComptaGénérale.Modifiable, T_JournalAchat.*
    FROM T_JournalAchat INNER JOIN Z_VersionComptaGénérale ON T_JournalAchat.VersionComptaGénérale = Z_VersionComptaGénérale.VersionComptaGénérale
    WHERE (((T_JournalAchat.Journal)="JAC"));

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 41
    Par défaut
    Je dis peut être une connerie, mais si ton Me.num_facture est un numéro, ce n'est pas la peine de l'entourer d'apostrophe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Strsql = "DELETE * FROM Z_JournalAchat WHERE Num_facture = " & Me.num_facture

  5. #5
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir,

    Si je ne me trompe pas, DELETE ne peut supprimer que dans une seule table à la fois.
    Or, si tu utilises comme source, une requête sur plusieurs tables, tu ne peux pas préciser dans quelle table supprimer.

    Dans l'aide d'Access tape la question "supprimer des enregistrements à l'aide d'une requête"
    et regarde la rubrique "Suppression d'un groupe d'enregistrements à l'aide d'une requête"

    Bon courage.

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

Discussions similaires

  1. commande docmd runSQL
    Par ac264 dans le forum VBA Access
    Réponses: 1
    Dernier message: 01/10/2007, 16h07
  2. Ecriture Commande DoCmd.RunSQL
    Par DURANTEAU dans le forum VBA Access
    Réponses: 9
    Dernier message: 25/09/2007, 11h45
  3. Requête de sélection et DoCmd.RunSQL
    Par susiced dans le forum Access
    Réponses: 15
    Dernier message: 15/06/2006, 13h47
  4. Comment tester le déroulement d'un DoCmd.RunSQL ?
    Par Tchupacabra dans le forum Access
    Réponses: 7
    Dernier message: 28/11/2005, 23h45
  5. Transaction avec DoCmd.runsql ???
    Par Gandalf24 dans le forum VBA Access
    Réponses: 29
    Dernier message: 11/02/2003, 20h35

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