Ajout d'enregistrement à une table access via vb6

tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 - 22 août 2011 à 10:18
marion8316 Messages postés 75 Date d'inscription mercredi 17 août 2011 Statut Membre Dernière intervention 27 septembre 2011 - 25 août 2011 à 19:18
salut tout le monde,
j'essaye de coder un bouton qui permet d'ajouter un enregistrement à une table de ma base de données,et j'utilise le VB6.
Mais je rencontre un probléme en execution
en fait j'ai créé un adodc lié à ma base puis j'ai passé au code:
Private Sub Command1_Click()

If (Text1.Text "" Or Text2.Text "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "" Or Text6.Text = "") Then
MsgBox "veuillez terminer les données de votre voiture"
Else
Adodc1.Recordset.MoveFirst
Adodc1.Recordset.AddNew
Adodc1.Recordset!Num_imatriculation = Me.Text1.Text
Adodc1.Recordset!Marque = Me.Text2.Text
Adodc1.Recordset!Puissance_fiscale = Me.Text3.Text
Adodc1.Recordset!Couleur = Me.Text4.Text
Adodc1.Recordset!Energie = Me.Text5.Text
Adodc1.Recordset!Nombre_de_places = Me.Text6.Text
MsgBox " Voiture ajoutée dans votre table"
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text1.SetFocus
End If
End Sub[code=vb]

l'execution s'arête au niveau de
Adodc1.Recordset.AddNew
j'ai trouvé aussi que je peux utilisé insert into,j'ai essayé mais j'arrive pas.
SVP quelqu'un peut m'expliquer la source du probléme.

12 réponses

tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
22 août 2011 à 11:19
voilà avec insert into :
Private Sub Command1_Click()
If (Text1.Text "" Or Text2.Text "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "" Or Text6.Text = "") Then
MsgBox "veuillez terminer les données de votre voiture"
Else
Adodc1.RecordSource = "INSERT INTO Voiture(Num_imatriculation,Marque,Puissance_fiscale,Couleur,Energie,Nombre_de_places) values ('" & Text1.Text & "','" & Text2.Text & "','" & Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "'," & Text6.Text & ");"
MsgBox " Voiture ajoutée dans votre table"
Adodc1.Refresh
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text1.SetFocus
End If
End Sub


un message d'erreur s'affiche pour l'instruction refresh "operation non autorisé si le fichier est fermé"
mais quand je consulte ma base aprés je trouve le nouveau enregistrement!!!!
comment puis-je me debarasser de cette erreur SVP.
De plus j'ai un champ autonumerique(que je remplis pas alors dans la saisie des nouveaux données),la valeur donnée à ce champ n'est pas comme souhaité,en effet si j'ai 5 enregistrement et que je supprime 1,on me reste que 4,alors normalment si j'ajoute un enregistrement il prend la valeur 5,hors il pred la valeur 6 comme si le 5éme n'etait pas supprimé!!!
SVP j'ai besoin de votre aide.
Merci d'avance
1
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
22 août 2011 à 12:42
Bonjour,

Sur quelle ligne se produit l'erreur ?
Es-tu sûr que la base de données est encore ouverte ?
Est-ce que le Recordset est encore ouvert ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
22 août 2011 à 12:45
pour la seconde solution le probléme est au niveau de refresh.en fait je souhaite pas etre obligé d'ouvrir ma base de données pour pouvoir ajouter via vb6!!
pour la premiere solution mon probléme est au niveau de addnew et là je trouve pas l'enregistrement dans ma base.
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
22 août 2011 à 12:58
pas etre obligé d'ouvrir ma base de données pour pouvoir ajouter via vb6


impossible, ta base doit forcément être ouverte dans ton code pour avoir accès aux données, tables, etc pour pouvoir faire un ajout.

L'expérience, c'est une connerie par jour, mais jamais la même..
0

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

Posez votre question
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
22 août 2011 à 13:05
voilà je suis arrivée à mon but,c bon,maitenant l'ajout est effectué sans être obligé d'ouvrir ma base.
en fait j'ai changé adodc1.refresh par adodc1.recodset.update
il me reste sauf le probléme de mon parametre autonumerique,il prend en consideration les enregistrements supprimés
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
22 août 2011 à 13:27
je pense que le probléme est au niveau de la suppression car j'ai remarqué que quand JE SUPPRIME le numero 2 ,y a pas de decalage automatique pour ceux qui suivent.
il ma manque alors un move ou quelque chose comme ça je pense.mais je sais pas quoi exactement.
je vais essayé et si quelqu'un peut m'aider merci bcp.
j'essaye et j'attend une aide si c possible.
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
22 août 2011 à 14:31
je me suis pas arrivée,j'ai essayer d'agir par des move en suppression et en ajout,mais rien n'est modifié en resultat.
SVP qui a une idée?
Merci d'avance
0
marion8316 Messages postés 75 Date d'inscription mercredi 17 août 2011 Statut Membre Dernière intervention 27 septembre 2011 1
22 août 2011 à 23:08
Bonsoir,

Pour actualiser un champ de type 'NuméroAuto' sous Access, il faut :

1. Créer une table identique que la table initiale (que la structure).

2. Ensuite il faut exécuter une requête d'insertion dans la nouvelle table.

Ci-dessous Exemple :

Table1 (Wnb,Champ1) - Le champ Wnb est le champ 'NuméroAuto'
Table2 (Wnb,Champ1) - Idem que la table1

La Table1 contient :
Wnb Champ1
1 Toto
3 Tata
4 Tutu

Requête à exécuter :

INSERT INTO Table2
SELECT Table1.Champ1 AS Champ1
FROM Table1;

Seul le champ = 'Champ1' de la table 'Table1' est repris.
Le champ 'Wnb' de la table Table2 sera automatiquement alimenté.

Si vous devez exécuter la requête d'insertion plusieurs fois il faut vider la table2 avant le passage de la requête.

Après le passage de la requête la Table2 va contenir :
Wnb Champ1
1 Toto
2 Tata
3 Tutu

J'espère avoir été clair.

Didier
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
23 août 2011 à 10:11
Bonjour,
l'idée est clair,mais just ou est ce que je crée cette table?sous access ou bien sous vb6?
et à propos des autres champs comment seront remplis?
je dois faire l'affaire à la main ou bien comment?
0
marion8316 Messages postés 75 Date d'inscription mercredi 17 août 2011 Statut Membre Dernière intervention 27 septembre 2011 1
24 août 2011 à 21:02
Bonsoir,

Il faut créer cette table sous Access 1 seul fois.

Dans mon exemple la table 'Table1' contient 2 champs, l'autre table 'Table2" est identique.

Pour la table 'Voiture' vous devez créer une table identique avec les même champs.

Voiture(Num_imatriculation,Marque,Puissance_fiscale,Couleur,Energie,Nombre_de_places)
Voiture_bis(Num_imatriculation,Marque,Puissance_fiscale,Couleur,Energie,Nombre_de_places)

La requête d'insertion doit contenir tous les champs sauf le champ 'Numéroauto".

Comme indiqué ci-dessus, vous devez coder de la façon suivante :

1. Vidage de la table : Voiture_bis

2. Requête d'insertion :
INSERT INTO Voiture_bis
SELECT Voiture.Num_imatriculation,Voiture.Marque,Voiture.Puissance_fiscale,Voiture.Couleur,Voiture.Energie,Voiture.Nombre_de_places FROM Voiture;

Didier
0
tastastoussa Messages postés 73 Date d'inscription lundi 8 août 2011 Statut Membre Dernière intervention 11 février 2013 4
25 août 2011 à 00:14
merci bcp,je vais essayer
0
marion8316 Messages postés 75 Date d'inscription mercredi 17 août 2011 Statut Membre Dernière intervention 27 septembre 2011 1
25 août 2011 à 19:18
Bonsoir,

J'ai oublié dans les tables de positionner le champ 'Numéroauto'.

Voiture(Champ1(Numéroauto),Num_imatriculation,Marque,Puissance_fiscale,Couleur,Energie,Nombre_de_places)
Voiture_bis(Champ1(Numéroauto),Num_imatriculation,Marque,Puissance_fiscale,Couleur,Energie,Nombre_de_places)

Désolé

Didier
0
Rejoignez-nous