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 :

Validation et recherche.


Sujet :

Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Validation et recherche.
    Bonjour,

    Je suis un débutant et je cherche à comprendre ce qui ne va pas dans mon programme. Je veux valider le Numéro de Client à savoir s'il existe. Si le numéro n'est pas valide, une msgbox doit apparaître (Numéro de client inexistant), le champ Numéro de client se réinitialise et le focus doit revenir sur ce champ. Si le numéro de client est valide alors je veux qu'en cochant une case (case à cocher) l'adresse et autres renseignements s'affichent.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Private Sub NoClient_AfterUpdate()
       On Error GoTo NoClient_Err
        'Déclaration des variables
        Dim db As DAO.Database
        Dim rst As DAO.Recordset
        Dim strSQL As String
        'Si le numéro de client est inscrit
        If Me.NoClient > "" Then
           'On crée le record pour aller chercher l'adresse selon le numéro du client
            Set db = CurrentDb
            strSQL = "SELECT FicheClient.NoClient, NomEntreprise, NomClient, AdresseClient, VilleClient, CPClient, Province FROM FicheClient " _
            & "WHERE FicheClient.NoClient = '" & Me.NoClient & "';"
            Set rst = db.OpenRecordset(strSQL)
            'Si le numéro de client correspond à une adresse
            If rst.EOF = False Then
                If Me.ClientProprio = True Then
                    Me.AdProprio = rst("AdresseClient")
                    Me.VilleProprio = rst("VilleClient")
                    Me.CPProprio = rst("CPClient")
                    Me.NomProprio = rst("NomClient")
                    Me.ProvProprio = rst("Province")
                   Else
                End If
            'Si le numéro de client n'est pas dans la base de données
            Else
               MsgBox "Ce numéro de client n'existe pas!"
               Me.NoClient = ""
               Me.NoClient.SetFocus
            End If
            'On libère la mémoire
            rst.Close
            Set rst = Nothing
            Set db = Nothing
        Else
        End If
    Exit_NoClient_AfterUpdate:
     
    Exit Sub
    Me.NoClient.SetFocus
    NoClient_Err:
    MsgBox Err.Description
    Resume Exit_NoClient_AfterUpdate
    End Sub
    taureauxyz@hotmail.com

  2. #2
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    J'ai remanié votre code tout en le rendant lisible (ce sera plus facile pour les intervenants). Essayez de le lancer en mettant des "breaks" pour repérer la source de l'erreur (click sur la barre verticale à gauche du code, à l'endroit où vous voulez que le processus s'arrête pour vous permettre de localiser l'erreur)

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    Private Sub NoClient_AfterUpdate()
     
     On Error GoTo NoClient_Err
     
     'Déclaration des variables
     Dim db As DAO.Database
     Dim rst As DAO.Recordset
     Dim strSQL As String
     
    Set db = CurrentDb
     
     'Si le numéro de client est inscrit
     If Me.NoClient <> "" Then
        'On crée le record pour aller chercher l'adresse selon le numéro du client
        strSQL = "SELECT FicheClient.NoClient, NomEntreprise, NomClient, " & _
        "AdresseClient, VilleClient, CPClient, Province FROM FicheClient " _
        & "WHERE FicheClient.NoClient = '" & Me.NoClient & "';"
     
        Set rst = db.OpenRecordset(strSQL)
        'Si le numéro de client correspond à une adresse
            If rst.EOF = False Then
                If Me.ClientProprio = True Then
                    Me.AdProprio = rst.AdresseClient
                    Me.VilleProprio = rst.VilleClient
                    Me.CPProprio = rst.CPClient
                    Me.NomProprio = rst.NomClient
                    Me.ProvProprio = rst.Province
                End If
            'Si le numéro de client n'est pas dans la base de données
            Else
                MsgBox "Ce numéro de client n'existe pas!"
                Me.NoClient = ""
                Me.NoClient.SetFocus
            End If
     
            'On libère la mémoire
            rst.Close
            Set rst = Nothing
     End If
     
    db.Close
    Set db = Nothing
     
    Exit_NoClient_AfterUpdate:
     Me.NoClient.SetFocus
     Exit Sub
     
    NoClient_Err:
     MsgBox Err.Description
     Resume Exit_NoClient_AfterUpdate
     
    End Sub

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Validation
    Quelqu'un peut-il m'écrire un code simple en VB afin de rechercher et de valider un champ dans une table. Exemple: Dans une table où il y a un champ "Numéro de client" rechercher ce numéro de client et me dire s'il existe ou non.

  4. #4
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    Voici un exemple:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Sub trouverNumero()
     
    Dim num As long  'en supposant que le numéro est un nombre, sinon il faut le traiter comme texte ci-dessous
    Dim db As Database: Dim rs As Recordset
    Dim trouve As Boolean
     
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("SELECT TblClients.NumClient FROM TblClients ORDER BY TblClients.NumClient;")
     
    trouve = False
    num= 123456
     
    With rs
        .MoveFirst
        Do While Not .EOF
            If !NumClient = num Then
                trouve = True
                numero = !NumClient
            End If
            On Error Resume Next
            .MoveNext
        Loop
        .Close
    End With
     
    If trouve Then
        MsgBox Numero & " trouvé"
    Else
        MsgBox num & "pas trouvé"
    End If
     
    Set rs = Nothing
    db.Close
    Set db = Nothing
     
    End Sub

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Février 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Février 2014
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Validation
    Merci je vais essayer cela.

Discussions similaires

  1. Validation algorithme recherche par tags
    Par lvr dans le forum Langage SQL
    Réponses: 6
    Dernier message: 09/05/2010, 00h23
  2. Réponses: 14
    Dernier message: 20/04/2007, 09h09
  3. Recherche d'API gérant la spécification DOM level 3 Validation
    Par osopardo dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 03/08/2006, 11h29
  4. comment valider un formulaire de recherche ?
    Par loady dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 10/07/2006, 15h54
  5. Validation de formulaire recherche avec fonction javascript
    Par Cdic dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/01/2006, 10h52

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