Difficultés avec un code

Signaler
Messages postés
65
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
15 octobre 2009
-
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
-
bonsoir,
j'ai un formulaire auquel j'associe un ensemble de contrôles. En effet, il ya deux Textbox: textbox1 qui affiche le numero de ligne et textbox2 le numero de folio (un folio est un ensemble de ligne; 99 par exemple). Ainsi, j'ai besoin que ses numeros s'affichent automatiquement à l'ouverture du formulaire et à chaque fois qu'un enregistrement est ajouté dans la table.
Voici les fonctions porposées à cet effet:

Private Function AjouterLigne() As Integer
Dim rst As New ADODB.Recordset
Dim nl As Integer
rst.Open "ecriture", connectionStringBDD, , , adCmdTable
If rst.BOF And rst.EOF Then
   AjouterLigne = 1
End If
If Not rst.EOF Then
    rst.MoveLast
    If rst!Ligne < 99 Then
        nl = nl + 1
    End If
    If rst!Ligne = 99 Then
        nl = 1
    End If
    AjouterLigne = nl
End If
rst.Close
End Function

Private Function AjouterFolio() As Integer
Dim rst As New ADODB.Recordset
Dim nf As Integer
rst.Open "ecriture", connectionStringBDD, , , adCmdTable
If rst.BOF And rst.EOF Then
   AjouterFolio = 1
End If
If Not rst.EOF Then
    rst.MoveLast
    If rst!Ligne < 99 Then
       nf = nf
    End If
    If rst!Ligne = 99 Then
        nf = nf + 1
    End If
    AjouterFolio = nf
End If
rst.Close
End Function

Private sub Form_Load()
txtLigne.Text=AjouterLigne
txtFolio.Text=AjouterFolio
End Sub

merci de l'observer et me faire parvenir vos suggestions svp.

3 réponses

Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Salut,
Question:Pourquoi deux function pour un même résultat ?
En effet tu testes sur rst!Ligne dans les deux cas avec les mêmes conditions.

En tout cas voici une function abrégée pour l' ajout d' une ligne.
Messages postés
65
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
15 octobre 2009

merci pour ta participation. cependant je pense qu'une erreur s'est glissée quelque part, parce que à mon avis rst.close et set rst= nothing ne doivent pas être là. en effet, quand on fait rst.open , c'est rst.close qu'on emploie et quand c'est set rst =cmd.execute par exemple, là alors on utilise set rst=nothing.

à ++
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Si tu le dis !
Toutefois, l' erreur est dans ta logique. et nulle part ailleur.
 If rst!Ligne < 99 Then
       nf = nf
 End If
par exemple .

Révises ton code.
Et merci pour l' effort.

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.