Besoin d'aide !!

cs_abou ilyas Messages postés 33 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 17 avril 2014 - 7 mai 2010 à 00:13
cs_abou ilyas Messages postés 33 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 17 avril 2014 - 7 mai 2010 à 11:19
salut,
j'ai fait ce code pour éviter de sauter un nombre dans une suite.
il s'agit d'enregistrer des numéros de chèques successifs, qui se composent des lettres et de chiffres.Exp: AZE145623
sur mon form, j'ai mis deux zones de texte, une pour les lettres que j'ai appelé "serie", et l'autre pour les chiffres que j'ai appelé "numero".
dans ma table Access il y a deux champs un "serie" et l'autre " numero", cette table est liée au form via ADO.
Supposant que la table contient déjà le numéro de chèque: AZE145623, si je saisie le numéro chèque: AZE145625, je veux avoir un message m'avertissant que j'ai oublié un numéro.( AZE145624).
j'espère être assez claire.
j'ai tenté ce code:
MaConnection 'Procédure mentionnée dans le Module pour établir la connection à la base de données
SQL = " Select * From MA_TABLE where serie='" & serie.Text & "' And numero = " & Val(numero - 1) & ""
If rs.State adStateOpen Then rs.Close ' rs la table
rs.Open SQL, DB, 1, 2
If rs.EOF Then
MsgBox "Vous avez oublié de saisir un numéro !!"
Else
etat_paiement.SetFocus
Exit Sub
End If

Merci.

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 mai 2010 à 00:44
Salut
Honnêtement, je pense que c'est un mauvaise idée d'imposer ce genre de "suite obligatoire", ça casse le rythme de travail pour simplement te soulager de vérifier que chaque chèque a été saisi. C'est une vérification que tu peux faire après coup et il sera grand temps de t'inquiéter.
Dans les logiciels de compta modernes, il y a une notion de brouillard qui permet de saisir des données un peu n'importe comment, incomplètement, et qu'on viendra compléter ultérieurement, calmement une fois qu'on aura tous les éléments.

Bref, revenons à nos moutons.
Vérifier que le couple serie-numéro est bien le suivant, pose problème :
Pour savoir sil y a un trou, il faut savoir quel est le dernier numéro saisi.
Si tu n'avais eu que des numéros, tu aurais pu faire une requète pour récupérer le Max de ta colonne numéro et ainsi savoir quel est le numéro de chèque à suivre.
Alors, si tu décides que les lettres doivent être les mêmes que la précédente saisie, tu peux faire comme ça. Sinon, il faudra aussi trouver quel sont les lettres qui suivrent AZE : AZF ? Rien n'est moins sûr ...

"Select Max(numero) From maTable Where serie = '" & serie.Text & "'"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_abou ilyas Messages postés 33 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 17 avril 2014
7 mai 2010 à 11:19
Merci Jack
ça a bien marché
j'ai codé comme suit:
sql = " Select max([numero])as maxi From Matable where serie='" & serie.Text & "' "
If rs.State = adStateOpen Then rs.Close
rs.Open sql, DB, 1, 2
If numero >= rs!maxi + 2 Then
GoTo hh:
Else
etat_pay.SetFocus
Exit Sub
End If
hh:
MsgBox "Vous avez oublié de saisir un numéro !!"

Merci encore!
0
Rejoignez-nous