begin process at 2008 05 16 08:53:56
1 173 235 membres
76 nouveaux aujourd'hui
13 970 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : vb + access + ado [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (Sadnotrue)

vb + access + ado le 31/05/2004 17:50:48

Sadnotrue
Bonjour à celle ou ceux qui liront ce post !!

Voilà je cherche à récupéré des infos d'une base de donnée accès sous vb. Ma connexion fonctionne mes requêtes passent, cependant il me reste un soucis important !!

Lorsque je passe dans ma table pour retrouver un info qui n'y est pas j'ai le droit à ce message !!

BOF ou EOF est égal à true ou l'enregistrement actuel a été supprimer.L'opération demandée nécessite un enregistrement actuel. (Ca c évident je fais un test pour être sur qu'au cas ou un utilsateur saisisse un truc qui n'existe pas, que ça lui renvois un msg.

sql = "SELECT HFR, NOM, Adresse, Adresse1, CP, Ville FROM clients where HFR = " & CMB_Numcli.Text & ";"

table.Open sql, db

If table.Fields("HFR") = CMB_Numcli.Text Then <- blocage

SB1.SimpleText = "La personne recherché a été trouvée"
MsgBox "La personne recherché a été trouvé", vbOKOnly
CMB_Nomcli.Text = table.Fields("NOM")
TXT_Ad.Text = table.Fields("ADRESSE")
If IsNull(table.Fields("ADRESSE1")) Then
TXT_Ad2.Text = ""
Else
TXT_Ad2.Text = table.Fields("ADRESSE1")
End If
TXT_CP.Text = table.Fields("CP")
TXT_Ville.Text = table.Fields("Ville")
Else
SB1.SimpleText = "La personne recherché n'existe pas"
MsgBox "La personne recherché n'existe pas", vbOKOnly
Exit Sub
End If

Mais quand je cherche qq1 qui existe ça passe normalement.

Merci d'avance à ceux qui liront ce post

Sadnotrue

Re : vb + access + ado le 31/05/2004 17:51:30
Re : vb + access + ado le 31/05/2004 17:52:12

Sadnotrue
au cas ou certains poserais la question les connexions sont faite :

Dim sql As String
Dim sql2 As String
Dim sql3 As String
Dim sql4 As String
Dim sql5 As String
Dim sql6 As String
Dim rtat As Boolean

Dim db As adodb.Connection
Dim table As adodb.Recordset
Dim table2 As adodb.Recordset
Dim table3 As adodb.Recordset

Set db = New adodb.Connection
Set table = New adodb.Recordset
Set table2 = New adodb.Recordset
Set table3 = New adodb.Recordset

Re : vb + access + ado le 01/06/2004 00:56:19

pluplu
C'est inévitable lorsque ton recordset est parcouru jusqu'à EOF et qu'il ne trouve aucunne occurence, il te renvoie une erreur, la meilleure façon de détourner le probl. est de gérer l'erreur de cette façon:

avant ta commande SQL
on error goto monerreur

ici le code qui vas remplir ton recordset
ensuite à la fin de ton code ne pas oublier

Exit Sub


monerreur:
resume next

De cette façon tu détourne l'erreur et aucun message n'apparait.

Pascal Laurençon
Mieux vaut un petit clic que deux grandes claques..
Mieux vaut un naze bin qu'un naze tout court..

Re : vb + access + ado le 01/06/2004 13:18:01

Sadnotrue
oki j'ai testé mais j'ai jamais compris la gestion des erreurs. Pourquoi quand ça fonctionne, c'est à dire qu'aucune erreur n'a été trouvé, il passe qd même de la zone erreur ?

EX :

Private Sub CMD_Recherche_Click()

On Error GoTo myerror
[...]

If table.Fields("HFR") = CMB_Numcli.Text Then <- erreur
SB1.SimpleText = "La personne recherché a été trouvée"
MsgBox "La personne recherché a été trouvé", vbOKOnly
CMB_Nomcli.Text = table.Fields("NOM")
TXT_Ad.Text = table.Fields("ADRESSE")
[...]


myerror:
SB1.SimpleText = "La personne recherché n'existe pas"
MsgBox "La personne recherché n'existe pas", vbOKOnly
CMB_Numcli.SetFocus
CMD_Clear.Value = True
Exit Sub

en gros qu'il y est une erreur ou pas il passe par my error à la fin pourquoi ?

Merci encore de ton aide !

Re : vb + access + ado le 01/06/2004 15:06:05

pluplu
En fait c'est trais simple:
l'instruction goto nous vient de la prehistoire du basic à cette epoque on l'utilisait comme branchement à une sub-routine ex.
If tralala goto 10 (on numérotais encore les lignes à cette époque). Maintenant on ne voit plus que rarement cette commande entre autre dans le cas des gestions d'erreur.
Ton problème de passer par ta gestion d'erreur même si il n'y en a pas vient du fait que ta commande exit sub est mal placée, elle doit être juste au dessus de ton branchement.

Exit sub

myerror:
SB1.SimpleText = "La personne recherché n'existe pas"
MsgBox "La personne recherché n'existe pas", vbOKOnly
CMB_Numcli.SetFocus
.............
.............
End Sub



Pascal Laurençon
Mieux vaut un petit clic que deux grandes claques..
Mieux vaut un naze bin qu'un naze tout court..

Re : vb + access + ado le 01/06/2004 20:14:34

Sadnotrue
Oki c bon ça fonctionne, merci beaucoup pour tes explications, mais pourrais tu m'expliquer pourquoi le fait d'avoir exit sub en dehors de l'erreur ça passe ?

Et merci encore !!!


Re : vb + access + ado le 02/06/2004 10:50:36

pluplu
Ben voilà ton code s'execute jusqu'a ce qu'il rencontre une erreur dès lors il est conditionné par l'instruction If error goto myerror et il saute directement depuis la ligne ou se produit l'erreur à la ligne de branchement myerror: sans passer par l'instruction exit sub par contre si il n'y a pas d'erreur le code effectue toutes les instructions jusqu'a la command exit sub qui fait que les instructions sous myerror: sont ignorées.

Pascal Laurençon
Mieux vaut un petit clic que deux grandes claques..
Mieux vaut un naze bin qu'un naze tout court..

Re : vb + access + ado le 02/06/2004 20:54:42

Sadnotrue

oki je te remercie de ton aide et pour tes explications qui ont été très clair. Merci encore tu me sauves

Partager ce qu'on sait c'est laisser une trace de notre passage...
Sadnotrue


Classé sous : text, table, fields, txt, existe

Participer à cet échange

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS