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 :

Supprimer le contenu d'une donnée d'un enregistrement quand on clic dans sa zone de texte. [AC-2007]


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 9
    Points : 9
    Points
    9
    Par défaut Supprimer le contenu d'une donnée d'un enregistrement quand on clic dans sa zone de texte.
    Bonjour à tous,

    Je vous expose mon problème :

    J'ai dans un formulaire un sous formulaire dont un des champs affiche automatiquement des données en fonction des choix faits dans le formulaire.

    Je souhaite cependant pouvoir supprimer cette valeur si je clique dans son champ.

    Voici le code que j'ai tenté d'utiliser sans succès :
    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
    Public Sub Essai_de_traction_Click()
     
    Dim db As Database
    Dim rs As Recordset
    Dim rech1 As Single
    rech1 = Forms.IDENTIFICATION.ENSEMBLE![Index table ensemble].Value
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("ENSEMBLE")
    rs.FindFirst ("[Index table ensemble] ='" & rech1 & "'")
    rs.Edit
    rs![Essai de traction] = ""
    rs.Update
     
    Me.Refresh
    End Sub
    Mais j'ai l'erreur suivante qui apparait :
    Erreur d'exécution '3464'
    Type de données incompatible dans l'expression du critère.


    et il me surligne en jaune la ligne qui commence par "rs.Findfirst..."

    Je précise que rech1 est une valeur numérique.

    Je vous remercie d'avance pour votre aide.

    p.s. : Inutile de vous préciser que je ne suis pas un grand expert de vba

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 351
    Points : 23 816
    Points
    23 816
    Par défaut
    La solution au problème que tu mentionnes est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs.FindFirst ("[Index table ensemble] =" & rech1)
    quand tu as affaire à un numérique il ne faut pas de délimteurs de chaîne de caractères. De même si tu as une date aors il convient de mettre # autours.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs.FindFirst ("[UnChampDate] =#" & format(rech1,"yyyy-mm-dd" & "#")
    le format n'est pas indispensable mais il lève complétement l'ambiguité sur le format de la date. En effet access se mélange parfois entre le format français (DD-MM-YYYY) et américain (MM-DD-YYYY) lorsque la date est du type 01/11/2010.

    Pour ton problème d'effacement je te suggère la solution suivante : remplace tout ton code par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.[Index table ensemble]=""
    qui va faire exactement la même chose.

    Autre suggestion évite les espaces, les accents, les caractères spéciaux dans tes noms d'objets Access (champs, requête, tables, formulaire ou état). Utilise simplement des lettres et/ou des chiffres et/ou le _.

    Exemple : Index table ensemble pourrait être IndexTableEnsemble ou Index_table_ensemble.

    A+

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Je te remercie.
    Pour la 2ème solution que tu me proposes, elle ne peut pas s'appliquer dans mon cas, car c'est [Essai de traction] que je veux supprimer.
    Je récupère la valeur [Index table ensemble] dans le formulaire pour retrouver dans la table pour trouver l'enregistrement dont je veux effacer la valeur de [Essai de traction]. Après mon code n'est peut être le plus simple...

    Encore merci.

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

Discussions similaires

  1. supprimer le contenu d'une JList
    Par info.men dans le forum Débuter
    Réponses: 2
    Dernier message: 18/02/2009, 21h51
  2. Supprimer/Remplacer contenu d'une iframe
    Par devoluti0n dans le forum Langage
    Réponses: 5
    Dernier message: 03/05/2008, 10h34
  3. supprimer le contenu d'une colone
    Par DIDIDIDA dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 31/01/2008, 15h02
  4. Réponses: 2
    Dernier message: 06/04/2007, 12h17
  5. Supprimer le contenu d'une GList
    Par bigben89 dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 23/08/2006, 16h20

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