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 :

Suppression enregistrement via recordset [AC-2003]


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 69
    Points : 35
    Points
    35
    Par défaut Suppression enregistrement via recordset
    Bonjour

    Je souhaite supprimer des enregistrements via une requête comprenant 3 critéres : une date (me.DateJour), un poste (Me.LPoste) et un numéro de machine (me.Numeroligne) mais je bute sur la syntaxe.

    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
    Dim LaTableCodSap As DAO.Database
    Dim RstCodSap As DAO.Recordset
    Set LaTableCodSap = CurrentDb
    
    Set RstCodSap = LaTableCodSap.OpenRecordset("SELECT * FROM TSaArretCodSap WHERE DateSaisie=me.DateJour and NumLigne= me.NumeroLigne and Poste = me.Lposte")
    
    ' Evidemment cette syntaxe ne fonctionne pas !!
    
    While Not RstCodSap.EOF
          RstCodSap.Delete
          RstCodSap.MoveNext
    Wend
            
    RstCodSap.Close
    LaTableCodSap.Close
    Set RstCodSap = Nothing
    Set LaTableCodSap = Nothing
    J'ai cherché dans les tutoriels, forums, livre, etc... mais je n'ai pas trouvé la solution

    J'ai essayé avec des "morceaux de codes" comme par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set RstCodSap = LaTableCodSap.OpenRecordset("SELECT * FROM TSaArretCodSap WHERE DateSaisie=#08/11/2011#")
    Cela fonctionne en mettant le format américain pour la date, les enregistrements du 11/08/2011 sont bien supprimés.

    Si quelqu'un peut m'orienter vers la solution.......

    Merci à tous pour votre aide

  2. #2
    Expert éminent
    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
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    ajoutes la déclaration de cette variable :
    Puis, pour ouvrir le recordset :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sSQL = "SELECT * FROM TSaArretCodSap " & _
           "WHERE DateSaisie=#" & Format(me.DateJour, "mm/dd/yyyy") "# " & _
             "And NumLigne=" &  me.NumeroLigne & " " & _
             "And Poste = '" & me.Lposte & "'"
    Set RstCodSap = LaTableCodSap.OpenRecordset(sSQL)
    en supposant ...
    DateSaisie de type Date/Heure
    NumLigne de type Entier Long
    Poste de type Texte.

    A+

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 69
    Points : 35
    Points
    35
    Par défaut
    Bonjour

    Avant tout merci pour ton aide

    J'ai essayé le code mais il se plante à

    "mm/dd/yyyy") "# "

    le message est : Erreur de compilation
    Attendu fin d'instruction


    Pour info tes suppositions sont justes

    Par avance merci

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 69
    Points : 35
    Points
    35
    Par défaut
    Bonjour

    Cela fonctionne !!

    Il manquait un &

    cela donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sSQL = "SELECT * FROM TSaArretCodSap " & " WHERE DateSaisie=#" & Format(Me.DateJour, "mm/dd/yyyy") & "#  " & "And NumLigne=" & Me.NumeroLigne & " " & "And Poste = '" & Me.LPoste & "' "
    Encore une fois un grand merci

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

Discussions similaires

  1. [AC-2003] Suppression enregistrement sur as400 via ADO
    Par Tyria dans le forum VBA Access
    Réponses: 3
    Dernier message: 26/08/2009, 09h30
  2. supprimer des enregistrements d'une table via recordset
    Par isabelle b dans le forum VBA Access
    Réponses: 14
    Dernier message: 22/06/2008, 15h20
  3. Suppression enregistrement dans Recordset
    Par Jordmund dans le forum VBA Access
    Réponses: 6
    Dernier message: 23/01/2008, 05h39
  4. Suppression enregistrement via recordset
    Par CCRNP dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 02/03/2006, 10h41
  5. changement d'enregistrement via liste déroulante
    Par rahan_dave dans le forum Access
    Réponses: 3
    Dernier message: 13/10/2005, 19h47

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