Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lire la clé primaire dans un formulaire

6 réponses
Avatar
Jean-Georges
Bonjour

J'utilise la fonction ci-dessous pour lire le NomFamille dans un formulaire
ça marche très bien. Maintenant j'aimerai faire la même chose mais lire la
clé primaire de mon formulaire et là ça me marche pas. Comment puis je
faire?

Merci par avance
Jean-Georges




Set Db = CurrentDb

Set RstTable = Db.OpenRecordset("SELECT Prestation FROM [Stagiaires] WHERE
[NomFamille]='" & Replace(Me.NomFamille, "'", "''") & "'", dbOpenSnapshot)



If Not RstTable.EOF Then

Select Case RstTable!Prestation

Case "Bilan de co.....................

6 réponses

Avatar
3stone
Salut,

"Jean-Georges"
| J'utilise la fonction ci-dessous pour lire le NomFamille dans un formulaire
| ça marche très bien. Maintenant j'aimerai faire la même chose mais lire la
| clé primaire de mon formulaire et là ça me marche pas. Comment puis je
| faire?
|
| Set Db = CurrentDb
|
| Set RstTable = Db.OpenRecordset("SELECT Prestation FROM [Stagiaires] WHERE
| [NomFamille]='" & Replace(Me.NomFamille, "'", "''") & "'", dbOpenSnapshot)
|
|
|
| If Not RstTable.EOF Then
|
| Select Case RstTable!Prestation
|
| Case "Bilan de co.....................
|


Non, tu ne lis pas dans le formulaire, mais dans la table !

Il faudrait d'abord savoir ce que tu cherche à faire... et dire pourquoi
tu n'utilise pas simplement une table ou requête source pour alimenter
ce formulaire !


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Jean-Georges
Salut

Je m'explique : Dans mon formulaire j'ai un bouton imprimer qui sur click
exécute la procédure suivante qui à très bien
marché jusqu'au jour ou j'ai eu 2 personnes qui porte le même nom de
famille!!

Mon idée c'est de prendre la réf du client qui est numéro unique et aussi ma
clé primaire mais çà ne marche pas j'ai
"l'erreur d'execution 3464 Type de données incompatible dans l'expression du
critère." c'est peut-être parce réfclient a un format numérique ???
Merci

Set Db = CurrentDb
Set RstTable = Db.OpenRecordset("SELECT Prestation FROM [Stagiaires] WHERE
[NomFamille]='" & Replace(Me.NomFamille, "'", "''") & "'", dbOpenSnapshot)

If Not RstTable.EOF Then
Select Case RstTable!Prestation
Case "Objectif atteint :"
DoCmd.OpenReport "Facture-OA", acViewNormal, "", "", acNormal

Case "Abandon"
DoCmd.OpenReport "Facture", acViewNormal, "", "", acNormal



"3stone" a écrit dans le message de news:

Salut,

"Jean-Georges"
| J'utilise la fonction ci-dessous pour lire le NomFamille dans un
formulaire
| ça marche très bien. Maintenant j'aimerai faire la même chose mais lire
la
| clé primaire de mon formulaire et là ça me marche pas. Comment puis je
| faire?
|
| Set Db = CurrentDb
|
| Set RstTable = Db.OpenRecordset("SELECT Prestation FROM [Stagiaires]
WHERE
| [NomFamille]='" & Replace(Me.NomFamille, "'", "''") & "'",
dbOpenSnapshot)
|
|
|
| If Not RstTable.EOF Then
|
| Select Case RstTable!Prestation
|
| Case "Bilan de co.....................
|


Non, tu ne lis pas dans le formulaire, mais dans la table !

Il faudrait d'abord savoir ce que tu cherche à faire... et dire pourquoi
tu n'utilise pas simplement une table ou requête source pour alimenter
ce formulaire !


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/



Avatar
3stone
Salut,

"Jean-Georges"
| Je m'explique : Dans mon formulaire j'ai un bouton imprimer qui sur click
| exécute la procédure suivante qui à très bien
| marché jusqu'au jour ou j'ai eu 2 personnes qui porte le même nom de
| famille!!


Tu as donc fait une erreur grossière en n'ayant pas une clé primaire
pour chaque enregistrement de ton formulaire...

Un nom (et les champs texte en général) n'est *jamais* un champ
candidat à devenir clé primaire!!

Contourner par d'autre erreur n'est pas la méthode à conseiller.
Ajoute donc une clé primaire à la table de façon à ne posséder que
des enregistrements unique dans le formulaire.
Récupère cette clé par un simple Me.[Nom Clé Primaire] pour ton impression.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Jean-Georges
Merci pour ta réponse mais je ne m'en sort pas !! RéfContact c'est le nom
de la clé primaire de la table stagiaires
J'ai toujours l'erreur d'execution 3464 Type de donnees incompatibles dans
l'expression du critère


Private Sub Essai_Click()
Set Db = CurrentDb
Set RstTable = Db.OpenRecordset("SELECT OA FROM [Stagiaires] WHERE
[RéfContact]= 'Me.[RéfContact]'")
Select Case RstTable!OA
Case "Fin de prestation"
Beep
End Select
End Sub



"3stone" a écrit dans le message de news:

Salut,

"Jean-Georges"
| Je m'explique : Dans mon formulaire j'ai un bouton imprimer qui sur
click
| exécute la procédure suivante qui à très bien
| marché jusqu'au jour ou j'ai eu 2 personnes qui porte le même nom de
| famille!!


Tu as donc fait une erreur grossière en n'ayant pas une clé primaire
pour chaque enregistrement de ton formulaire...

Un nom (et les champs texte en général) n'est *jamais* un champ
candidat à devenir clé primaire!!

Contourner par d'autre erreur n'est pas la méthode à conseiller.
Ajoute donc une clé primaire à la table de façon à ne posséder que
des enregistrements unique dans le formulaire.
Récupère cette clé par un simple Me.[Nom Clé Primaire] pour ton
impression.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/








Avatar
Eric
Bonjour,

Puisque RefContact est numérique, mettre:
Set RstTable = Db.OpenRecordset("SELECT OA FROM [Stagiaires] WHERE
[RéfContact]=" & Me.RéfContact )

Merci pour ta réponse mais je ne m'en sort pas !! RéfContact c'est le nom
de la clé primaire de la table stagiaires
J'ai toujours l'erreur d'execution 3464 Type de donnees incompatibles dans
l'expression du critère


Private Sub Essai_Click()
Set Db = CurrentDb
Set RstTable = Db.OpenRecordset("SELECT OA FROM [Stagiaires] WHERE
[RéfContact]= 'Me.[RéfContact]'")
Select Case RstTable!OA
Case "Fin de prestation"
Beep
End Select
End Sub



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Jean-Georges
Merci beaucoup c'est l'info qui me manquai

Encore merci à tous

Jean-Georges



"Eric" a écrit dans le message de news:

Bonjour,

Puisque RefContact est numérique, mettre:
Set RstTable = Db.OpenRecordset("SELECT OA FROM [Stagiaires] WHERE
[RéfContact]=" & Me.RéfContact )

Merci pour ta réponse mais je ne m'en sort pas !! RéfContact c'est le
nom de la clé primaire de la table stagiaires
J'ai toujours l'erreur d'execution 3464 Type de donnees incompatibles
dans l'expression du critère


Private Sub Essai_Click()
Set Db = CurrentDb
Set RstTable = Db.OpenRecordset("SELECT OA FROM [Stagiaires] WHERE
[RéfContact]= 'Me.[RéfContact]'")
Select Case RstTable!OA
Case "Fin de prestation"
Beep
End Select
End Sub



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr