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 :

Comment interdire une URL dans un champ de type memo ?


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Comment interdire une URL dans un champ de type memo ?
    Bonjour,

    D'abord, j'ai parcouru les messages et la FAQ avant de poster ce sujet.
    Je cherche des astuces pour empêcher l'ajout d'enregistrement dont le champ commentaire de type mémo contient un ou des url. Il s'agit d'un petit livre d'or sur un site.
    Merci

  2. #2
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 273
    Points : 258
    Points
    258
    Par défaut
    Sur le champ dans le formulaire mets sur l'evenement BeforeInsert quelque chose comme If (champ.value LIKE "*http*" ) Then action a faire ...

    Je ne suis plus sure de la syntaxe mais ca doit etre quelque chose comme ca! Ca empechera de mettre quelque chose qui contient http

  3. #3
    Membre habitué
    Inscrit en
    Juin 2006
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 162
    Points : 197
    Points
    197
    Par défaut
    tu peux aussi utiliser cette fonction pour chercher ton mot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function FMel_Cherche(OriginalS As String, FindS As String) As Boolean
     
       ' FMel_Cherche("moha25fr faf http", "http")
         FMel_Cherche = False
         Dim I As Integer
         I = InStr(1, OriginalS, FindS)
         If I > 0 Then
            FMel_Cherche = True
         End If
     
    End Function
    A+

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Août 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour vos réponses.
    Pourtant, étant vrai débutant, je ne sais pas où mettre ces fonctions.
    Si vous avez d'autres renseignements complémentaires, n'hésitez pas à me les demander.

  5. #5
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 273
    Points : 258
    Points
    258
    Par défaut
    Alors en fait il faut faire du code en VBA c'est a dire un petit peu plus pousse que l'edition directe de formulaires

    Il faut que tu cliques droit sur le champ ou les gens vont entrer le commentaire, Proprietes > Evenement > BeforeUpdate et la tu cliques sur les 3 petits points a droite et choisis Code.

    Ca va t'ouvrir une nouvelle fenetre avec le code en VBA qui correspond a ce formulaire, et ca a du t'ecrire deja automatiquement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commentaire_BeforeUpdate(Cancel As Integer)
     
    End Sub
    Ca, c'est le code qu'il va executer a chaque fois avant d'updater la valeur du champ commentaire il reste plus qu'a remplir le trou au milieu avec ce que tu veux lui faire faire

    En l'occurence tu veux faire un test: est-ce que la valeur entree contient "http". Pour ca on utilise une fonction "LIKE": "expression1 LIKE expression2" teste si l'expression1 est egale a l'expression2 et renvoie True ou False. Pour dire blablabla on remplace par * (ca veut dire n'importe quel caractere repete n'importe quel nombre de fois) et comme on veut pouvoir tester s'il y a du blabla avant et apres le http on va mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    commentaire.value LIKE "*http*"
    en supposant que ton champ s'appelle commentaire (.value c'est pour chercher la valeur entree).

    Si le commentaire contient http, on peut supposer que c'est un lien... donc on peut envoyer un message d'erreur par exemple, et surtout empecher qu'il sauve la valeur en utilisant Cancel = True (ca veut dire qu'il va faire cancel du update donc ne pas enregistrer la valeur)

    Du coup ca va faire au total:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Comment_BeforeUpdate(Cancel As Integer)
    If (Comment.Value Like "*http*") Then 'Si c'est vrai
        MsgBox "pas de liens!" 'fais un message d'erreur 
        Cancel = True 'empeche la sauvegarde (l'update) du commentaire
    End If
    End Sub
    Apres tu n'as plus qu'a tester dans le formulaire Dis moi si ca marche!

Discussions similaires

  1. [AC-2013] Comment annuler une date dans un champ de type date
    Par CapErquy dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/01/2015, 22h36
  2. Réponses: 2
    Dernier message: 11/04/2007, 00h43
  3. Réponses: 4
    Dernier message: 22/10/2006, 01h23
  4. Réponses: 8
    Dernier message: 31/07/2006, 13h52
  5. Comment fixer une date dans un champ !
    Par LATHIOS dans le forum Access
    Réponses: 8
    Dernier message: 17/06/2005, 20h44

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