Ecriture dans une base ACCESS depuis VB 2010.

ChristianPerso21 Messages postés 9 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 27 décembre 2010 - 26 déc. 2010 à 12:15
ccccdddd Messages postés 4 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 31 décembre 2011 - 31 déc. 2011 à 00:54
Bonjour à tous.

J'écris un petit programme qui demande un accès en lecture et en écriture dans une base Access déjà créée.
Pour ce qui est de la lecture, je n'ai aucun problème, sur mes deux form, et j'ai disposé un "BindingNavigateur" et un "bindingSource" de même nom et connecté à la même base de donnée.

Lorsque je veux entrer un nouveau enregistrement ou simplement en modifier un, la base ne se met pas à jour (alors que sous VB6 le simple fait de bouger d'un enregistrement cela suffisait pour la mise à jour de la base Access).

Quelqu'un pourrait - il me donner un petit conseil.

Merci d'avance.

10 réponses

Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
26 déc. 2010 à 13:33
Ce genre là ?

Control_OnChange()

Control.AddNewItem()
ChristianPerso21 Messages postés 9 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 27 décembre 2010
26 déc. 2010 à 14:09
Bonjour DUKE49,

- Control_OnChange n'existe pas dans VB2010.

- Control_AddNewItem() existe, mais je ne voit pas en quoi cette déclaration va m'aider dans mon programme.

Je ne comprend pas pourquoi, lorsque je créer un enregistrement a partir de mon BindingNavigateur, celui n'incrémente pas ma base de donnée ACCESS, sachant qu'il arrive à lire tous les enregistrements déjà existants dans la base.
(Je me souvient que sous VB6, le fait de se déplacer dans le contrôle de BD, ACCESS était mis à jour.)

As tu une solution?

Merci
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
26 déc. 2010 à 14:13
Je crois qu'il y avait une propriété true/false sur le contrôle qui permettait ça sous VB6. En VB.Net je sais pas, c'est peut-être pareil.

J'apprends les accès fichiers actuellement, je verrais les databases après ^^
Y'a bien un membre qui a son idée, soit patient ;)
Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
26 déc. 2010 à 14:16

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

Posez votre question
cs_310 Messages postés 21 Date d'inscription dimanche 6 août 2006 Statut Membre Dernière intervention 28 avril 2012
27 déc. 2010 à 04:29
Précise ton travail
est ce que tu utilise une simple command iou un dataadapter ou tabledataadapter
cs_310 Messages postés 21 Date d'inscription dimanche 6 août 2006 Statut Membre Dernière intervention 28 avril 2012
27 déc. 2010 à 04:46
ChristianPerso21 Messages postés 9 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 27 décembre 2010
27 déc. 2010 à 10:28
Bonjour 310, et merci pour ce lien. Néanmoins ce n'est pas tout à fait ce que je cherche. En effet c'est un tuto qui concerne l'utilisation d'une base SQL, alors que j'utilise une Base de données ACCESS.

Un peu plus de détail:
J'ai deux (2) form constituées de label et de textbox, ainsi qu'un binding navigator sur les deux feuilles.

Sur la première, qui me sert à lire les données de la base, elle est essentiellement constituée de label (Titre, Années, Durée etc...) et d'un bindingnavigator, tableadaptateur, bindingsource... L'ensemble fonctionne et j'arrive à lire les données de ma base ACCESS.

Sur la seconde form, constituée de textbox qui sont censée recevoir les informations entrée par l'utilisateur et qui rempliront la base de donnée. Un bindingnavigateur qui me permet de me déplacer dans la base de donnée et de créer de nouveau enregistrement.
La ou je rencontre un problème c'est dans l'enregistrement des nouvelles données. La base n'est pas mise à jour lorsque j'ai rempli l'ensemble des textbox, les infos n'incrémente pas les champs de la base de donnée.

Voila un peu plus de details. Si tu peut apporter une autre solution...
cs_marwa20 Messages postés 6 Date d'inscription mercredi 30 juin 2010 Statut Membre Dernière intervention 7 octobre 2012
20 févr. 2011 à 11:19
je crois que tu dois utilise adodb ou odbc
moi j'ai utilisé dao et ça mercher bien
voici ma code que je fais pour enregistrer un eleve
ça peut te servir
Public Class ajouteretudiantetudiant
'la base de donn´ees
Dim db As dao.Database
'DBEngine permet d’ouvrir et de cr´eer une base de donn´ees
Dim DBEngine As New dao.DBEngine
'un recordset
Dim rst As dao.Recordset
'Table est utilis´ee lors de la cr´eation de la Table Etudiant
Dim Table As dao.TableDef
'd´eclaration des champs de la table Etudiant
Dim Id_E As dao.Field
Dim Nom As dao.Field
Dim Prénom As dao.Field
Dim datenaissance As dao.Field
Dim lieunaissance As dao.Field
Dim nationnalité As dao.Field
Dim id_cl As dao.Field
Dim sexe As dao.Field






Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
db = DBEngine.OpenDatabase("C:\notes.mdb")
'ouvre un recordset dans la table Eleve
rst = db.OpenRecordset("Etudiant")
'cr´eation d’un nouvel enregistrement
rst.AddNew()
'ajout des valeurs de champ
rst("Id_E").Value = CInt(txtid.Text)

rst("Nom").Value = txtnom.Text
rst("Prénom").Value = txtprenom.Text
rst("sexe").Value = txtsexe.Text
rst("datenaissance").Value = txtnaiss.Text
rst("Nom").Value = txtnom.Text
rst("lieunaissance").Value = txtlieu.Text
rst("id_cl").Value = txtclasse.Text
'mise `a jour de la table
rst.Update()
'fermeture du recordset
rst.Close()

End Sub
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
20 févr. 2011 à 11:33
Bonjour à tous,

@marwa20, notre ami travaille sous .NET 2010 et tu lui donnes une solution avec DAO. Or DAO est obsolète depuis 1998 et remplacé par ADO 2.x. Je doute de toutes façons que DAO soit possible en .NET.

@ChristianPerso21, je ne connais pas .NET, mais je crois me souvenir qu'il peut s'agir d'un problème de dossier. Sous quel dossier se trouve ton fichier .MDB? J'ai cru comprendre qu'en le changeant de dossier cela résout le problème. Si un forumeur au courant de ce problème passe par là, il pourrait t'en dire plus.




Calade
ccccdddd Messages postés 4 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 31 décembre 2011
31 déc. 2011 à 00:54
Bonjour cher amis informaticiens! je veux avoir l'équivalent du code vb6.0 ci dessous en vb.net si quelqu'un à ce bout de code aidez moi.

Private Sub CmdQuitter_Click()
Dim X As Long
Dim i As Long
i = 80
For X = Me.Height To 300 Step -i
DoEvents
Me.Move Me.left, Me.tOp + (i / 2), Me.Width, X
Next
For X = Me.Width To 1000 Step -i
DoEvents
Me.Move Me.left + (i / 2), Me.tOp, X, Me.Height
Next
Unload Me
End Sub
Rejoignez-nous