Incrémentation

spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013 - 29 sept. 2008 à 16:26
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013 - 30 sept. 2008 à 14:51
Bonjour,

j'aimerai que vous m'aidiez sur un code. J'ai un numéro de demande qui a le format suivant "2008/09/29/001" et j'aimerai qu'il soit automatique, c'est-à-dire qu'il doit s'incrémenter automatiquement quand j'appuie sur le bouton "Nouveau". Si aujourd'hui je réalise 3 enregistrement alors ça devient "2008/09/29/001", "2008/09/29/002", "2008/09/29/003". Le jour suivant le compteur doit reprendre à zéro, comme ça la première demande de la journée doit être "2008/09/30/001".
J'ai réalisé ce code mais il est incomplet. Je suis tellement bloqué, aidez moi SVP.

Set conn = New Connection
With conn
    .Provider = "Microsoft.Jet.oledb.4.0"
    .Open "data source=" & App.Path & "\BASE\BASE.mdb"
End With
Set MyReader = New Recordset
With MyReader
    .ActiveConnection = conn
    .Open "SELECT Demandes.N_demande FROM Demandes", , adOpenDynamic, adLockPessimistic
End With
Do Until MyReader.RecordCount
    ndemande.Caption = Year(Date) & "/" & Month(Date) & "/" & Day(Date) & "/" & MyReader.RecordCount
    ndemande = MyReader.RecordCount + 1
Loop

Merci

10 réponses

Clad74 Messages postés 44 Date d'inscription mercredi 18 avril 2012 Statut Membre Dernière intervention 5 avril 2013
30 sept. 2008 à 07:08
Je ne connais pas trop les OLDB mais tu ne devrais pas plutôt mettre

MyReader.RecordCount = MyReader.RecordCount + 1

au lieu de:

ndemande = MyReader.RecordCount + 1
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 sept. 2008 à 08:19
Salut,

Si MyReader.RecordCount doit contenir le nombre de demande pour la journée en cour, dans ta requete de SELECT, ne devrais tu pas faire intervenir la DATE? Et oui pour éviter de comptabiliser les demande passées. A moins que la table demandes soit effacées chaque jour.

Ensuite pour ce qui est d'utiliser le résultat de cette requête je ferais plutot comme ceci.

Set conn = New Connection
With conn
   .Provider = "Microsoft.Jet.oledb.4.0"
   .Open "data source=" & App.Path & "\BASE\BASE.mdb"
End With
Set MyReader = New Recordset
With MyReader
   .ActiveConnection = conn
   Call .Open("SELECT Demandes.N_demande FROM Demandes", , adOpenDynamic, adLockPessimistic)
   ndemande.Caption = Format$(Date, "YYYY/MM/DD") & "/" & .RecordCount + 1
End With , ----
[../code.aspx?ID=41455 By Renfield]

@+: Ju£i€n
Pensez: Réponse acceptée
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
30 sept. 2008 à 13:11
Parfait mais il y a un problème, c'est que je n'utilise plus une base de donnée ACCESS mais SQL SERVER, donc tout ce qui est en rouge sont des erreurs :

conn = New SqlConnection("Persist Security Info=False;Integrated Security=SSPI;database=BASE;server=EITIACONSULTING")
conn.Open()
s = "SELECT Demandes.N_demande FROM Demandes"
Dim cnn As New SqlCommand(s, conn)
Dim MyReader As SqlDataReader = cnn.ExecuteReader()
While MyReader.Read
     ndemande.Text = Format$(Date, "YYYY/MM/DD") & "/" & MyReader.RecordAffected + 1
End While
MyReader = Nothing
conn = Nothing

Donc j'ai fais :
ndemande.Text = Format$(Of Date, "YYYY/MM/DD") & "/" & MyReader.RecordAffected + 1

Mais je ne sais pas quoi faire pour "YYYY/MM/DD" et je ne sais pas si .RecordAffected est juste où bien la remplacer par .FieldCount (mais cela c'est pour compter le nombre des colonnes dans une ligne).
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
30 sept. 2008 à 13:19
Ok voici un corrigé :

ndemande.Text = Format(Now, "yyyy/MM/dd") & "/" & MyReader.FieldCount + 1

Mais je reçois toujours un mauvais résultat :

2008/09/30/2

alors que je n'ai aucun enregistrement sur ma table et je dois recevoir cela :

2008/09/30/1
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 sept. 2008 à 13:38
Salut,
OU la en 3 posts tu utilises 3 propriétés différentes...

.RecordCount puis RecordAffectedet enfin FieldCount

Comment tu veux que cela fonctionne après....
Je te conseille donc de regarder l'aide en ligne pour essayer de comprendre TOUTES ces propriétés...
@+: Ju£i€n
Pensez: Réponse acceptée
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
30 sept. 2008 à 13:50
J'ai regardé l'aide en ligne et j'avais bien précisé que ces propriétés ne sont pas ceux que je veux (je test c tout, juste pour me familiariser avec ces propriétés).
Mon problème c'est de trouver la propriété équivalente à RecordCount, car cette dernière je ne la trouve pas dans la liste.

Merci.
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 sept. 2008 à 14:12
Salut,
Oups je n'avais pas vu.

Et quand je vois ceci: Dim MyReader As SqlDataReader

je te pose la question: Es tu sur d'utiliser VB6 et on VB.NET?????

@+: Ju£i€n
Pensez: Réponse acceptée
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
30 sept. 2008 à 14:22
J'utilise bien VB.net sinon à quoi sert d'être là !!!
Je veux une solution à mon problème c'est tout.
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 sept. 2008 à 14:39
Re,
Alors déjà tu évites de le prendre comme cela merci et évites de monter sur tes grands chevaux alors que ce n'est que toi
qui n'es même pas capable de savoir avec quoi tu travailles et de
l'exposer clairement.

"J'utilise bien VB.net sinon à quoi sert d'être là !!!"
Quand tu poses ta question ICI: Thèmes /[forum-VISUAL-BASIC_1.aspx Visual Basic 6]
/ [theme-DIVERS_220.aspx Divers] / [theme-DEBUTANTS_226.aspx Débutants] / Incrémentation Alors qu'elle devrait si tu avais poser CORRECTEMENT
ta question ICI: Thèmes

/ [forum-VB-NET-VB-2005_40.aspx VB.NET et VB 2005]
/ [theme-DIVERS_221.aspx Divers] / [theme-DEBUTANTS_227.aspx Débutants]

A quoi crois tu t'attendre quant aux réponses données? qu'elles devinent seules que tu es en .NET et non en VB6??????,

[../reglement.aspx Le règlement de CodeS-SourceS], précise bien pourtant que :
<li>
On pense à donner le bout de code qui pose problème et à préciser le langage utilisé.
C# n'est pas C++, VBA n'est pas VB6, etc... vérifiez le thème où vous postez.
</li>Alors vraiment ton dernier message est inutile et irrespectueux.....

Pour en revenir à ton problème.
Un petit peu de google. Dis moi si tu en retire quelques chose d'utile

http://www.velocityreviews.com/forums/t115979-record-count-in-sqldatareader.html

@+: Ju£i€n
Pensez: Réponse acceptée
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
30 sept. 2008 à 14:51
Merci pour ta leçon sur le thème du respect, mais crois moi je ne penser à aucun mal en disant  "J'utilise bien VB.net sinon à quoi sert d'être là !!!" et mon dernier message a été très respectueux. Je sais qu'au début je me suis tromper en donnant un code pour VB6 alors j'ai posté un autre en précisant qu'il s'agit de VB.NET.

Merci pour ton soutien et ne te fâche pas pour rien car je suis responsable de ce que je dis et non pas de ce que tu pense.

0
Rejoignez-nous