Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

GÉRER SA BASE DE DONNÉES ACCESS EN TOUTE SIMPLICITÉ QUELQUE SOIT LE NOMBRE DE CHAMPS...


Information sur la source

Catégorie :Base de Donnees Source .NET ( DotNet ) Classé sous : base, donnees, access, gestion, gerer Niveau : Initié Date de création : 29/05/2007 Date de mise à jour : 30/05/2007 14:34:07 Vu / téléchargé: 16 956 / 2 392

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (30)
Ajouter un commentaire et/ou une note

Description

Bonjour à tous,

J'ai créer ces deux classes dans le but de simplifier la gestion d'une basse de donnée access.

1ere classe ====> Si votre base de données est deja créée ainsi que votre table, utiliser la classe C_BDD
2eme classe ====> Si votre base de données n'est pas créée alors la classe C_BDD_New est pour vous !

Fonctions implementées dans la 1ere classe :

- Parametrage en fonction de sa base de donnée (nombre de champs et de valeurs)
- Supprimer un element
- Inserer un element
- Update un element
- Supprimer tous les elements
- Selectionner un element particulier
- Verifie les doublons (lors des requetes insert et update)
- Gestions de quelques erreurs

Fonctions implementées dans la 2eme classe :

- Parametrage en fonction de sa base de donnée (nombre de champs et de valeurs)
- Creation de la base
- Creation d'une table spécifique
- Supprimer un element dans une table specifique
- Supprimer tous les elements dans une table specifique
- Supprimer la Base
- Supprimer une table specifique
- Supprimet toutes les tables
- Inserer un element dans une table specifique
- Update un element dans une table specifique
- Selectionner un element particulier dans un table spécifique
- Verifie les doublons (lors des requetes insert et update) dans une table specifique
- Gestions de quelques erreurs


Et oui ces classes s'adaptent à n'importe quelle base de donnée Access (deja créée ou pas) quelque soit le nombre de champs !!

Voir les exemples pour plus d'explications.
 

Source

  • 'Utiliser cette classe que si votre base Access est deja créée !!!!!
  • Private WithEvents test As New C_BDD("Principale", 3, Application.StartupPath & "\Birthday.mdb") 'en argument il faut le nom de la table, la nombre de champs et le chemin d'accès de la table
  • Private Sub az()
  • Dim t(2) As String
  • t(0) = "Prenom"
  • t(1) = "Age"
  • t(2) = "Birthday"
  • test.CreerChamps(t) 'pour créer les champs Prenom, Age, Birthday
  • Dim v(2) As String
  • v(0) = "Toto"
  • v(1) = "15"
  • v(2) = "15/07/88"
  • test.AjouterElement(v) 'ajout un elment
  • Dim z(2) As String
  • z(0) = "Tutu"
  • z(1) = "2145"
  • z(2) = "14/01/87"
  • test.ModifierElement(z, "Age", "15") 'modifie un element
  • Ndata = test.SelectionnerTousElements() 'selectionne tous les elements
  • Ndata = test.SelectionnerUnElements("Prenom", "toto") 'selectionne l'enregistrement dont le prenom = toto
  • test.EffacerTousLesElements() 'efface tous les elements
  • End Sub
  • Private Sub test_Erreur(ByVal Description As String) Handles test.Erreur
  • MsgBox(Description) 'pour la gestion des erreurs
  • End Sub
  • '**********************************
  • '**********************************
  • 'Utiliser cette classe que si votre base n'existe pas encore !
  • Private WithEvents test As New C_BDD_New
  • Private Sub az()
  • Dim t(4) As String 'tableau qui contient les champs
  • t(0) = "Prenom"
  • t(1) = "Age"
  • t(2) = "Birthday"
  • t(3) = "Cool"
  • t(4) = "Raoulke"
  • test.SupprimerBase(Application.StartupPath & "\Birthday1.mdb") 'supprime la base si elle existe
  • test.CreerBase(Application.StartupPath & "\Birthday1.mdb") 'crée la base de donnée
  • test.CreerTable("Salut", t) 'pour créer les champs Prenom, Age, Birthday, Coll et Raeoulke
  • test.CreerTable("Bonsoir", t)
  • test.CreerTable("Aurevoir", t)
  • Dim v(4) As String
  • v(0) = "Toto"
  • v(1) = "15"
  • v(2) = "15/07/88"
  • v(3) = "er"
  • v(4) = "trtrtrt"
  • test.AjouterElement("Salut", v) 'ajout un elment
  • test.AjouterElement("Bonsoir", v) 'ajout un elment
  • Dim z(4) As String
  • z(0) = "Tutu"
  • z(1) = "2145"
  • z(2) = "14/01/87"
  • z(3) = "jhyt"
  • z(4) = "oopopo"
  • test.ModifierElement("Salut", z, "Age", "15") 'modifie un element dans la table Salut
  • test.ModifierElement("Aurevoir", z, "Age", "15") 'modifie un element dans la table Aurevoir
  • Ndata = test.SelectionnerTousElements("Salut") 'selectionne tous les elements de la table Salut
  • Ndata = test.SelectionnerUnElements("Aurevoir", "Prenom", "toto") 'selectionne l'enregistrement dont le prenom = toto dans la talbe Aurevoir
  • test.EffacerTousLesElements("Salut") 'efface tous les elements de la table Salut
  • test.SupprimerToutesBases()
  • End Sub
  • Private Sub test_Erreur(ByVal Description As String) Handles test.Erreur
  • MsgBox(Description) 'pour la gestion des erreurs
  • End Sub
'Utiliser cette classe que si votre base Access est deja créée !!!!!
 Private WithEvents test As New C_BDD("Principale", 3, Application.StartupPath & "\Birthday.mdb") 'en argument il faut le nom de la table, la nombre de champs et le chemin d'accès de la table 

    Private Sub az()

        Dim t(2) As String
        t(0) = "Prenom"
        t(1) = "Age"
        t(2) = "Birthday"
        test.CreerChamps(t) 'pour créer les champs Prenom, Age, Birthday

        Dim v(2) As String
        v(0) = "Toto"
        v(1) = "15"
        v(2) = "15/07/88"
        test.AjouterElement(v) 'ajout un elment

        Dim z(2) As String
        z(0) = "Tutu"
        z(1) = "2145"
        z(2) = "14/01/87"
        test.ModifierElement(z, "Age", "15") 'modifie un element

        Ndata = test.SelectionnerTousElements() 'selectionne tous les elements
        Ndata = test.SelectionnerUnElements("Prenom", "toto") 'selectionne l'enregistrement dont le prenom = toto

        test.EffacerTousLesElements() 'efface tous les elements
    End Sub

    Private Sub test_Erreur(ByVal Description As String) Handles test.Erreur
        MsgBox(Description) 'pour la gestion des erreurs
    End Sub

'**********************************
'**********************************

'Utiliser cette classe que si votre base n'existe pas encore !
Private WithEvents test As New C_BDD_New

    Private Sub az()
        Dim t(4) As String 'tableau qui contient les champs
        t(0) = "Prenom"
        t(1) = "Age"
        t(2) = "Birthday"
        t(3) = "Cool"
        t(4) = "Raoulke"

        test.SupprimerBase(Application.StartupPath & "\Birthday1.mdb") 'supprime la base si elle existe
        test.CreerBase(Application.StartupPath & "\Birthday1.mdb") 'crée la base de donnée
        test.CreerTable("Salut", t)  'pour créer les champs Prenom, Age, Birthday, Coll et Raeoulke
        test.CreerTable("Bonsoir", t)
        test.CreerTable("Aurevoir", t)

        Dim v(4) As String
        v(0) = "Toto"
        v(1) = "15"
        v(2) = "15/07/88"
        v(3) = "er"
        v(4) = "trtrtrt"

        test.AjouterElement("Salut", v) 'ajout un elment
        test.AjouterElement("Bonsoir", v) 'ajout un elment

        Dim z(4) As String
        z(0) = "Tutu"
        z(1) = "2145"
        z(2) = "14/01/87"
        z(3) = "jhyt"
        z(4) = "oopopo"

        test.ModifierElement("Salut", z, "Age", "15") 'modifie un element dans la table Salut
        test.ModifierElement("Aurevoir", z, "Age", "15") 'modifie un element dans la table Aurevoir

        Ndata = test.SelectionnerTousElements("Salut") 'selectionne tous les elements de la table Salut
        Ndata = test.SelectionnerUnElements("Aurevoir", "Prenom", "toto") 'selectionne l'enregistrement dont le prenom = toto dans la talbe Aurevoir

        test.EffacerTousLesElements("Salut") 'efface tous les elements de la table Salut
        test.SupprimerToutesBases()
    End Sub
    Private Sub test_Erreur(ByVal Description As String) Handles test.Erreur
        MsgBox(Description) 'pour la gestion des erreurs
    End Sub

Conclusion

Voila pas de bugs connus.

J'attends vos commentaires et critiques constructives !

++
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

29 mai 2007 22:44:45 :
orthographe
29 mai 2007 23:37:28 :
ajout commentaires
30 mai 2007 14:34:08 :
Mise à jour ====> Maintenant il y a deux classes qui s'adaptent parfaitement au cas par cas... Voir les explications

Commentaires et avis

signaler à un administrateur
Commentaire de fdiedler2000 le 31/05/2007 22:00:20

C'est bizarre j'avais mis a jour mon code et ca n'a pas été mis a jour...

signaler à un administrateur
Commentaire de fdiedler2000 le 01/06/2007 18:52:53

Pas de commentaires ? :(

signaler à un administrateur
Commentaire de fdiedler2000 le 04/06/2007 19:07:29

AU moins ma source à l'air de plaire :)

signaler à un administrateur
Commentaire de bobeche le 06/06/2007 12:18:42

je dois adapter un code vb6 EN .NET
JE CHERCHE DES CODES SOURCES QUI PUISSENT M  AIDER A ME CONNECTER ET A GERER MES BASES ACCESS
JE TROUVE TA SOURCE BIEN FAITES
MAIS J AI DU MAL A L UTILISER
COMMENT ME CONNECTER A MA BASE
AVANT DE LIRE LA BASE AVEC TES FONCTIONS
MERCI POUR LA REPONSE
BOBECHE

signaler à un administrateur
Commentaire de Renfield le 06/06/2007 12:28:30 administrateur CS

merci de ne pas écrire en majuscules

c'est impoli et illisible

signaler à un administrateur
Commentaire de fdiedler2000 le 06/06/2007 18:57:35

Pourtant c'est simple, si ta base est deja crée alors tu utilises la classe C_BDD sinon tu utilises la classe C_DD_New et regarde l'exemple !!

signaler à un administrateur
Commentaire de Jul_76 le 12/06/2007 14:32:33

Bonjour je suis un utilisateur débutant de VB.Net.
Je voudrais savoir si on peut ajouter ce code dans une form dans laquelle je possède déjà une liaison Oledb avec une table access.
Cette form me permet de faire défiler mes entrées access par l'intermédiaire de "BindingManagerBase = 0 ,  +1 , etc..."
merci d'avance
++

signaler à un administrateur
Commentaire de PWM63 le 15/06/2007 12:40:29

FDIEDLER2000, j'ai utilisé ta classe c_bdd pour ajouter des enregistrements dans une base existante.

Utilisation facile + fonctionne parfaitement = 10/10 + surtout merci !

signaler à un administrateur
Commentaire de fdiedler2000 le 25/06/2007 10:24:43

JUL_76 ==> Sincerement je ne sais pas mais vous pouvez tester !

PWM63 ==> Merci ca fait plaisir à entendre ^^

signaler à un administrateur
Commentaire de farradjs le 31/08/2007 19:34:30

est ce qu votre première classe permet de creer des tables dans une base deja creé parce que je constate une contradition entre :
test As New C_BDD("Principale", 3, Application.StartupPath & "\Birthday.mdb")

et
Dim t(2) As String
        t(0) = "Prenom"
        t(1) = "Age"
        t(2) = "Birthday"
        test.CreerChamps(t) 'pour créer les champs Prenom, Age, Birthday

en faite la fonction test.ModifierElement(z, "Age", "15") pour la première classe (C_BDD) me sort une erreur que je connait pas la solution si qlq a pu résoudre ce problème qu'il me soufle la réponse.
en tout les cas c'est deux classes sont superbe.

signaler à un administrateur
Commentaire de TokRa14 le 19/06/2008 15:41:32

Bonjour !
Merci pour ce code qui m'aide beaucoup !
Cependant, j'ai une erreur avec vb.net 2008 lors de la fonction Faire_Champs:

    Private Function Faire_Champs(ByVal tab_champs() As String) As String
        Dim resultat As String = ""
        For i As Integer = 0 To UBound(tab_champs) 'liste tous les elements
            If i = UBound(tab_champs) Then 'si c'est le dernier element
                resultat += tab_champs(i).ToString  'syntaxe pour le dernier champs
            Else
                resultat += tab_champs(i).ToString & ", " 'syntaxe pour les champs
            End If
        Next

        Return " (" & resultat & ")"
    End Function

Apparement ça plante au Else et ça me renvois une erreur qui dit:

L'exception System.NullReferenceException n'a pas été gérée
  Message="La référence d'objet n'est pas définie à une instance d'un objet."

avez vous une idée du probleme ?

signaler à un administrateur
Commentaire de PWM63 le 20/06/2008 12:10:08

Apparement, ton tab_champs(i) est Null.

Essaye d'encapsuler la condition par celle-ci à peu près comme ca (j'ai pas vérifier la syntaxe) :
if not isnull(tab_champs(i)) then
            If i = UBound(tab_champs) Then 'si c'est le dernier element
                resultat += tab_champs(i).ToString  'syntaxe pour le dernier champs
            Else
                resultat += tab_champs(i).ToString & ", " 'syntaxe pour les champs
            End If
end if

signaler à un administrateur
Commentaire de TokRa14 le 20/06/2008 14:04:40 10/10

Coucou !
Merci pour ta réponse, en fait j'ai trouvé le probleme !
C'était mon nombre de champs qui n'était pas correct ! Ce que je comprend pas c'est que la gestion d'erreur ne marche pas et du coup j'avais aucuns message.
J'ai tout remplacer par des msgbox et maintenant ça roule !
En tout cas, super code, facile à comprendre, à manipuler, j'adore !!

PS: Je débute tout juste en VB (.NET) alors la gestion des données, huhu !

signaler à un administrateur
Commentaire de fdiedler2000 le 20/06/2008 14:08:50

Salut,
Effectivement il n'y a pas d'erreur mais si ton nombre de champs n'est pas correct alors tu auras des problèmes !

En revanche, tu aurais du recevoir une erreur... As tu bien ajouté l'évent "Erreur" dans ton formulaire ?

signaler à un administrateur
Commentaire de TokRa14 le 20/06/2008 18:21:44

Ha oui !!
J'avais peut etre oublié ce détail !
Oups !!
Bon bah en tout cas, j'ai mis des msgbox, et ça marche aussi bien :D

Autre question, est-il possible de mettre à jour plusieurs champs en même temps avec ton code ? Ou dois-je faire appel à ModifierElement() à chaque champs que je veux modifier ?

Merci pour vos réponse !

signaler à un administrateur
Commentaire de fdiedler2000 le 20/06/2008 18:58:55

Oui une ligne de code par modification ;)

signaler à un administrateur
Commentaire de Gatinho le 16/04/2009 16:14:32

Bonjour les spécialistes, y aurait-il quelqu'un qui pourrait me (supper débutant) donner le code pour créer une table qui contiendrait la structure d'une autre table ? (access 2003)
Un grand merci d'avance.

signaler à un administrateur
Commentaire de PWM63 le 16/04/2009 22:07:12

Bonjour Gatinho,

La classe C_BDD_New te montre comment créer une table via 1 requête Create Table.

Mais apparemment, il n'y a rien ici qui puisse permettre de connaître la structure d'une table existante.

Je peux donc te proposer de regarder ces 2 sources :
http://www.vbfrance.com/codes/CONNAITRE-CERTAINES-ENUMERATIONS-OLEDBSCHEMAGUID-NET_43174.aspx
http://www.vbfrance.com/codes/CONNAITRE-DATATYPE-ADODB-COMPATIBLES-AVEC-TYPES-DONNEES-ACCESS_43088.aspx

La 1ère source te permet de trouver tes tables et tes champs existants.

Et la 2e, de pouvoir créer des tables en trouvant les bons types de données pour tes champs.

Bon courage pour la suite.

signaler à un administrateur
Commentaire de Gatinho le 17/04/2009 11:46:09

Bonjour PWM63,
Merci beaucoups, j'y vais

signaler à un administrateur
Commentaire de Adn56 le 26/05/2009 09:47:47

salut, je commence à m'intéresser au bdd, et je test ta source. elle me parait idéale pour se lancer avec les bdd.
Mais voila, probléme (surrement débile), mais vb me lance cette erreur dés l'insertion de ta classe :
Dim FicMdb As New ADOX.Catalog "type ADOX.Catalog non défini"
what the fuck ? (ps c'est vb2008)
merci pour le débug ^^

signaler à un administrateur
Commentaire de PWM63 le 27/05/2009 15:39:48

Projet
Ajouter une référence...
Onglet COM
Microsoft ADO 2.8 for DDL and Security
OK

PS : la question en anglais est superflue

signaler à un administrateur
Commentaire de Adn56 le 27/05/2009 16:38:12

Ok j'essaye toutal, merci pour ta rapidité modulation à largueur d'impulsion63 ^^ ;)
je note aprés hein, car j'aurais d'autres questions surrement
Encore merci Gatinho pour les comms du code et les noms explicites des vars !
ça fait plaisir à lire.
++

signaler à un administrateur
Commentaire de PWM63 le 27/05/2009 18:46:24

De rien Acide désoxyribonucléique56, mais je n'ai rien à voir avec la modulation à largeur d'impulsion.

signaler à un administrateur
Commentaire de Adn56 le 27/05/2009 19:20:05

lol alors c'est quoi PWM ?
(pourissage de topic =on)

signaler à un administrateur
Commentaire de Gatinho le 27/05/2009 23:22:02

Merci beaucoups

signaler à un administrateur
Commentaire de PCPT le 27/05/2009 23:37:38 administrateur CS

pourrissage de topic =off, MERCI

signaler à un administrateur
Commentaire de Adn56 le 28/05/2009 08:44:07

S'était pour rire PCPT ^^
Bon revenons au sujet.
J'ai ai trouvé DEUX qui se ressemble :
ActiveX Data Object 2.8 library et ActiveX Data Object recordset 2.8 library
aucune trace de activex data object (ou ADO) 2.8 for DLL and security.
Ton avis PWM63 ?

signaler à un administrateur
Commentaire de PWM63 le 29/05/2009 10:41:08

Projet
Ajouter une référence...
Onglet Parcourir
C:\Program Files\Fichiers Communs\System\ado\msADOX.dll
OK

Si tu ne l'as pas dans ce répertoire, cherche la DLL sur ton disque dur, ou à défaut, essaie de la trouver sur internet.

signaler à un administrateur
Commentaire de Adn56 le 10/06/2009 09:26:34

Ok je l'ai trouvé, dsl pour la réponse tardive mais j'ai un pti soucis de santé.
Donc je fait tout comme tu le dis, et tadam :
"Une référence à 'C:\Program Files\Fichiers Communs\System\ado\msADOX.dll
' n'a pas pu être ajoutée, assurer vous que le fichier est accessible et qu'il s'agit d'un assembly ou d'un composant Com valide!"
Grrr là cela commence à saouler méchament ! si tu vois autres choses à faire, merci pour ta patience.

signaler à un administrateur
Commentaire de Adn56 le 10/06/2009 09:28:04

Ps version du fichier au cas ou :
2.81.1132.0 (xpsp.080413-0852)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Gerer les formulaires et sous formulaires d'une base de donnees access [ par youandme2005africa ] Bonsoir,Suis nouveau sur ce site si génial où apparemment on peux tout trouver même pour les débutants.Je suis entrain de créer une base de données ac Importer les donnees Excel a Access [ par mel ] Bonjour,Je un ensemble de fichiers excel que je dois importer un a un dans des differentes tables de ma base de donnees (Access).Mon probleme est que gerer les images sous access2000 [ par Led0b ] Un de mes clients possède une base Access pour le suivi des défauts de fabrication. Muni d'un appareil photo numérique, il photographie le problème co ADO et Access [ par andrea06 ] Bonjour,J'ai une question a propos de la connection ado vers une base de donnees access.J'ai remarque qu'il n'est possible de se connecter a une base HELP ! URGENT BASE DE DONNEES !!!!! :-( [ par LaMiss ] Help ! je suis debutante en VB et je dois creer des fenetres de saisie et de gestion de tables gérées sous Access 97. Comment faire pour me connecter Mise a jour [ par Mouna ] Salut!J'ai cree une base de donnees sous access et j'ai reussi a la gerer grace aux controles data,data report...Sauf que lorsque je veux la gerer a l BASE DE DONNEES ACCESS [ par reyman ] J'utilise actuellement dans mon application une base de données ACCESS protégé par un mot de passe.Je manipule donc les données par l'intermédiare d'u base donnees access avec control data [ par phil21 ] comment faire pour changer le chemin de la base a laquelle on veut acceder quand on ouvre la form (propriete connectionstring).phil21 Gestion de base de données Access [ par Boris88 ] Je suis débutant et je réalise un jeu en VB. Je doit lire, des données dans une table. Celles-ci sont susceptibles d'être modifiées et doivent ecraser Gestion de dates, Access [ par sebgou ] Bonjour, Je ne sais pas si vous pourriez me donner un coup de main, mais je dois faire un pgm dans access qui gère une maintenance préventive. J'ai di


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,686 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.