GESTION SIMPLE D'UNE BASE DE DONNÉES ACCESS EN ADO POUR DÉBUTANT
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 2010
-
26 juil. 2005 à 03:49
Utilisateur anonyme -
28 avril 2006 à 15:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
merci pour les appréciations et
j'avais penser à intercepter les données saisies
par l'utilisateur mais je n'ais pas encore pris le temps de le faire...(prochaine mise à jour)
et merci aux personnes qui ont mis une note
Salut
Doro
nairolf_88
Messages postés11Date d'inscriptionmardi 13 avril 2004StatutMembreDernière intervention 8 mars 2006 27 sept. 2005 à 15:22
bonne source !
Elle m'a permis de mieux comprendre l'interaction entre VB et une base de données Access. Le code est clair et bien commenté, mais je pense que tu devrais testé la valité les saisis de l'utilisateur car par exemple dans le cas ou l'utilisateur saisi une date incorrect dans le champ date de naissance ton application planté en donnant l'erreur "Le type ne corresponds pas".
je pense que tu as du te trompe parce que ya pas de msflexgrid dans ma source mais sinon regarde ce code source dans une des forms il y a une msflexgrid et il y a un module pour l'imprimer
infostr
Messages postés1Date d'inscriptionlundi 8 août 2005StatutMembreDernière intervention 8 août 2005 8 août 2005 à 23:10
Salut,
Je n'arrive pas à trouver la méthode par laquelle
je pourrai remplir le MSFlexGrid manuellement, enregistrer et imprimer les pages sans apparition d'aucun objet sur mon imprimé.
salut zlub,
les seules modifications que je n'ai pas pu appor´ter concerne ton dernier post,pourrais tu me dire ce qu'il faut que je mettes dans la procédure next_tab s'il te plaît
si tu as le temps
merci d'avance
a+
doro
salut
pour eps32hay je suis contente que ça puisse t'aider et je le rappelle je tiens ce code (la requete) de jeff
et pour zlub je sais que tu as la critique facile c'est pour cela que j'ai dit :
"mais venant de toi je peux l'accepter "
a+
doro
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20109 26 juil. 2005 à 18:28
Salut,
Pour un début c'est bien ... juste que j'ai pas le compliment facil et que je suis assez critique... mais je pense que ce sont des remarques constructices...
bon dev,
Zlub
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20109 26 juil. 2005 à 18:26
Salut Doro
"Pas tres flatteur" si au contraire : d'une maniere générale j'ai pas le compliment facil, j'suis un peu trop critique :) Mais je ne pense pas critiquer pour "casser", j'espere que c'est au contraire constructif.... Pour un début c'est bien (hou là je me lâche)
Bon dev,
Zlub
EPS32HAY
Messages postés100Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention 1 février 2009 26 juil. 2005 à 15:46
Salut DORO81079,
Moi j'aime bien ton code, de plus il va m'aider à creer une requete de recherche dans ma base de données.
salut zlub,
pas tres flatteur mais venant de toi je peux l'accepter sinon
pour
1-fainéantise(c'est pas bien je sais)
2 et 3- tu as raison mais je savais pas (débutante)
4- je n'ai pas mis tabstop a true pour que les textbox soit gérer par la touche entrer (je préfère)et les boutons par tab
5- pour éviter de les mettres dans chaques procédures(voir 1)
6- voir 2 et 3
et merci pour les appréciations et pour la note
et petite précision quand je dis derniere dans mon premier commentaire je parle des critiques gratuite et pas du post de zlub
voilà
salut doro
j'ai oublié de préciser que toute critique en vue d'amélioration
ou même gratuite sont les bienvenues même si pour la derniere elle ne flate pas mon ego
doro
Zlub
Messages postés809Date d'inscriptionmercredi 11 octobre 2000StatutMembreDernière intervention29 septembre 20109 26 juil. 2005 à 03:49
C'est pas mal... déjà ça marche, y'a de bonnes idées et fonctionnalitées. Un peu léger en commentaires quoi que çareste clair... Coté interface, c'est propre (c'est comme un bon point)
Un autre bon point pour les Set xx = Nothing. Un bon point à nouveau, tes controles sont nommés proprement... et ça perso Z'aime beaucoup. Gestion des ereeurs On error, plutôt bien (voir On Error goto )
Bon now critique :
1) Identation: pourquoi vous alignez tous vos codes à gauche ... c'est pas lisible, faites des tabulations, des sauts de lignes ... sinon si on suit votre logique pourquoi ne pas tapper le code sur une ligne !! (bon ça c'est dit, mais t'es loin d'être la seule) Le pire c'est cmdrecherche_Click avec des If imbriqués ... qui appartient à qui ?
2) à la place de Dim tb1 As New ADODB.Recordset, tu devrais faire
Dim tb1 As ADODB.Recordset
Set tb1 = New ADODB.Recordset
faire deux choses à la fois déclarer et instancier c'est pas top. D'autant que tu ne peux pas tester si l'objet est bien instancier..
3) select case :
Select Case msg1
Case vbYes
Unload Me
Case vbNo
Cancel = 1
End Select
c'est un peu abusif, tu peux tout remplacer par un If (et pour te faire plaisir en une ligne)
If msg1 vbNo Then Cancel 1
voir même
If MsgBox("Voulez-vous vraiment fermer le carnet d'adresses ?", vbQuestion + vbYesNo)vbNo Then Cancel 1
4) Pour le confort, tu devrais mettre Tabstop à True pour tout les elements où tu veux donner acces avec TAB et définir TabIndex (permet de définir l'endroit où le focus doit aller lors d'un TAB. La valeur du Tabindex doit être unique.) Genre txtNom (tabindex 0) txt txtprenom (tabindex 1) ... Du coups une fois que tous est bien numéroté sur les KeyPress tu peux faire appel à Call Sub Next_tab(KeyAscii) au lieu de nommer explicitement les textbox + setfocus
Public Sub Next_tab(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeys "{TAB}" ' simuler le TAB
KeyAscii = 0 'supprimer le TAB lorsque le focus est arrivé
End If
End Sub
5) Dim msg1, msg2 As String
En public pourquoi faire ? autant définir là où tu en as vraiement besoin (unload et cmdrecherche_Click) ou au pire si tu veux laisser en l'état une seule variable suffit.
6) Tes tests à deux états tu peux les écrire plus simplement :
txtdep.Text = IIf( IsNull(tb![Département]) , "", tb![Département])
IIf( test, valeur_renvoyé_si_test_true,valeur_renvoyé_si_test_false)
J'aurais mis 6.5 mais bon va pour un 7/10 :)
voilà, j'espere que ça va t'aider ... Tu es en bonne voie, donc continues et bon dev
28 avril 2006 à 15:24
et ben de rien ying et pour zogade je vais regarder ça....
salut
doro
14 mars 2006 à 15:21
8 mars 2006 à 00:22
25 oct. 2005 à 20:44
merci pour les appréciations et
j'avais penser à intercepter les données saisies
par l'utilisateur mais je n'ais pas encore pris le temps de le faire...(prochaine mise à jour)
et merci aux personnes qui ont mis une note
Salut
Doro
27 sept. 2005 à 15:22
Elle m'a permis de mieux comprendre l'interaction entre VB et une base de données Access. Le code est clair et bien commenté, mais je pense que tu devrais testé la valité les saisis de l'utilisateur car par exemple dans le cas ou l'utilisateur saisi une date incorrect dans le champ date de naissance ton application planté en donnant l'erreur "Le type ne corresponds pas".
@++ nairolf
22 sept. 2005 à 07:06
salut
doro
17 sept. 2005 à 22:45
17 sept. 2005 à 16:50
9 août 2005 à 05:29
je pense que tu as du te trompe parce que ya pas de msflexgrid dans ma source mais sinon regarde ce code source dans une des forms il y a une msflexgrid et il y a un module pour l'imprimer
http://www.vbfrance.com/code.aspx?ID=3823
ca peut t'aider
salut doro
8 août 2005 à 23:10
Je n'arrive pas à trouver la méthode par laquelle
je pourrai remplir le MSFlexGrid manuellement, enregistrer et imprimer les pages sans apparition d'aucun objet sur mon imprimé.
infostr
30 juil. 2005 à 17:27
les seules modifications que je n'ai pas pu appor´ter concerne ton dernier post,pourrais tu me dire ce qu'il faut que je mettes dans la procédure next_tab s'il te plaît
si tu as le temps
merci d'avance
a+
doro
26 juil. 2005 à 20:36
je prend note c'est mieux merci
a+
doro
26 juil. 2005 à 19:44
Petite précision pour tabstop
Si tu les défini à true et que tu donnes l'ordre entre elles, tu peux mettre dans les KeyPress des textbox
Call Sub Next_tab(KeyAscii)
qui donneras le focus tout seul à l'élement suivant lorsque l'utilisateur press Enter
26 juil. 2005 à 19:39
pour eps32hay je suis contente que ça puisse t'aider et je le rappelle je tiens ce code (la requete) de jeff
et pour zlub je sais que tu as la critique facile c'est pour cela que j'ai dit :
"mais venant de toi je peux l'accepter "
a+
doro
26 juil. 2005 à 18:28
Pour un début c'est bien ... juste que j'ai pas le compliment facil et que je suis assez critique... mais je pense que ce sont des remarques constructices...
bon dev,
Zlub
26 juil. 2005 à 18:26
"Pas tres flatteur" si au contraire : d'une maniere générale j'ai pas le compliment facil, j'suis un peu trop critique :) Mais je ne pense pas critiquer pour "casser", j'espere que c'est au contraire constructif.... Pour un début c'est bien (hou là je me lâche)
Bon dev,
Zlub
26 juil. 2005 à 15:46
Moi j'aime bien ton code, de plus il va m'aider à creer une requete de recherche dans ma base de données.
Merci Beaucoup.
26 juil. 2005 à 11:10
pas tres flatteur mais venant de toi je peux l'accepter sinon
pour
1-fainéantise(c'est pas bien je sais)
2 et 3- tu as raison mais je savais pas (débutante)
4- je n'ai pas mis tabstop a true pour que les textbox soit gérer par la touche entrer (je préfère)et les boutons par tab
5- pour éviter de les mettres dans chaques procédures(voir 1)
6- voir 2 et 3
et merci pour les appréciations et pour la note
et petite précision quand je dis derniere dans mon premier commentaire je parle des critiques gratuite et pas du post de zlub
voilà
salut doro
26 juil. 2005 à 10:53
ou même gratuite sont les bienvenues même si pour la derniere elle ne flate pas mon ego
doro
26 juil. 2005 à 03:49
Un autre bon point pour les Set xx = Nothing. Un bon point à nouveau, tes controles sont nommés proprement... et ça perso Z'aime beaucoup. Gestion des ereeurs On error, plutôt bien (voir On Error goto )
Bon now critique :
1) Identation: pourquoi vous alignez tous vos codes à gauche ... c'est pas lisible, faites des tabulations, des sauts de lignes ... sinon si on suit votre logique pourquoi ne pas tapper le code sur une ligne !! (bon ça c'est dit, mais t'es loin d'être la seule) Le pire c'est cmdrecherche_Click avec des If imbriqués ... qui appartient à qui ?
2) à la place de Dim tb1 As New ADODB.Recordset, tu devrais faire
Dim tb1 As ADODB.Recordset
Set tb1 = New ADODB.Recordset
faire deux choses à la fois déclarer et instancier c'est pas top. D'autant que tu ne peux pas tester si l'objet est bien instancier..
3) select case :
Select Case msg1
Case vbYes
Unload Me
Case vbNo
Cancel = 1
End Select
c'est un peu abusif, tu peux tout remplacer par un If (et pour te faire plaisir en une ligne)
If msg1 vbNo Then Cancel 1
voir même
If MsgBox("Voulez-vous vraiment fermer le carnet d'adresses ?", vbQuestion + vbYesNo)vbNo Then Cancel 1
4) Pour le confort, tu devrais mettre Tabstop à True pour tout les elements où tu veux donner acces avec TAB et définir TabIndex (permet de définir l'endroit où le focus doit aller lors d'un TAB. La valeur du Tabindex doit être unique.) Genre txtNom (tabindex 0) txt txtprenom (tabindex 1) ... Du coups une fois que tous est bien numéroté sur les KeyPress tu peux faire appel à Call Sub Next_tab(KeyAscii) au lieu de nommer explicitement les textbox + setfocus
Public Sub Next_tab(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeys "{TAB}" ' simuler le TAB
KeyAscii = 0 'supprimer le TAB lorsque le focus est arrivé
End If
End Sub
5) Dim msg1, msg2 As String
En public pourquoi faire ? autant définir là où tu en as vraiement besoin (unload et cmdrecherche_Click) ou au pire si tu veux laisser en l'état une seule variable suffit.
6) Tes tests à deux états tu peux les écrire plus simplement :
txtdep.Text = IIf( IsNull(tb![Département]) , "", tb![Département])
IIf( test, valeur_renvoyé_si_test_true,valeur_renvoyé_si_test_false)
J'aurais mis 6.5 mais bon va pour un 7/10 :)
voilà, j'espere que ça va t'aider ... Tu es en bonne voie, donc continues et bon dev
++
Zlub