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

IHM Discussion :

Accès enregistrement


Sujet :

IHM

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Points : 44
    Points
    44
    Par défaut Accès enregistrement
    Bonjour,

    j'ai une base access avec un formulaire ("Fiche Films") basé sur une table avec une 100ène d'enregistrements (de films) basés sur un numéro.

    J'ai créer un formulaire ("Recherche film par titre") basé sur une requête pour faire une recherche rapide sur ces 100 enregistrements. Il me sort alors le titre, l'affiche et le synopsis. J'ai ajouté un bouton action, et je voudrais par une macro, fermer le formulaire "recherche film par titre" (sa c'est bon), ouvrir le formulaire ("Fiche Films"), et accéder à la fiche du N-ième enregistrement, correspondant au titre du film qui était sélectionné.

    Comment puis-je faire svp?

    merci d'avance

    Amariel

  2. #2
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,

    Pour faire plus simple, tu pourrais accéder directement à ta fiche Film dès que tu as sélectionné son numéro dans ton formulaire "Fiche film"....

    Ces anciens post devrait te donner quelque idée....
    Ouvrir formulaire correspondant à une ligne.

    Comment fait on pour ouvrir un formulaire en fonction d'un enregistrement ?

    ....pour commencer...

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Points : 44
    Points
    44
    Par défaut
    Non justement je ne peux pas!

    Je m'explique: Je fais un recherche avec comme mot clé "american" parce que je me rappelle plus du titre complet. Il me sort alors american beauty, american history X, american gangsters...

    Je créer donc une présentation rapide de tous les films contenant le mot "american", je regarde quel film correspond au titre que je voulais et je clique alors si acceder à la fiche pour ouvrir la fiche complète.

    Par contre je suis désolé je pige pas trop toutes les lignes de codes (je sais me servir des options disponibles dans access, mais programmer les boutons et autre système d'accès ou de recherche je comprend rien). Spour sa que je cherche la mache à suivre sans code pour accéder un enregistrement précis.
    ex: je consulte la fiche rapide de american history X parce que j'ai recherché le mot american, je clique sur "Fiche complète" et j'accède directement à la fiche complète n°X du film American history X.

  4. #4
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    OK, avec un peu plus d'explications.....c'est plus clair...

    ..table avec une 100ène d'enregistrements (de films) basés sur un numéro.
    Ici, chaque film est identifié par un numéro unique.....et c'est donc cet identifiant qui va nous permettre d'ouvrir ton formulaire "Fiche films" directement sur le film correspondant.

    Le code présent sur ton bouton action doit être sous la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Ouvre le formulaire "Fiche films"
    DoCmd.OpenForm "Fiche films"
    ....et pour n'afficher QUE l'enregistrement correspondant..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'Ouvre le formulaire sur un enregistrement précis
    DoCmd.OpenForm "Fiche films", , , "(ID_Film)= '" & Me.ListeChoix.Column(0) & "'"
    'Je ferme le formulaire "Recherche film par titre"
    DoCmd.Close acForm, "Recherche film par titre"
    ID_Film = le nom du champ définissant le numéro du film

    Me.ListeChoix.Column(0) = nom de ta Zone de liste de ton formulaire "Recherche film par titre".

    Pour plus d'explications, regarde l'aide d'ACCESS sur Méthode OpenForm

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Points : 44
    Points
    44
    Par défaut
    Euh je t'ai envoyé un MP pour éviter de trop étaler mon ignorance sur access... je ne comprend pas déjà comment programmé le bouton? Je sais y appliqué des macros mais y appliquer un code, non!

  6. #6
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Pas top le MP......car si je ne viens pas sur le Forum pendant un certain temps.....tu risque de ne pas avoir de réponse !!

    Donc n'hésite pas à nous faire part de tes difficultés (tout le monde a un jour débuté..)....et l'ensemble des membres du Forum seront à même de t'aider...

    Ceci dit, la programmation par le code VBA n'a rien de très compliquée......la première chose est de lire ce tuto de base, le comprendre et essayer de l'appliquer à ta propre application..
    Les événements avec Microsoft Access
    Initiation au VBA Office

    Si tu sais affecter une macro à un contrôle bouton de commande, alors affecter du code VBA est tout aussi simple....

    Si tu regarde bien, quand un contrôle est sélectionné, dans la fenêtre des propriétés sous l'onglet Évènements, tu trouvera l'ensemble des "actions" applicables à ce contrôle.
    Ainsi, pour appliquer une action qui survient lors d'un clic sur ton bouton de contrôle (btnOuvrir) permettant d'ouvrir un autre formulaire, il suffit de cliquer sur le bouton situé en regard de l'événement "Sur clic" [...]......et de choisir "Générateur de code" et de cliquer sur OK.

    Tu te retrouvera directement dans l'éditeur de code avec ton curseur placé entre ces deux lignes...:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub btnOuvrir_Click()
    |
    End Sub
    C'est entre ces deux lignes qu'il te faut taper ton code VBA.

  7. #7
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Points : 44
    Points
    44
    Par défaut
    Ok donc j'ai fais ce que tu m'as dis dans le générateur de code (effectivement il m'ouvrait par défaut le générateur de macro, j'laurais pas trouvé par accident si tu m'avais pas dis comment faire! Merci

    Sinon j'ai repris ton code voila ce que sa me donne au final (et sa ne marche pas, j'ai dus oublié quelques chose).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Boîte24_Click()
     
    DoCmd.OpenForm "Liste Films", , , "(N°)= '" & Me.ListeChoix.Column(0) & "'"
    DoCmd.Close acForm, "RechercheFilmsTitre"
     
    End Sub
    J'ai changé Fiche films en "Liste Films" (qui est le nom de mon formulaire avec les fiches complètes), ID_Title en "N°" (qui est le nom du champ clé de ma table Liste Films), et Recherche film par titre en "RechercheFilmsTitre" (qui est le nom de mon formulaire contenant la requête de recherche de film en fonction du titre).

    Je crois que ce qui ne va pas vient de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '" & Me.ListeChoix.Column(0) & "'"
    Je t'avouerais que je ne comprend pas trop cette ligne, si tu pouvais me la préciser! Parce que y'a quelques chose que je ne comprend pas, c'est la recherche de la fiche complète par le numéro. Ma requête de recherche de titre se base sur le champ Titre de ma table Liste Films, qui est intégré dans mon formulaire "RechercheFilmsTitre", ce dernier n'affichant pas le numéro mais uniquement le titre du film, l'affiche et le synopsis.
    Le numéro à beau être la clé de ma table Liste Films, comme je ne créer pas de table lors de la recherche par titre je ne comprend pas comment il peut retrouver la fiche complète par le numéro si il n'est pas référencé dans mon formulaire de recherche.
    Ce qu'il faudrait c'est une comparaison par titre complet de film et pas par le numéro.

    J'espère avoir été clair, sur ce que je trouvais pas clair ^^"

  8. #8
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Points : 44
    Points
    44
    Par défaut
    Bonjour,

    je refais un up car je n'ai toujours pas réussi à accéder à l'enregistrement que je voulais.

    Sur un forum, j'ai vu un post avec ce code:

    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
    Private Sub <controle>_Click()
    Rem DoCmd.Minimize
    On Error GoTo Err_<controle>_Click
     
    Dim stDocName As String
    Dim StLinkCriteriA As String
     
    stDocName = "<Formulaire à ouvrir>"
    StLinkCriteriA = "[<Champ lié1>]=" & Me![<champ lié2>]
     
    DoCmd.OpenForm stDocName, , , StLinkCriteriA
     
    Exit Sub
    DoCmd.Restore
    Err_<controle>_Click:
    MsgBox Error$
    Exit Sub
    End Sub
    Le problème c'est que je ne comprend pas champ lié 1 et champ lié 2 ce qu'il faut que je mette. Je ne comprend pas comment lui faire la comparaison du Titre qui s'affiche dans mon formulaire recherche film et le Titre du formulaire Liste Films qui contient tous mes enregistrements.

  9. #9
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,

    Et bien tu y es presque....

    Ici [<Champ lié1>] correspond au nom du champ présent sur le formulaire à ouvrir.
    Ce champ correspond au paramètre ConditionWhere de la méthode OpenForm. C'est ce paramètre qui détermine quelle(s) valeur(s) doit afficher ton formulaire.

    Ici & Me![<champ lié2>] correspond au nom du champ présent sur ton premier formulaire.

    L'exemple donné dans l'aide d'ACCESS est assez parlant
    Exemple

    Cet exemple ouvre le formulaire Employees en mode Formulaire et affiche uniquement les enregistrements dont le champ LastName (Nom) contient King (Roi)..

    DoCmd.OpenForm "Employees", , ,"LastName = 'King'"
    Simplement, dans ton cas, comme cette valeur change, on remplace par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "FormAOuvrir", , , "(NomChamp)= '" & Me.NomChampPremierForm & "'"
    Et dans la tu trouvera comment écrire la bonne syntaxe en fonction que ton champ soit de type numérique ou de type texte...:
    Type de données incompatible dans l'expression du critère

    Et toujours dans la même ...
    Comment ouvrir un formulaire en fonction d'une valeur contenue dans un autre formulaire ?

  10. #10
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 86
    Points : 44
    Points
    44
    Par défaut
    Pifou, gros pas en avant, je rejoins la bonne fiche complète en fonction de la fiche que je regarde.

    Sinon quand je cherche alien, il me met les fiches dans mon formulaire recherchefilmtitre de Alien, Alien 2, Alien 3, Alien 4 et Braquage à l'Italienne. Mais comme il a recherché en fonction du titre qui est en fait "Alien 1 - Le 8 ème passager", je n'ai qu'une seule fiche dans mon formulaire Liste Films. Comment je peux lui dire que je veux qu'il m'affiche toutes les fiches qui se sont sorties lors de la recherche: soit ex: Alien 1 (fiche 42), Alien 2 (fiche 43), Alien 3 (fiche 44), Alien 4 (fiche 45) et Braque à l'Italienne (fiche 92)?

  11. #11
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Dans l'exemple donné, tu fais une recherche par rapport au nom du film...

    Quand tu es positionné sur la fiche du film "Alien 1 - Le 8 ème passager", ton paramètre ConditionWhere est donc égale à "Alien 1 - Le 8 ème passager".........donc ici, il est normal que ton formulaire ne fasse apparaitre QUE cet enregistrement.

    Si tu souhaite avoir TOUS les enregistrements dont le nom du film commence par "Alien" ou qui contient "alien".......il faut changer le critère de ta condition..

    Regarde du côté de LIKE..
    Comment chercher les enregistrements contenant une certaine chaîne ? (LIKE)

    ...tu trouvera également tout ce qu'il te faut dans les tutos..
    Formulaires de recherche

Discussions similaires

  1. Modifier chemin d'accès Enregistrer sous
    Par operaq dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/11/2013, 13h47
  2. [AC-2003] Erreur accès enregistrement suivant
    Par twitzig dans le forum Access
    Réponses: 1
    Dernier message: 20/10/2011, 18h53
  3. [VB6] Allez en avant dernier enregistrement d'une table acce
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 10/02/2006, 15h42
  4. Bloquer l'accès à un enregistrement d'une table
    Par Denti-fritz dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/12/2005, 15h59
  5. Accès au dernier enregistrement SQL
    Par kcin dans le forum Requêtes
    Réponses: 4
    Dernier message: 10/09/2005, 10h17

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