Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/05/2011, 10h05   #1
Invité de passage
 
Femme
Administrateur de base de données
Inscription : avril 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Santé

Informations forums :
Inscription : avril 2011
Messages : 6
Points : 0
Points : 0
Par défaut Pb identifiant dans des formulaires de navigation

* Bonjour, *

J’ai un problème pour reprendre mes identifiants patients avec les formulaires navigations sous Access 2010. Ma base est constituée de 2 formulaires de navigation imbriqués (onglets horizontaux et onglets verticaux). Un onglet présent sur l’horizontale représente une atteinte et les onglets verticaux, différentes données sur cette atteinte (diagnostic [formulaire simple], imageries [formulaire tabulaire], chirurgies [formulaire tabulaire] et suivis [formulaire tabulaire]) . Chaque onglet correspond à un formulaire et un formulaire à une table.

A partir du 1er onglet « Identité », on se positionne sur un patient donné, comment se positionner sur ce même patient dans les autres onglets ? Certains onglets contiennent un formulaire à colonne simple, d’autres un formulaire tabulaire. L’objectif est de créer une ligne (le patient) lorsque l’on est en mode saisie et de se positionner sur le patient lorsque celui-ci est déjà saisi et que l’on veut juste modifier une donnée.

Comment faire pour reprendre mes identifiants ? Pour information, j’ai déjà créer les liens entre les tables.

Merci pour votre aide.
Cic-ec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2011, 12h10   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 623
Points : 11 623
Bonjour,

Utilise le recordset de chaque sous-formulaire pour te positionner sur le patient ou pour créer des lignes.

C'est un recordset DAO, tu peux donc utiliser les méthodes Findfirst, Addnew, Delete ...

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 09h58   #3
Invité de passage
 
Femme
Administrateur de base de données
Inscription : avril 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Santé

Informations forums :
Inscription : avril 2011
Messages : 6
Points : 0
Points : 0
J'ai écrit le programme suivant mais celui-ci ne fonctionne pas correctement :

Quand je me positionne sur le patient 1 du formulaire identité et que j'entre dans mon formulaire de navigation sur l'onglet HPT (onglet sur l'horizontale) puis l'onglet diag (onglet sur la verticale), j'arrive à créer le premier patient. Lorsque je reviens sur le formulaire identité, que je crée un patient 2 et que je retourne sur l'onglet HPT - diag, l'identifiant se positionne sur le patient 2 mais récupère les données du patient 1. Lorsque je regarde dans la table HPT - diag, les données du premier patient sont enregistrées sur le patient 2 et la ligne concernant le patient 1 n'existe pas. J'espère avoir été claire en expliquant mon problème. Comment le résoudre ?

Merci pour votre aide.


Code :
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
Private Sub BoutonNavigation7_Click()
 
Dim RD As Recordset
Dim identifiant As String
 
Set RD = CurrentDb.OpenRecordset("HPT_diag")
 
With RD
 
    identifiant = Form_Identite.ID_1
 
    .Index = "PrimaryKey"
    .Seek "=", identifiant
 
    If .NoMatch Then 'enregistrement non trouvé
 
        .AddNew 'on crée un nouvel enregistrement
        Form_HPT_diag.ID_1 = identifiant
 
    Else
 
        .FindFirst "Form_HPT_diag.ID_1='" & identifiant & "'" 'on localise le 1er enreg répondant au critère et en fait l'enreg courant
 
    End If
 
End With
 
End Sub
Cic-ec est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 09h09   #4
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 623
Points : 11 623
Bonjour,

As-tu bien un index nommé "PrimaryKey" sur la table "HPT_diag" ?
Porte-t-il bien sur le champ Identifiant ?

Si ce n'est pas le cas, modifie ou crée cet index ou utilise le Findfirst.

Note que dans ton code tu ouvres un recordset sur la table ou la requete "HPT_diag" et non sur le formulaire.

Pour utiliser le recordset du formulaire c'est ceci qu'il faut utiliser.

Code :
set rst = forms.monform.recordset
Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h48.


 
 
 
 
Partenaires

Hébergement Web