Rs.AddNew et première ligne vide

Résolu
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 - 11 déc. 2008 à 15:20
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 - 12 déc. 2008 à 11:33
Hello,

Je veux ajouter des lignes dans un recordset, ca se passe bien, sauf que j'ai la première ligne vide

rsCombi.Open "SELECT * FROM Combinaisons ;", cnxCombi, adOpenDynamic, adLockOptimistic
'ceci ne sert à rien: rsCombi.MoveLast:rsCombi.MoveFirst
'quand pas de rs.AddNew, la première ligne est remplie mais est effacée à chaque nouvelle entrée
rsCombi.AddNew
'on remplit la BD avec les paramètres
rsCombi(0) = cbxNameCombi.Text
rsCombi(1) = cbxValCombi.Text
                                                                                                                                
For i = 0 To 8
    If txtM(i).Text <> "" Then
        rsCombi(i + 4) = txtM(i).Text
    Else: rsCombi(i + 4) = " "
    End If
Next i
rsCombi.Update
rsCombi.Close
Set rsCombi = Nothing

Merci à vous

6 réponses

cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
12 déc. 2008 à 11:33
Hello

En fait, je pense ne pas bien avoir expliqué le problème: chaque nouvelle ligne est entrée après chaque nouveau clic, ce qui veut dire que la première ligne est une création d'un recordset (nClick=1), et les suivantes sont des modifications (nClick >1).
En clair, il ne faut pas de rs.AddNew pour la première ligne (contrairement à la doc microsoft), mais par contre, il en faut pour les suivants. Donc un truc du genre marche très bien..

If nClick > 1 Then
   rsCombi.MoveLast
   rsCombi.AddNew
End If
3
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
11 déc. 2008 à 18:49
bonsoir
mets ton " rsCombi.AddNew " à la fin du remplissage de ligne  au lieu de le mettre au début !

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
11 déc. 2008 à 19:08
Bonjour

Pour moi le code est correct et le AddNew est bien placé.

lacomm, est-ce que la ligne vide provient du SELECT ou du AddNew ?


A mon avis elle existe déjà dans la table et ton code n'est pas en cause.


Amicalement
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 déc. 2008 à 21:21
salut,

y'a t'il un ON ERROR avant le code indiqué?
quelle est ta chaine de connexion à la base?
y a t'il des champs attachés à un autre RS ouvert? (datasource)
est-ce de l'ado ou du dao?
base "access"?
ta vue contient bien au moins 12 champs?
quelle version du mdac utilies-tu?

que donne le même code avec juste cette connexion ? :
rsCombi.Open "Combinaisons", cnxCombi

(beaucoup de questions hein )
<hr size="2" width="100%" />Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0

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

Posez votre question
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
12 déc. 2008 à 09:13
Bonjour et merci à tous pour vos réponses

mets ton " rsCombi.AddNew " à la fin du remplissage de ligne  au lieu de le mettre au début !

En effet, la première ligne est remplie (comme quand je ne mets pas de rs.AddNew) mais j'ai ensuite un message d'erreur: le champ Combinaisons.1 ne peut contenir la valeur Null car la valeur de la propriété Required pour ce champ est True. Saisissez une valeur dans ce champ, alors que ce champ n'est pas vide

est-ce que la ligne vide provient du SELECT ou du AddNew ?

Du rs.AddNew car la première ligne est bien remplie lorsqu'il n'y a pas de AddNew

y'a t'il un ON ERROR avant le code indiqué?
non

quelle est ta chaine de connexion à la base?
Elle vient d'une boîte de dialogue

y a t'il des champs attachés à un autre RS ouvert? (datasource)
non pas de recordset, mais bien une base ouverte pour lister des champs

est-ce de l'ado ou du dao?
ADO

base "access"?
ACCESS

ta vue contient bien au moins 12 champs?
oui

quelle version du mdac utilies-tu?
mdac 2.71

que donne le même code avec juste cette connexion ? :
rsCombi.Open "Combinaisons", cnxCombi
Ca donne une première ligne, une deuxième ligne remplie de ce que j'attends mais ca empêche l'update d'une ligne supplémentaire  et donne le message suivant: le jeu d'enregistrements suivant ne prend pas en charge la mise à jour. Le type de curseur et le mode de verrouillage sont renseignés comme dans ce code dans la doc.

Encore merci à tous
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
12 déc. 2008 à 09:18
Erratum:
Que donne le même code avec juste cette connexion ? :
rsCombi.Open "Combinaisons", cnxCombi
Ca donne une première ligne vide, une deuxième ligne remplie de ce que j'attends mais ca emp
0
Rejoignez-nous