Difficultés avec un code

ngalino Messages postés 65 Date d'inscription samedi 21 avril 2007 Statut Membre Dernière intervention 15 octobre 2009 - 25 juil. 2008 à 20:20
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 - 26 juil. 2008 à 16:33
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

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
26 juil. 2008 à 05:24
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.
0
ngalino Messages postés 65 Date d'inscription samedi 21 avril 2007 Statut Membre Dernière intervention 15 octobre 2009
26 juil. 2008 à 11:34
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.

à ++
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
26 juil. 2008 à 16:33
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.
0
Rejoignez-nous