PETITE GESTION DE CONTACT (ACCESS + .NET)

cs_Napster Messages postés 76 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 19 septembre 2009 - 2 oct. 2003 à 14:28
pioliviera Messages postés 1 Date d'inscription lundi 22 décembre 2008 Statut Membre Dernière intervention 3 février 2009 - 3 févr. 2009 à 12:32
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/16808-petite-gestion-de-contact-access-net

pioliviera Messages postés 1 Date d'inscription lundi 22 décembre 2008 Statut Membre Dernière intervention 3 février 2009
3 févr. 2009 à 12:32
Salut l'ami, ton code est mortel!! Pas mal gar Bravo!
CLENFER Messages postés 7 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 9 août 2007
22 août 2007 à 17:12
Très bon code j'avoue. Mais moi j'ai un problème que j'ai testé avec ma base de donnée et ton programme,et le problème ne revient pas.

Sur mon programme, j'essaie de remplir un datagrid ou un truedbgrid avec le dataset et le temps ecoulé permettrait quasiment d'ecouter un film. Non sans blague, le délai d'affichage sur mon prog est 10 fois plus long que sur le tiens.

sur cette ligne ca prend environ 30 seconde avant l affichage
' rempli le dataset
AdapTContact.Fill(DtSet, "Client")

et quand je test sur ton prog avec le même data l'affichage ne prend que 3 ou 4 sec?????????? Pourquoi si vous avez des trucs ou astuce, merci de me le faire savoir.


Petite spécification : j'utilise vb 2005 est ce la cause?

note 9/10
mitnickKevin Messages postés 40 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 18 juin 2008
7 juin 2007 à 10:42
Merci bien tresor de vie.
merci bien d'avoir pris le temps de mettre tous ces commentaires.
Le projet a ete realise sur une version anterieure de microsoft visual studio 2005 8.0 ?
A+
cs_cybercorp Messages postés 44 Date d'inscription lundi 1 avril 2002 Statut Membre Dernière intervention 16 août 2009
7 mai 2007 à 17:08
Bonjour
J'ai un petit souci lors de l'enregistrement. En effet, la clé unique est définie par:
NewLigne(0)=DtSet.Table.Item(0).Rows.Count+1

En testant sur 6 (0 à 5) enregistrements, je supprime le second (1) et j'en crée un nouveau. Celui-ci prend le numéro 5 qui est déjà existant.

Comment avoir une clé Unique qui soit Vraiment unique?
cs_rudramohan Messages postés 1 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 20 novembre 2006
20 nov. 2006 à 18:12
Cool et vraiment sympa ton programme. Encore MERCI pour le bien que tu fais .
Ton code est simple et explicite. La plupart de form acces vbnet ne comporte pas de DateTimePicker Pkoi? As tu une idée de comment inserrer une telle date dans la bdd. J'ai tout essayé et c'est une vrai galère
Merci encore pour ta source
peperedg Messages postés 1 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 27 juillet 2006
27 juil. 2006 à 15:26
Très bon code, cela ma aidé beaucoup!
:)
cs_tototh Messages postés 22 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 12 août 2008
15 juin 2006 à 15:36
Bonjour TLM.
Très bien ton source, Simple et fonctionnel.
Ca frôle l'indécence ;-)
note: 9,9999999/10. (Car le code parfait n'existe pas.).
cs_tototh Messages postés 22 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 12 août 2008
15 juin 2006 à 15:36
Bonjour TLM.
Très bien ton source, Simple et fonctionnel.
Ca frôle l'indécence ;-)
note: 9,9999999/10. (Car le code parfait n'existe pas.).
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
8 févr. 2005 à 09:50
voila, en fait j'ai trouvé le problème :
dans ma base de données, certains de mes champs contenaient des espaces (le titre des colonnes quoi). En fait, quand je remplace l'espace par un "_", ça marche bcp mieux...
Il m'a quand meme fallu 2 jours pour trouver que c'était ça qui posait problème (lol).

voila, donc ceux qui auront cette erreur sauront quoi faire

merci à tresorsdevie et 187bundy pour leur source...
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
4 févr. 2005 à 14:34
j'ai refait un prog pour moi en m'inspirant de ton applic (géniale) mais j'ai un problème avec la suppression.

voici mon code :

Private Sub MajBase(ByVal Adapter As OleDbDataAdapter, ByVal table As String)
connection.Open()
'création commandbuilder
'génère automatiquement l'update entre le dataset et la base de données
Dim CmdBuild As OleDbCommandBuilder
CmdBuild = New OleDb.OleDbCommandBuilder(Adapter)
Adapter.UpdateCommand = CmdBuild.GetUpdateCommand()
Adapter.Update(ds, table)
connection.Close()
End Sub


Private Sub Buttonsupprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buttonsupprimer.Click
'récupère la ligne sélectionnée
Dim ligneencours As Integer
ligneencours = DataGrid1.CurrentRowIndex

'on récupère ensuite la clé de l'enregistrement sélectionné (Num)
Dim Num As String
Num = DataGrid1.Item(ligneencours, 0)

'on sélectionne la ligne
Dim ligne As DataRow()
ligne ds.Tables("pieces").Select("Num" & Num)
'et on la supprime (en demandant de confirmer)
Dim result As DialogResult = MessageBox.Show("Etes-vous sûr de supprimer la ligne sélectionnée?", "Supprimer ?", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2)
Select Case result
Case DialogResult.Yes
'si on clique sur YES, on supprime
ligne(0).Delete()
Case DialogResult.No
'si on clique sur No, la boite de dialogue se ferme
End Select
'Mise à jour de la base
MajBase(da, "pieces")
End Sub

ma base de données contient une seule table ("pieces").
elle contient les colonnes suivantes :
Num (en clé primaire),machine,fournisseur,ref fournisseur, désignation,stock,ref interne, derniere commande,valeur,valeur en stock.

quand je clique sur mon bouton supprimer, j'obtiens une erreur d'exception :
System.Data.oledb.oledbexception : erreur de syntaxe(opérateur absent) dans l'expression '((Num = ?)AND ((?=1 AND machine IS NULL) OR (machine = ?)) AND.....
at system.data.common.dbdataadapter.update(Datarow[]datarows,datatablemapping tablemapping)
at system.data.common.dbdataadatper.update(dataset dataset, string srctable)
....

que faire???
tresorsdevie Messages postés 135 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 20 juillet 2013
9 juil. 2004 à 06:59
les critiques sont la pour nous faire avancer
merci
a++
softeur Messages postés 6 Date d'inscription mercredi 20 mars 2002 Statut Membre Dernière intervention 30 mars 2011
8 juil. 2004 à 14:07
Mouai ... t'emballe pas coté remerciement avec moi ... c'est bien tenté quand meme ... Il y a trop de bug dans ton source pour etre réutilisable. Juste bon pour donner qq idées pour les debutants.
Essai d'utiliser Try plus souvent ... et les controle validators ...
Bonne continuation.. test, test, et re test toutes les possiblités... bye ;)
tresorsdevie Messages postés 135 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 20 juillet 2013
7 juin 2004 à 16:59
ca fait tj plaisirs ;)
mfritsch Messages postés 46 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 3 mai 2005
7 juin 2004 à 10:09
dsl, un bug, mon pc plante, tu as droit a des remerciements en triple exemplaire ... ;)

Max
mfritsch Messages postés 46 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 3 mai 2005
7 juin 2004 à 10:08
Comme 187bundy, je voudrais te dire un grand Merci ! A peine j'ai vu ta source en dl, je l'ai prise, je cherchais ca partout, mais en vain. Tu m'as libéré, grace a toi je sors de cette m.... dans laquelle j'étais depuis deja plsrs jours. Bref, tu m'as tellement aidé que je pourrais construire une statue a ton effigié et que tous les matins je prierais pour toi !

Encore merci !!!

Max
mfritsch Messages postés 46 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 3 mai 2005
7 juin 2004 à 10:08
Comme 187bundy, je voudrais te dire un grand Merci ! A peine j'ai vu ta source en dl, je l'ai prise, je cherchais ca partout, mais en vain. Tu m'as libéré, grace a toi je sors de cette m.... dans laquelle j'étais depuis deja plsrs jours. Bref, tu m'as tellement aidé que je pourrais construire une statue a ton effigié et que tous les matins je prierais pour toi !

Encore merci !!!

Max
mfritsch Messages postés 46 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 3 mai 2005
7 juin 2004 à 10:05
comme 187bundy, je voudrais te dire un grand Merci ! A peine j'ai vu ta source en dl, je l'ai prise, je cherchais ca partout, mais en vain. Tu m'as libéré, grace a toi je sors de cette m.... dans laquelle j'étais depuis deja plsrs jours. Bref, tu m'as tellement aidé que je pourrais construire une statue a ton effigié et que tous les matins je prierais pour toi !

Encore merci !!!

Max
tresorsdevie Messages postés 135 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 20 juillet 2013
11 mai 2004 à 13:23
oki, merci
187bundy Messages postés 172 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 10 juin 2004
11 mai 2004 à 08:44
Merci. Bamphi m'a donné la solution. Si elle t'interresse, voici le code:
Avant :
Dim lignechoisie2 As Integer
lignechoisie2 = repertoire.CurrentRowIndex
repertoire.Item(lignechoisie2, 1) = nom1.Text
repertoire.Item(lignechoisie2, 2) = tel1.Text
Après :
Dim lignechoisie2 As Integer
lignechoisie2 = repertoire.CurrentRowIndex

Dim Ligne As DataRow()
Dim num As String

num = repertoire.Item(lignechoisie2, 0)
Ligne DtSet.Tables("Liste").Select("num " & num)

Ligne(0).BeginEdit()

repertoire.Item(lignechoisie2, 1) = nom1.Text
repertoire.Item(lignechoisie2, 2) = tel1.Text

Ligne(0).EndEdit()

++
187
tresorsdevie Messages postés 135 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 20 juillet 2013
7 mai 2004 à 12:48
hello, j'ai eu trop de boulot , mais promis je regarde cet apres midi,
je te dit ca ce soir sans faute
a++
187bundy Messages postés 172 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 10 juin 2004
7 mai 2004 à 09:45
Salut Chris !

Alors, as tu trouvé une astuce pour détourner le rafraichissement ? Paske moi je trouve rien et je suis trop dans la merde si mon projet est bloqué à cause de ça ...
J'espère que t'aura une piste ;-)

++
187
187bundy Messages postés 172 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 10 juin 2004
5 mai 2004 à 08:38
En fait si tu clik dans le DataGrid après avoir fait 'modifier', ca fait un refresh auto, et donc si tu enregistre après ca marche ... Mais si tu fais 'modifier' puis 'enregistrer' (ce qu'il faut envisager) et ben ca refresh pas et sa plante ... Et comme tu l'a toi même remarqué, la fonction refresh() est pas vraiment au point :p
Merci.

++
187
tresorsdevie Messages postés 135 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 20 juillet 2013
4 mai 2004 à 20:18
hum..
j'ai tester cet apre'm , chez moi ca tourne sans probleme et ca enregistre, j'ai pas fait attention au fait de cliquer ou pas dans le datagrid (car ca enregistrait a chaque coup) , je le retesterais demain.

aussi je me souvient que j'ai rencontrer cette bizzarerie dans un autre prog, dont j'avais fini pas trouver la soluce . de tete ca ne me revient pas je regarde ca au bureau demain.
ce que je me souvient c'est que je n'arrrivait pas a rafraichir avec refresh et que j'avais trouver une alternative a cette fonction.

a+ chris

A+
187bundy Messages postés 172 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 10 juin 2004
4 mai 2004 à 15:13
Merci bcp ...
En tout cas tu as raison je pense pour le refresh, car quand je modifie et ke je fais enregistrer, il prend pas en compte, mais si je modifie, pui ke je clik ailleurs dans le datagrid puis ke j'enregistre, ca marche ...
mais malgré un refresh apres la modif, ca change rien ... zarbi ;-)

Merci en tout cas !!!
++
187
tresorsdevie Messages postés 135 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 20 juillet 2013
4 mai 2004 à 13:51
je regarde ca dans la journée
je te tiens au courant
a+
chris
187bundy Messages postés 172 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 10 juin 2004
4 mai 2004 à 12:39
non y'a pas de raison ... C'est justement pour ca que je craque ;-) Par exemple : La fonction marchait très bien (testée plein de fois) et puis j'ai ajouté juste un bouton au design (sans rien prog) et elle marchait plus ... y'as des trucs bizarres qui se passent !
Si t'as le tps jette un coup d'oeil à mon prog complet:(http://www.vbfrance.com/code.aspx?ID=22495)

Merci !
++
187
tresorsdevie Messages postés 135 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 20 juillet 2013
4 mai 2004 à 11:15
si ca n'enregistre pas c'est que
-soit le dataset n'est pas mis a jour quand il le faudrait
- soit il y a une erreur de champs, type champs null ou autre.
verifie le contenu de tes données que tu enregistre par rapport au champs de ta base de donnée, et tiens moi au courant , car il n'y pas de raison que cela ne marche pas
a+, chris
187bundy Messages postés 172 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 10 juin 2004
3 mai 2004 à 16:19
HELLLPPPP !!

Salut chris !

J'ai presque fini mon projet, mais d'un coup j'ai plein de bug sur la fonction 'enregistrer' ... En fait quand on modifie une entrée du datagrid et qu'on fait l'update de la base, ca met aucune erreur, mais ca fait pa d'update du tout ...
Voila le code (pourtant copié sur ta source !!)

Private Sub save_Click(baratin ...) Handles save.Click
MajBase(Adapter, "liste")
End Sub


Private Sub MajBase(ByVal Adapter As OleDbDataAdapter, ByVal table As String)
Connection.Open()
Dim CmdBuild As OleDbCommandBuilder
CmdBuild = New OleDb.OleDbCommandBuilder(Adapter)
Adapter.UpdateCommand = CmdBuild.GetUpdateCommand()
Adapter.Update(DtSet, table)
Connection.Close()
End Sub

Aide moi stp ;-))

++
187
tresorsdevie Messages postés 135 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 20 juillet 2013
27 avril 2004 à 13:00
un grand merci pour tes commentaires, ca au moins c'est de la motivation!

j'ai fait un tut la dessus, je le mettrait quand j'aurais un moment
a+++
chris
187bundy Messages postés 172 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 10 juin 2004
27 avril 2004 à 10:54
J'ai essayé de voter plusieurs fois pour faire monter la moyenne, mais y zon pa voulu ;-)
Franchement, des sources comme ça, j'en veux par dizaines ... Je conseille celle ci à TOUS CEUX qui veulent se mettre aux bases de données.
=> très complète, très bien commentée, elle marche bien ... tout kôa !
12/10

187
187bundy Messages postés 172 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 10 juin 2004
27 avril 2004 à 08:23
Merci d'avoir répondu... En fait je commencais vraiment a desespérer avec mon pb, mais ct tout con : j'avais réglé la taille limite des champs à 50 dans ma base access alors que mon code générait une chaine de 51 caractère ;-)
J'ai poussé la limite à 150 et non pb !

Merci bcp pour ton code, sans lui j'en serait loin dans mon projet !!!

187
tresorsdevie Messages postés 135 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 20 juillet 2013
26 avril 2004 à 21:01
salut, tu peut nous decrire ton erreur stp
a+ chris
187bundy Messages postés 172 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 10 juin 2004
26 avril 2004 à 11:27
PS : je t'ai mis 10/10 ;-)

187
187bundy Messages postés 172 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 10 juin 2004
26 avril 2004 à 11:26
HEEELLLPPP !!

J'ai utilisé ta source pour créer un prog avec une bdd, et tout allait bien... jusqu'à l'Update du dataset vers la base access :-(

Connection.Open()
Dim CmdBuild As OleDbCommandBuilder
CmdBuild = New OleDb.OleDbCommandBuilder(Adaptsave)
Adaptsave.UpdateCommand = CmdBuild.GetUpdateCommand()
Adaptsave.Update(DtSet, "gamme") => ERREUR ICI
Connection.Close()

NB : J'utilise AccessXP ...

Quelqu'un peut il m'aider ????
Merci.
187
187bundy Messages postés 172 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 10 juin 2004
15 avril 2004 à 17:04
Bravo. Franchement Bravo et merci. Très clair, très complet ... Exactement ce qu'il me fallait !!! Si je trouve un bug je te le signale.

Merci encore !!!
tresorsdevie Messages postés 135 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 20 juillet 2013
2 oct. 2003 à 14:46
salut,
tout d'abord merci,

je n'ai pas fait de gestion d'erreur, ni de conrole de validation car j'ai realiser ce petit prog juste pour vous donner un exemple de gestion de bdd access avec vb.net.
a vous de l'ameliorer!
a+, chris
cs_Napster Messages postés 76 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 19 septembre 2009
2 oct. 2003 à 14:28
salut , ben il es bien pour le moment je voie que ya pas de bug. tbien fait 10/10 , tres bien Napster(the Italian Job) .
Rejoignez-nous