Ecriture dans une base ACCESS depuis VB 2010.

Signaler
Messages postés
9
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
27 décembre 2010
-
Messages postés
4
Date d'inscription
mercredi 27 avril 2011
Statut
Membre
Dernière intervention
31 décembre 2011
-
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

Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
4
Ce genre là ?

Control_OnChange()

Control.AddNewItem()
Messages postés
9
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
27 décembre 2010

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
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
4
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 ;)
Messages postés
550
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
6 juin 2015
4
Messages postés
21
Date d'inscription
dimanche 6 août 2006
Statut
Membre
Dernière intervention
28 avril 2012

Précise ton travail
est ce que tu utilise une simple command iou un dataadapter ou tabledataadapter
Messages postés
21
Date d'inscription
dimanche 6 août 2006
Statut
Membre
Dernière intervention
28 avril 2012

Messages postés
9
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
27 décembre 2010

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...
Messages postés
7
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
7 octobre 2012

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
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
10
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
Messages postés
4
Date d'inscription
mercredi 27 avril 2011
Statut
Membre
Dernière intervention
31 décembre 2011

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