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

fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008 - 31 mai 2007 à 22:00
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 - 10 juin 2009 à 09:28
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42892-gerer-sa-base-de-donnees-access-en-toute-simplicite-quelque-soit-le-nombre-de-champs

Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
10 juin 2009 à 09:28
Ps version du fichier au cas ou :
2.81.1132.0 (xpsp.080413-0852)
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
10 juin 2009 à 09:26
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.
PWM63 Messages postés 127 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 18 mai 2016
29 mai 2009 à 10:41
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.
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
28 mai 2009 à 08:44
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 ?
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 mai 2009 à 23:37
pourrissage de topic =off, MERCI
cs_Gatinho Messages postés 5 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 27 mai 2009
27 mai 2009 à 23:22
Merci beaucoups
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
27 mai 2009 à 19:20
lol alors c'est quoi PWM ?
(pourissage de topic =on)
PWM63 Messages postés 127 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 18 mai 2016
27 mai 2009 à 18:46
De rien Acide désoxyribonucléique56, mais je n'ai rien à voir avec la modulation à largeur d'impulsion.
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
27 mai 2009 à 16:38
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.
++
PWM63 Messages postés 127 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 18 mai 2016
27 mai 2009 à 15:39
Projet
Ajouter une référence...
Onglet COM
Microsoft ADO 2.8 for DDL and Security
OK

PS : la question en anglais est superflue
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
26 mai 2009 à 09: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 ^^
cs_Gatinho Messages postés 5 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 27 mai 2009
17 avril 2009 à 11:46
Bonjour PWM63,
Merci beaucoups, j'y vais
PWM63 Messages postés 127 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 18 mai 2016
16 avril 2009 à 22:07
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.
cs_Gatinho Messages postés 5 Date d'inscription dimanche 15 mars 2009 Statut Membre Dernière intervention 27 mai 2009
16 avril 2009 à 16:14
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.
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
20 juin 2008 à 18:58
Oui une ligne de code par modification ;)
TokRa14 Messages postés 4 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 18 juin 2008
20 juin 2008 à 18:21
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 !
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
20 juin 2008 à 14:08
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 ?
TokRa14 Messages postés 4 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 18 juin 2008
20 juin 2008 à 14:04
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 !
PWM63 Messages postés 127 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 18 mai 2016
20 juin 2008 à 12:10
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
TokRa14 Messages postés 4 Date d'inscription lundi 22 mai 2006 Statut Membre Dernière intervention 18 juin 2008
19 juin 2008 à 15:41
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 ?
farradjs Messages postés 73 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 16 mars 2009
31 août 2007 à 19:34
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.
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
25 juin 2007 à 10:24
JUL_76 ==> Sincerement je ne sais pas mais vous pouvez tester !

PWM63 ==> Merci ca fait plaisir à entendre ^^
PWM63 Messages postés 127 Date d'inscription lundi 11 octobre 2004 Statut Membre Dernière intervention 18 mai 2016
15 juin 2007 à 12:40
FDIEDLER2000, j'ai utilisé ta classe c_bdd pour ajouter des enregistrements dans une base existante.

Utilisation facile + fonctionne parfaitement = 10/10 + surtout merci !
Jul_76 Messages postés 1 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 12 juin 2007
12 juin 2007 à 14:32
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
++
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
6 juin 2007 à 18:57
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 !!
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 juin 2007 à 12:28
merci de ne pas écrire en majuscules

c'est impoli et illisible
bobeche Messages postés 2 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 6 juin 2007
6 juin 2007 à 12:18
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
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
4 juin 2007 à 19:07
AU moins ma source à l'air de plaire :)
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
1 juin 2007 à 18:52
Pas de commentaires ? :(
fdiedler2000 Messages postés 383 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 1 décembre 2008
31 mai 2007 à 22:00
C'est bizarre j'avais mis a jour mon code et ca n'a pas été mis a jour...