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 :

Comment faire une saisie semi-automatique sous access 2007 [AC-2007]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2009
    Messages : 36
    Points : 26
    Points
    26
    Par défaut Comment faire une saisie semi-automatique sous access 2007
    Bonjour,

    Voila mon problème

    Je souhaite avoir une saisie semi-automatique sur un formulaire
    J'ai fouillé un peu sur le net mais aucune réponse très clair car étant novice sous access et en vba

    Je souhaiterais faire cela via un champ style zone de texte
    cela est il possible?
    Je souhaiterais que la personne en saisissant les première lettres d'un nom de client puisse avoir les différents choix possible parmis les noms de clients dans ma base de donnée Client via le champ Nom

    Je pense qu'il faut mettre cela dans l'évènement "touche appuyée" ou "reception focus"
    le pb avec l'évènement "touche appuyée" je pense est que si la personne commence a taper et n’appuie sur aucune touche ensuite cela annule l'évènement et donc ne donnera pas de choix a l'utilisateur

    Merci d'avance pour vos réponses

    Bonne journée

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonjour,

    Tu peux faire cela avec une zone de liste déroulante.

    Utilise l'assistant pour la créer, en sélectionnant la 3ème possibilité, "Rechercher un enregistrement...".

    Cela fait exactement ce que tu cherches à faire.

    Domi2

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2009
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    j'avais trouvé cette solution aussi mais malheureusement je pense que cela ne fonctionne pas sous la version 2007 car je n'ai que 2 choix
    "je veux que la liste déroulante recherche les valeurs dans une table ou requête"
    ou
    "je taperais les valeurs souhaitées"
    mais pas de 3ème choix
    du coup j'ai essayé une requête avec un like mais cela ne fonctionne pas

  4. #4
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Quelle est la source de ton formulaire ?

    Si c'est une requête SQL, effectivement, l'assistant ne propose pas la recherche d'enregistrement.

    Domi2

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2009
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    si par source tu parles de la base de donnée ce sont des tables que j'ai créé via access et dont j'ai accès dans chacun de mes formulaires et ou je peux ajouter, faire des selections, modifier, supprimer sans problème
    la table que je veux utiliser est la table Client contenant le champ Nom et quand par exemple la personne tape la lettre 't' le programme lui suggère les noms commencant par t tel que toto ou tata par exemple

    voila

  6. #6
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Tu crées une zone de liste déroulante avec 2 colonnes. Dans la première, l'ID des enregistrement, que tu peux masquer en réduisant la largeur de la colonne à 0, dans la deuxième, le nom.

    Dans la propriété Après mise à jour de la zone de liste, tu mets ce code (en adaptant au nom de ta liste déroulante et de l'ID de tes enregistrements dans ta table).

    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
    Private Sub cboTaliste_AfterUpdate()
     
        On Error Resume Next
     
        'Recherche et affichage de l'enregistrement sélectionné dans la liste
        With Me.RecordsetClone
     
            .FindFirst "TonId=" & str(Nz(Me.cboTaListe, 0))
     
            If .NoMatch = False Then Me.Bookmark = .Bookmark
     
        End With
     
        'Synchronisation de la liste de recherche
        Me.cboTaListe.Value = Me.TonId.Value
     
    End Sub
    Domi2

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2009
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    merci beaucoup cela marche exactement comme je le souhaitais mais j'ai une erreur de compilation sur la dernière ligne quand je vais pour cliquer en dehors
    'Synchronisation de la liste de recherche
    Me.cboTaListe.Value = Me.TonId.Value
    que j'ai modifié en Me.Modifiable26.Value = Me.id_Client.Value
    j'ai bien remplacé TonId par id_Client qui est la clé primaire de ma table et j'ai cette erreur de compilation "Membre de méthode ou de données introuvable"

    Je vais me plonger dans le code pour comprendre son déroulement et voir ce qui ne va pas en espérant trouver

  8. #8
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Il faut que ton ID client soit dans le formulaire.

    Tu peux naturellement l'afficher dans un champ que tu rends non visible.

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2009
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    mon id_Client apparait dans le formulaire mais en masqué/caché dans la liste déroulante (on me le propose lors de la création de la liste déroulante pourtant)

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2009
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    le code fonctionne (vis a vis de l'affichage semi automatique des noms) mais cela est incompréhensible car j'ai mon code dans une précédente liste déroulante que j'ai supprimé qui était Modifiable32 hors, ma liste déroulante actuellement sur mon formulaire est Modifiable34 et l'affichage semi-automatique fonctionne

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2009
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    bon ca marche avec le bon numéro de la liste déroulante
    j'ai juste enlevé la synchronisation de la liste de recherche

    j'ai testé je récupère bien le bon id de client donc apparemment l'erreur venait de cette ligne

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

Discussions similaires

  1. Comment faire une saisie intelligente sous VB.net ?
    Par khaoulalak dans le forum VB.NET
    Réponses: 5
    Dernier message: 19/08/2010, 14h10
  2. Procédures pour une saisie semi automatique
    Par michel71 dans le forum Contribuez
    Réponses: 3
    Dernier message: 15/02/2010, 15h14
  3. Comment désactiver la saisie semi-automatique pour un champ
    Par frochard dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/01/2008, 11h23
  4. Comment enlever la saisie semi-automatiques des valeurs de cellule?
    Par Subkill dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/06/2007, 01h05
  5. [WebMatrix] Comment obtenir la saisie semi automatique ?
    Par Portekoi dans le forum EDI/Outils
    Réponses: 1
    Dernier message: 18/08/2006, 09h58

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