SOS Access
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

SOS Access



  1. #1
    littlegirl

    SOS Access


    ------

    bonjour
    je travaille sur access 2007
    je dois rendre un champs obligatoire et je ne sais pas comment
    j'ai trouvé dans le web qu'on dois utiliser Validation rule
    dans Validation rule je choisis is null mais il y a is null(expression) je ne sais pas quoi faire dans cette expression
    je ne sais pas quoi faire

    ma deuxième question c'est qu'il y a des champs qui ne sont obligatoire que si d'autres champs sont vvalidés je dois mettres des conditions
    je ne sais pas comment
    merci de m'aider la dessus
    grand merci d'avance

    -----

  2. #2
    Dormeur74

    Re : SOS Access

    je dois rendre un champs obligatoire et je ne sais pas comment
    .

    Tu dois mettre à OUI la valeur IsNull du champ obligatoire.

    ma deuxième question c'est qu'il y a des champs qui ne sont obligatoire que si d'autres champs sont vvalidés je dois mettres des conditions
    je ne sais pas comment
    Comme IsNull ne peut pas reçevoir de valeur conditionnelle, tu es obligé de passer par un formulaire de saisie, dans lequel tu vas pouvoir contrôler les données avant leur enregistrement.

  3. #3
    littlegirl

    Re : SOS Access

    je travaille avec Access en anglais , normalment au lieu de oui je dois mettre yes mais yes n'est pas une expression accpetée
    il n'y a que true et ça ne marche pas
    en plus lorsque j'ai modifié les validationj rule dans les tables c'est pas efficace car:
    lorsque j'ouvre la formulaire la premiere fois il me damande de remplir les champs obligatoires et llors de la deuxieme ouverture les données que j'avais rentré restent là comme état initial , il sont censé etre rempli et par la suite ne me demande pas de les remplir
    C'est pour cela que je dois modifier activation rule dans form
    JE NE TROUVE PAS IS NULL
    je travaille avec access 2007
    je suis perdue pourriez vous me donner un coup de main svp??
    grand merci d'avance

  4. #4
    Dormeur74

    Re : SOS Access

    Comme tu dois passer par un formulaire, tu peux laisser tous tes champs avec leur valeur par défaut. Tu contrôleras l'obligation de remplir un champ dans ton code.

    Petit exemple.

    Dans une base Access vide, tu crées une nouvelle table comportant les champs suivants :
    id_cle Numéro Auto clé primaire
    Champ1 texte (champ obligatoire)
    Champ2 texte (non obligatoire)
    Champ3 texte (non obligatoire)
    Champ4 texte (champ obligatoire si Champ2 et Champ3 ont un contenu)
    Tu ne cherches pas à rendre obligatoire le Champ1 avec cette histoire de OUI, NON, TRUE, FALSE, etc.

    Tu crées un Formulaire en mode création dans lequel tu places 4 zones de texte que tu nommes Saisie1, Saisie2, Saisie3, Saisie4
    Tu places un bouton. L'assistant Bouton de commande s'ouvre, tu sélectionnes la catégorie "Applications" et l'action "Exécuter une application" puis tu cliques sur "Suivant" deux fois; comme nom tu entreras Commande.

    Tu tapes Alt+F11 pour accéder à VBE.

    Tu effectue un double clic sur Form_Formulaire1 et tu remplaces tout le contenu par :
    Code:
    Option Compare Database
    Option Explicit
    
    Private Sub Commande_Click()
      Traitement
    End Sub
    Tu insères un module (Insertion|Module)

    Tu effectues un double clic sur Module1 et tu y colles le code suivant :
    Code:
    Option Compare Database
    Option Explicit
    
    Sub Traitement()
      Dim val1, val2, val3, val4 As String
      Dim ctrl As Integer
      Dim sql As String
      
      
      ' Le champ n° 1 st pas obligatoire
      If IsNull(Forms!Formulaire1.Controls("Saisie1").Value) Then
        MsgBox "Le champ n° 1 est obligatoire.", vbCritical + vbOKOnly, "Erreur de saisie"
        Exit Sub
      End If
      
      ctrl = 0
      ' Le champ n° 2 n'est pas obligatoire
      If Not IsNull(Forms!Formulaire1.Controls("Saisie2").Value) Then
        ctrl = ctrl + 1
      End If
      
      ' Le champ n° 3 n'est pas obligatoire
      If Not IsNull(Forms!Formulaire1.Controls("Saisie3").Value) Then
        ctrl = ctrl + 1
      End If
        
      ' Si les champs n° 2 et 3 sont remplis, le champ n° 4 est obligatoire
      If ctrl = 2 And IsNull(Forms!Formulaire1.Controls("Saisie4").Value) Then
        MsgBox "Le champ 4 est obligatoire lorsque les champs 2 et 3 sont remplis", vbCritical + vbOKOnly, "Erreur de saisie"
        Exit Sub
      End If
      
      ' Toutes les conditions sont remplies, on enregistre les valeurs.
      val1 = Forms!Formulaire1.Controls("Saisie1").Value & ","
      val2 = Forms!Formulaire1.Controls("Saisie2").Value & ","
      val3 = Forms!Formulaire1.Controls("Saisie3").Value & ","
      val4 = Forms!Formulaire1.Controls("Saisie4").Value
      sql = "INSERT INTO Table1 ([Champ1], [Champ2], [Champ3], [Champ4]) VALUES ('val1','val2','val3','val4');"
      DoCmd.RunSQL sql
      MsgBox "Enregistrement effectué"
    End Sub

    Il ne te reste plus qu'à entrer tes données par le formulaire.

  5. A voir en vidéo sur Futura
  6. #5
    littlegirl

    Re : SOS Access

    ok merci bcp
    en attendant que je fasse ceci est ce que je peux vous envoyer mon database par MP pour que vous puissiez voir ce que j'ai fais?

  7. #6
    Dormeur74

    Re : SOS Access

    Pas de problème, tu as mon adresse E-Mail.

  8. #7
    littlegirl

    Re : SOS Access

    merci infiniment
    pour l'exemple que vous m'aviez donné lorsque j'ai créer le bouton je n'ai pas trouvé application , exeucter application jai trouvé :
    Format , data , event , Other , all
    ????
    merci d'avance

  9. #8
    Dormeur74

    Re : SOS Access

    Je n'ai que la version 2003 d'Access. Lorsqu'on pose un bouton sur le formulaire, la fenêtre en question s'ouvre. Si tu as une version ultérieure d'Access, alors il faudra qu'une âme charitable intervienne. Cherche néanmoins du côté d'event.

  10. #9
    Dormeur74

    Re : SOS Access

    Une petite erreur : tu remplaceras la ligne :

    Code:
    sql = "INSERT INTO Table1 ([Champ1], [Champ2], [Champ3], [Champ4]) VALUES ('val1','val2','val3','val4');"
    par celle-ci :

    Code:
      
    sql = "INSERT INTO Table1 ([Champ1], [Champ2], [Champ3], [Champ4]) VALUES (" & "'" & val1 & "'," & "'" & val2 & "'," & "'" & val3 & "'," & "'" & val4 & "');"

Discussions similaires

  1. :sos: Jouer du PS2 sur ecran PC :sos:
    Par manraz dans le forum Électronique
    Réponses: 4
    Dernier message: 24/05/2011, 08h39
  2. SoS -shema electrique- SoS
    Par invite695eda23 dans le forum Électronique
    Réponses: 1
    Dernier message: 22/02/2009, 17h01
  3. [Thermique] :sos: Lave linge WHIRPOOL AWA 1005 :sos:[résolu]
    Par rgrz74 dans le forum Dépannage
    Réponses: 13
    Dernier message: 12/03/2007, 08h55
  4. :sos: comment se déplace le courant? :sos:
    Par invite8afe7323 dans le forum Électronique
    Réponses: 6
    Dernier message: 12/02/2006, 14h21
  5. :sos: comment prévoir les éruptions volcaniques?????problématique :sos:
    Par invitedd7d941d dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 30/09/2005, 15h38
Découvrez nos comparatifs produits sur l'informatique et les technologies.