Ajouter un enregistrement dans une table

minawghodhbane Messages postés 7 Date d'inscription samedi 26 juin 2010 Statut Membre Dernière intervention 23 décembre 2010 - 8 juil. 2010 à 10:37
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 - 9 juil. 2010 à 17:43
bjr a tous
j'utilise le logiciel visuel studio 6.0
g utilisé l'assistant feuilles de donnés et une connection odbc pour créer une form qui me permet de saisir des produits dans ma table access
la table produit est reliée a d'autre tables comme fournisseur, catégorie....
je suis arrivé a créer des combobox et de permettre a l'utilisateur de selectionner le nom de la catégorie par exple et le n° qui lui correspond est affecté automatiquement dans le champ clé etrangère [code categorie]
le pblm que g rencontré c que quand je fais appel au bouton ajouter il me crée l'enregistrement non pas a la fin mais au debut de ma table et a chaque fois que j'essaye de créer un nveau pdt
il ne change pas de position il ecrase le contenu du meme enregistrement.
et quand j'intervient pour affecter au champ [n° produit] le n° d'un nvel enregistrement g le msge d'erreur suivant "field not updatable,bound property name:text,field name:n° produit"
ce que g fait exactement est de créer un bouton nouveau et dans le corp de la proc click g mis :


datprimaryRS.Recordset.MoveLast
txtFields(0).Text = datPrimaryRS.Recordset![n° produit] + 1

est ce que quelqu'un peut m'aider svp

mouna

6 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
8 juil. 2010 à 10:50
Salut
A l'avenir, merci de <ne pas utiliser de langage SMS>.

Ton champ "n° produit", comment (de quel type) est-il déclaré dans ta table ?
Quelque part, fais-tu un AddNew dans ton RecordSet ?

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_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 juil. 2010 à 10:52
L'ordre de stockage des données dans une table n'a aucune importance.
Tout dépend la méthode que tu utilises pour lire les données.
Si tu veux classer les enregistrements lors de la lecture, complète ta requète SQL avec des mots clés comme "Order By monChamp"
0
minawghodhbane Messages postés 7 Date d'inscription samedi 26 juin 2010 Statut Membre Dernière intervention 23 décembre 2010
8 juil. 2010 à 11:26
salut et merci de m'avoir répondu

le champ n° produit est de type n°automatique dans ma base de donné
a l'exécution de la form tu as 2 boutons superposés cmdNouveau et cmdValider le bouton nouveau est visible au depart quand tu cliques dessus voici le code que tu actives :

Private Sub cmdNouveau_Click()

cdmNouveau.Visible = True
cmdValider.Visible = False
datprimaryRS.Recordset.MoveLast
txtFields(0).Text = datPrimaryRS.Recordset![n° produit] + 1

End Sub

et la j'ai le message "field not updatable,bound property name:text,field name:n° produit"

normalement si ct fonctionnel tu remplies les champs
ensuite tu cliques sur le bouton cmdValider en voici le code :

Private Sub cmdValider_Click()

datPrimaryRS.Recordset.AddNew
MsgBox ("Enregistrement effectué avec succès")
datPrimaryRS.Recordset.MoveNext
End Sub
0
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
8 juil. 2010 à 17:02
Si le champ est de type NumAuto, tu ne dois pas t'en occuper : Access décidera lui-même du chiffre à mettre.
Attention : Ce numéro s'incrémente seul, mais il s'agit d'uncomptage fait par Access : ne t'étonne pas si l'index qu'il choisit passe de 2 à 4 au lieu de 3. C'est comme ça.
Si, par exemple, tu enregistres 10 fiches, elles porteront probablement les valeurs 1 à 10.
Si tu supprimes ensuite la fiche n° 7, la prochaine fiche qui sera créée portera le numéro 11. Le numéro 7 ne sera plus utilisable.
Ce NumAuto n'est là que pour créer facilement un Id et y affecter une clé primaire.

Après avoir fait un AddNew + renseigné le contenu des champs, il faut faire un Update.
0

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

Posez votre question
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
9 juil. 2010 à 17:40
Salut,

Private Sub cmdNouveau_Click()
cmdValider.Visible =True
cdmNouveau.Visible = False
datprimaryRS.Recordset.AddNew
End Sub

Si txtFields(0) est lié, la nouvelle valeur
qu'Access aura donné à n° Produit s' affichera automatiquement.

[] Ce qui va sans dire. va mieux en le disant.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
9 juil. 2010 à 17:43
Sans oublier,
Private Sub cmdValider_Click()
cmdValider.Visible =False
cdmNouveau.Visible = True
datprimaryRS.Recordset.Update
End Sub
[] Ce qui va sans dire. va mieux en le disant.
0
Rejoignez-nous