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 26/07/2011, 15h12   #1
Futur Membre du Club
 
François
Inscription : septembre 2009
Messages : 30
Détails du profil
Informations personnelles :
Nom : François

Informations forums :
Inscription : septembre 2009
Messages : 30
Points : 15
Points : 15
Par défaut Recherche d'un enregistrement dans un formulaire

Bonjour à tous,

Je cherche à améliorer la recherche d’un enregistrement dans un formulaire.
J’ai créé à l’aide de l’assistant une liste basée sur la table associée au formulaire, puis, j’ai rattaché cette liste à la table de tous les contrats, si bien que lorsque le programme trouve une correspondance, l’enregistrement s’affiche bien dans le formulaire, mais lorsqu’il n’en trouve pas, le programme affiche le premier enregistrement de la table

J’aimerais que lorsqu’on ne trouve pas de correspondance, le programme affiche un nouvel enregistrement en attente de saisie avec le n° du contrat sélectionné dans la liste en valeur par défaut pour cet enregistrement

Ci-dessous le code qui a été généré


Code :
1
2
3
4
5
6
7
8
9
Private Sub lstContrat_Click()
    Dim rs As Object
 
    Set rs = Me.Recordset.Clone
 
    rs.FindFirst "[NumContrat] = " & Str(Nz(Me![lstContrat], 0))
 
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Je n’arrive pas à trouver comment faire pour tester s’il y a une correspondance ou non

Merci pour votre aide


François
FHDLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 16h30   #2
Membre confirmé
 
Homme
Chercheur
Inscription : juin 2011
Messages : 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Chercheur
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juin 2011
Messages : 150
Points : 231
Points : 231
Bonjour,

Voici une possibilité :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim rs As Object
 
Set rs = Me.Recordset.Clone
 
rs.MoveLast
rs.MoveFirst
 
rs.FindFirst "[NumContrat] = " & Str(Nz(Me![lstContrat], 0))
 
If Not rs.NoMatch Then
Me.Bookmark = rs.Bookmark
Else
DoCmd.GoToRecord , , acNewRec
Me.[NumContrat].SetFocus
End If
Bcdt

PS : pensez à ajouter les balises de code, sinon la sanction ne tardera pas !
fbtsra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 17h03   #3
Futur Membre du Club
 
François
Inscription : septembre 2009
Messages : 30
Détails du profil
Informations personnelles :
Nom : François

Informations forums :
Inscription : septembre 2009
Messages : 30
Points : 15
Points : 15
Par défaut essai

Bonjour

Merci pour votre réponse.
je viens de faire l'essai, mais le programme indique un message d'erreur

erreur d'execution 2499
Impossible d'utiliser l'action AtteindreEnregistrement ou la méthode GotoRecord en mode creation

J'ai essayé en passant par le biais du code du bouton d'ajout d'enregistrement, mais l'erreur est la même.
pourtant le bonton fonctionne correctement

je n'arrive pas à comprendre ce qui cloche

Merci pour votre aide

François
FHDLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 08h12   #4
Futur Membre du Club
 
François
Inscription : septembre 2009
Messages : 30
Détails du profil
Informations personnelles :
Nom : François

Informations forums :
Inscription : septembre 2009
Messages : 30
Points : 15
Points : 15
Par défaut EUREKA

Bonjour

je ne comprend pas pourquoi, mais aujourd'hui, celà fonctionne correctement

encore Merci votre aide

François
FHDLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h44.


 
 
 
 
Partenaires

Hébergement Web