sarapotter987
Messages postés3Date d'inscriptionsamedi 6 mai 2006StatutMembreDernière intervention23 février 2009
-
31 oct. 2008 à 12:27
SPEFHICHAM
Messages postés3Date d'inscriptionlundi 26 janvier 2009StatutMembreDernière intervention26 janvier 2009
-
26 janv. 2009 à 16:07
Bonjour à tous, voila j'ai un probleme et ca m'obsede , bon je voudrai créer une base de donnée access avec un code VB.NET mais j'y arrive pas donc si il y'a quelqu'un qui pourrai m'aider .... merci d'avence !
SPEFHICHAM
Messages postés3Date d'inscriptionlundi 26 janvier 2009StatutMembreDernière intervention26 janvier 2009 26 janv. 2009 à 16:07
Bonjour sarapotter987
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Ce tutoriels explique les syntaxes pour se connecter à une BD Access
ajouter , modifier et supprimer des données...
C'est une version simplifiée de ma source(faites grâce à un trés bon tuto)qui ,suite aux mises à jours ,est devenue moins compréhensible pour les débutants , à qui elle était adressée au départ...
1) il faut importer les biblio qui vont permettre d'utiliser ado.net : ( à mettre tout en haut )
Imports
System
ImportsSystem.Data
ImportsSystem.Data.OleDb
Imports Microsoft.VisualBasic
2) il faut déclarer les variables :( au dessus de form_load)
'Déclaration de la variable pour la connection
Private
cnx
As
OleDbConnection
'Déclaration de la variable pour la commande
Private
cmd
As
OleDbCommand
'Déclaration de la variable pour le dataadapter
Private
dta
As
OleDbDataAdapter
'Déclaration de la variable pour le dataset
Private
dts
As New
Dataset
'Déclaration de la variable pour la requête
Private
sql AsString
'Déclarationde la variable pour la datatable
Private dtt AsDataTable
'Déclarationde la variable pour le datarow
Private dtr As DataRow
'Déclaration de la variable pour le Nº de l'enregistrement
Private
rownum As Integer
'Déclaration de la variable pour la connectionstring
Private
cnxstr AsString
'Déclaration de la variable pour le commandbuilder
Private
cmdb
As OleDbCommandBuilder
Command (cmd) :
permet par le biais d'une requête de récupérer tout ou partie des données de la table.
Dataadapter (dta) :
reçoit les données de la commande (cmd) et les envoies au dataset (dts)
Datatable (dtt) :
le dataset renvoie les données dans la datatable , qui va permettre de récupérer le nº d'enregistrement sur lequel on est placé grace au Nº de ligne (rownum)
Commandbuilder (cmdb) :
il va récupérer les données modifiées et les renvoyer au dataadapter pour recréer le dataset avec les nouvelles données
3) dans form_load on va créer la connection , la commande , le dataadapter , le dataset et la datatable afin de pouvoir ajouter , modifier , supprimer des données dans la table.Afin de ne pas devoir déplacer la base de données on la place dans le répertoire bin du projet et on déclare la connection à <?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" /??><st1:personname w:st="on" productid="la BD">la BD</st1:personname> de cette façon :
'ouverture de la connection(à partir du répertoire de l'application)sur la même ligne
'Création du dataadapter (dta) et on l'instancie (cmd)
dta = New OleDbDataAdapter(cmd)
'On instancie la commande (cmd) à la connection (cnx)
cmd.Connection() = cnx
'On charge le dataset (dts) grace à la propriété fill du dataadapter (dta)
dta.Fill(dts, "table")
'On charge la datatable (dtt) grace à la propriété tables du dataset (dts)
dtt = dts.Tables("table")
Remarque concernant la requête sql :
Select table.* from table
Table est le nom de la table et " table.* " signifie sélectionner tous les champs de la table
4) Pour pouvoir séléctionner et afficher des données on va se servir
de la variable rownum qui va contenir le Nº de ligne (ou d'enregistrement) sur lequel nous serrons placés
dans la datatable (dtt)et que ces lignes vont de 0 (premier enregistrement) à rows.count-1 (dernier enregistrement).
Pour afficher un enregistrement , dans des textbox , on utilisera la syntaxe suivante :
Me
.txt1.text = dtt.Rows (rownum).Item("champ1")
Me
.txt2.text = dtt.Rows (rownum).Item("champ2")
Pour ce déplacer dans les enregistrements , on utilisera les syntaxes suivantes suivies de la syntaxe d'affichage données :
Premier : rownum = 0
Précédent
: rownum -= 1
Suivant
: rownum += 1
Dernier
: dtt.Rows.Count - 1
Pour vérifier si la table contient des enregistrements on utilisera cette syntaxe :
'si la table est vide alors
If rownum > dtt.Rows.Count - 1 Then
Remarque : Dans chaque boutons de navigation il faudra utilisé une condition pour afficher les données, car si l'on clique sur le
bouton suivant et que l'on est sur le dernier enregistrement etc.cela génèrera une erreur.
Exemple pour le bouton précédent :
'si début du fichier ou table vide message et sortie de procédure
If
rownum = 0 Orrownum > dtt.Rows.Count - 1 Then
MessageBox.Show etc....
Exit Sub
Else
'aller à la ligne précédente
rownum -= 1
'affichage des données dans les textbox
Me
.txt1.text = dtt.Rows (rownum).Item("champ1")
Me
.txt2.text = dtt.Rows (rownum).Item("champ2")
End if
5) On va donc afficher le premier enregistrement , si la table n'est pas vide , en plaçant ce code dans le form_load :
'si la table est vide alors
If
rownum > dtt.Rows.Count - 1 Then
'Sortie de procédure
Exit sub
'Sinon affichage des données dans les textbox
Else
Me
.txt1.text = dtt.Rows (rownum).Item("champ1")
Me
.txt2.text = dtt.Rows (rownum).Item("champ2")
End If
6) Pour ajouter un enregistrement on utilisera cette syntaxe :
'crátion d'une nouvelle ligne avec les données des textbox