Tres urgent merci d'avance

Messages postés
42
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
28 octobre 2003
- - Dernière réponse : cs_brico
Messages postés
42
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
28 octobre 2003
- 9 mai 2003 à 21:11
j 'ai créé un petit prog tous simple pour essayer les base de donné ca fonctionne j ai un petit prob peut etre quel q'un sait,
j' utilise juste nom et prenom enregistrer et rechercher par non avec des command click. sur enr c ok mais sur recherche l'incovenient c si je tape un non qui est enregistrer dans la table il s'affiche mais si le non n'existe pas le prog s'eteint

voici je code que j'utilise pour rechercher

Private Sub recherche_Click()
Dim ste As Database
Dim resultat As Recordset

Set ste = OpenDatabase("C:\Documents and Settings\STEPHANE\Bureau\ess\ste.mdb")rec "SELECT * FROM ste WHERE nom '" & rec.Text & "'"
Set resultat = ste.OpenRecordset(rec)

nom.Text = resultat!nom
prenom.Text = resultat!prenom

end sub

assez urgent merci d'avance
Afficher la suite 

4 réponses

Messages postés
48
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
13 décembre 2007
0
Merci
Salut,

Si tu ne gère pas les erreurs VB, alors ton programme s'éteint car il considère que toute erreur est fatale au système...

dans ton cas, ton recordset n'a pas d'enregistrement et, de ce fait, ça plante...

Il faudrait ajouter les boucles :

On error goto...
resume...


Et surtout tester ton recordset avant de remplir des champs textes...


...
Set resultat = ste.OpenRecordset(rec)

if Not Resultat.EOF then
    nom.Text = resultat!nom
    prenom.Text = resultat!prenom
end if



Et puis, pour faire encore mieux, il faut aussi que tu penses qu'il y a plusieurs Martin, Durand, Dupont et autres en france...

Là, tu ne peux gérer que le premier enregistrement correspondant à ta recherche...

++
[ XtOf ]
Messages postés
42
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
28 octobre 2003
0
Merci
merci ca marche > [ XtOf ]
pour on error goto je ne l'ai pas car il me demande un etiquette ou un ligne et la je bloque j ai mis 1 mais ca marche pas alors j ai juste mis:
if Not Resultat.EOF then

et ca marche c indispensable on erro goto?
merci a toi
Messages postés
48
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
13 décembre 2007
0
Merci
VB te demande une étiquette lorsque tu veux intercepter l'erreur et afficher une messagebox par exemple...


Public Sub TestErreur()

On Error Goto GestionErreur

Dim i as integer

' Déclenche une erreur
i= "A"

' Sort de la procédure...
Exit Sub

 GestionErreur: 

MsgBox "Vous ne pouvez pas mettre des caractères Alpha dans une variable Integer !!!"

Resume Next

End Sub



Dans l'exemple ci-dessus, sans la gestion de l'erreur, le programme aurait planté...

Mais si tu ne veux pas afficher de message d'erreur ... tu peux écrire ceci :

Public Sub TestErreur()

On Error Resume Next

Dim i as integer

' Déclenche une erreur
i ="A"

End Sub


Dans l'exemple ci-dessus VB a rencontré une erreur mais à considéré que cette erreur était pas si grave parce qu'on lui demande de ne pas en ternir compte...

Et, dans ce cas, le programme continuera jusqu'à la prochaine erreur (s'il y en a!).

Pour tester s'il y a une erreur :

Public Sub TestErreur

On Error Resume Next

Dim i as integer

' Déclenche une erreur
i= "A"

if  Err.Number  <> 0 then
                 ' Il y a une erreur !!!
                 MsgBox Err.Description
                 Exit Sub
end if

End Sub


La variable Err.number prendra alors une valeur >0 et la variable Err.description comprendra la nature de l'erreur.

Voilà..

++

[ XtOf ]
Messages postés
42
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
28 octobre 2003
0
Merci
c'est exelent ca marche super sympa a toi pour tout ces conseils precieux je te dis encore merci