Rechercher : dans
Par :

Remplir champs automatique sous access

Dernière réponse le 25 jui 2008 à 15:20:18 zehor, le 24 jui 2008 à 10:29:20 
 Signaler ce message aux modérateurs

Bonjour,
actuellement en stage de fin d'année, je souhaites resoudre un probleme qui me taquine sous access depuis quelques jours.

en effet j'ai une base de données dans cette base de données il y a une seulement qu'une seule table nommée patient. dans cette table il y a 6 champs : IPP(numero),Nom,Prenom,Naissance,Sexe et Nomjeunefile.

Je souhaites que quant je remplir le champs Nom et Prenom cela me remplis automatiquement les autres champs.

Merci de votre aide

Zehor

Configuration: Windows XP
Internet Explorer 6.0

1

winman, le 24 jui 2008 à 10:40:19

Salut

Tu fais un code VB qui sélectionne l'enregistrement précis et aprés tu affecte le résultat à ton formulaire

Set db=Currentdb

sql=SELECT * FROM PAtient where Nom="& Forms!form1!Nom & "AND Prenom="& Forms!forms1!Prenom
set rs=db.Openrecordset(sql)
rs.Movefirst
While Not rs.EOF
IPP =rs!ipp
Naissance=rs!naissance
Sexe=rs!sexe
Nomjf=rs!nom_jeune_fille
rs.MoveNext
Wend
forms!form1!ipp=IPP
forms!form1!Naissance=Naissance
forms!form1!sexe=Sexe
forms!forms1!Nomjf=Nomjf



Je pense que avec ça tu devrai te débrouiller

Répondre à winman

2

zehor, le 24 jui 2008 à 11:35:42

Di moi winman dans le ode que tu ma fournis il ny a pas les declaration de variable.


svp

Répondre à zehor

4

zehor, le 24 jui 2008 à 14:31:43

Voila le message qu'il me dit:

Erreur d’execution ‘2450’
Impossible de trouverle formulaire auquel il est fait reference dans une expression de macro ou un code Visual Basic

j'ai creer un bouton de commande je lui est affecté le code est il m'informe qu'il ne connait pas "FORM"

l'erreur ce trouve a cette ligne (sql = "SELECT * FROM PAtient where Nom=" & Forms!form1!Nom & "AND Prenom=" & Forms!forms1!Prenom)

Répondre à zehor

9

zehor, le 24 jui 2008 à 16:44:06

Franchement merci pour ton soutien winman mais g toujours l'erreur.

je cherche un peu sur le net mais tu pense resoudre le probleme.
y a un bloquage ici "Set rs = db.OpenRecordset(sql)"

Répondre à zehor

11

zehor, le 25 jui 2008 à 09:46:08

Salut WINMAN,

donc ta facon est passé sa alors c t un probleme de char donc g bien appliqué ta solution. par contre g un probleme avec le rs!firstmove est ce que tu pourré men dire un peu plus stp

Répondre à zehor

17

zehor, le 25 jui 2008 à 10:31:50

WINMAN comment te remercier.

je peut tenvoyer ma base mais je nai pas ton adresse.

merci cordialement

Répondre à zehor

18

winman, le 25 jui 2008 à 10:35:26

Essaie ce que je viens de te dire avant

Répondre à winman

19

zehor, le 25 jui 2008 à 10:35:41

WINMAN j'ai bien testé ce que tu ma conseillé concernant la requete en mode sql elle me retourne null sur tous les champs.
je peux tenvoé ma base stv.

Répondre à zehor

20

winman, le 25 jui 2008 à 10:37:21

Ok envoi moi ton adresse

Répondre à winman

21

zehor, le 25 jui 2008 à 11:04:42

As tu recu mon adresse .

merci cordialement

Répondre à zehor

24

zehor, le 25 jui 2008 à 14:53:08

IPP numerique(zone de texte)
Nom texte de 128(liste deroulante
Prenom texte de 128(liste deroulante)
Naissance date/heure(zone de texte)
Sexe texte de 1(m ou f)(zone de texte)
Nomjeunefille texte de 128 (zone de texte)

jpenser que tavais disparu ne me laisse pas tomber sur un probleme que je n'assimile pas.

merci cordialement

Répondre à zehor

26

 zehor, le 25 jui 2008 à 15:20:18

Le fait de tout mettre en zone de texte ne marrange g essaye sans succes.

bon ba grave WINMAN je vais faire le necessaire.

le probleme vient surment de la requete.

si seulement javer une solution je serai le plus eureu

Répondre à zehor

3

winman, le 24 jui 2008 à 12:03:15

Private sub comande5_clik()

Dim db As Database
Dim rs As Recordset
Dim sql As String
Dim IPP as string
Dim naissance as string
Dim Sexe as string
Dim Nomjf as string

Code ici

End Sub

je connais pas le format de tes champ alors j'ai considére que c'était du texte

Répondre à winman

5

zehor, le 24 jui 2008 à 15:32:58

Tu peu maider winman.

je t envoyé le probleme

Répondre à zehor

7

theMan, le 24 jui 2008 à 16:21:14

C'est résolu ton problème ou pas ? a lala zhor

Répondre à theMan

8

zehor, le 24 jui 2008 à 16:41:18

Ok merci winman pour ta reponse concernant "form!nomformulaire!nomzone"

y a une autre erreur dans le code que voici :

Set rs = db.OpenRecordset(sql)

Répondre à zehor

12

zehor, le 25 jui 2008 à 09:51:37

Il m'informe qu'il ny a pas d'enregistrement en cours.

quant j'enleve rs.movefirst il me remplit uniquement le champs IPP est le champs naissance. deplus les valeurs sont a null.

STP une solution

Répondre à zehor

6

winman, le 24 jui 2008 à 16:12:11

Il faut que tu adapte le code avec le nom de tes formulaires et des zone de texte

Forms!Nomdeformulaire!nomzone

exemple, si ton formulaire s'appelle form_principal et que la zone texte pour insérer la nom s'appelle Texte12 tu aura

Forms!form_principal!texte12

Pour savoir les noms du fai clique droit sur la zone de texte, propriété, dans l'onglet toutes et tu vois le nom de la zone

Répondre à winman

10

winman, le 24 jui 2008 à 17:01:26

Ce'st pas avec le recordset le probléme, c'est la requete qui ne passe pas, vérifie que les noms des champs soit bien Nom et Prénom ensuite essaie avec ça si ce sont des chaine de caractére

sql=SELECT * FROM PAtient where Nom="& chr(34) & Forms!form1!Nom &chr(34) & "AND Prenom="& chr(34) & Forms!forms1!Prenom & chr(34)

Si ça marche pas essaie en passant par des variables

N=Forms!form1!Nom
P=Forms!forms1!Prenom
sql=SELECT * FROM PAtient where Nom="& chr(34) & N &chr(34) & "AND Prenom="& chr(34) & P & chr(34)

Répondre à winman

13

winman, le 25 jui 2008 à 10:10:26

Verifie que ce spit des zones de textes, clique gauche, remplacer pr, zone de texte

Répondre à winman

14

zehor, le 25 jui 2008 à 10:19:22

Merci WINMAN pour efficacité.

Cependant je n'ai pas compris la procedure a faire.

Répondre à zehor

15

winman, le 25 jui 2008 à 10:25:43

Je reprends, tu vas dans ton formulaire en mode creation, tu clique gauche sur une de tes listes (rectangle blanc qui sera completer une fois la programme executer) et tu fais Remplacer par/Zone de texte.
ça doit être à cause de ça qu'il n'y a rien d'écrit.
Por le MoveFirst, il te sert à positionner le pointeur sur le premier enregistrement de la requete tu peux ainsi parcourir tout la requete avec une boucle while.
Si ti ny arrive toujours pas envoi moi ta base

Répondre à winman

16

winman, le 25 jui 2008 à 10:31:36

Je pense que l'erreur Movefirst vient da la requete sql, essaie de la tester avec des nom qui existe, tu copie celle du code, tu va dans requete, nouveau, tu passe en mode sql, puis tu colle, enleve les guillemet et les char, et remplace les Form!forms1!champ1 par des noms et prenom qui existe dans la table, tu execute et tu regarde s'il trouve un résultat. Si c'est vide l'erreur vient de la

Répondre à winman

22

zehor, le 25 jui 2008 à 11:34:59

Winman je nai plus de reponse de toi y a til un probleme.

alalalala j'espere que tu ne ma pas ounlié car sa serai dommage

Répondre à zehor

23

winman, le 25 jui 2008 à 14:47:28

Envoie moi la structure exacte de ta base (champ format)

Répondre à winman

25

winman, le 25 jui 2008 à 14:59:53

Met tout en zone de texte si ça marche pas aprés ça je sais plus quoi faire

Répondre à winman