lolo_momo
Messages postés17Date d'inscriptionmercredi 28 février 2007StatutMembreDernière intervention24 juillet 2007
-
3 juil. 2007 à 08:43
lolo_momo
Messages postés17Date d'inscriptionmercredi 28 février 2007StatutMembreDernière intervention24 juillet 2007
-
3 juil. 2007 à 11:02
Bonjour tout le monde !
Mon probléme, c'est que je suis obligé de concevoir une seule forme qui prend en charge la suppression, l'ajout, la modification, la recherche ... etc pour une seule table horizontale qui comporte prés de 40 colonnes et une dizaine de ligne.
Chaque ligne représente un commercial et les 40 colonnes determinent en gros leurs priviléges, leurs clients et quelques information personnelles et c'est surtout les privilléges qui prédominent.
A part l'utilisation des controles standards qui faciliteraient le travail,
quels conseils ou astuces pouvez vous me donnez afin d'arriver a mon but ?
Existe-t-il une documentation précise qui pourrait me renseigner sur ce probléme ?
J'ai deja quelques connaissance en vb6 puisque j'ai effectué un mini projet a l'aide de cet outil
mais la j'ai besoin de travailler avec vb.net 2003.
Merci beaucoup de votre aide. [derniermoteur.aspx ]
lolo_momo
Messages postés17Date d'inscriptionmercredi 28 février 2007StatutMembreDernière intervention24 juillet 2007 3 juil. 2007 à 09:02
Plus de precision :
Pour la base de donnees, j'utilise microsoft server 2000 et je ne peux pas faire eclater la table ; c'est la ou se situe mon probleme, je doit gerer cette table sans l'eclater !
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 3 juil. 2007 à 09:10
Bonjour,
Je crois comprendre que tu veux faire un "truc" à la manière d'informix, c'est çà ?
C'est là un long travail...
Je l'ai accompli sous VB6 il y a quelques années.
J'ai en ce qui me concerne choisi une form composée principalement de labels (pour y voir bien clair), de textboxes (puisque l'utilisateur devra s'en servir pour ses requêtes) et de menus (pour passer d'une action à l'autre - ajout - modification, enquêtes, suppressions, etc...)
C'est un long travail qui te demandera de ne jamais "perdre le nord", notamment en ce qui concerne la "constructions" des requêtes. Il va à ce propos te falloir penser à un fichier d'aide complet (l'utilisateur en aura sacrément besoin) ainsi qu'à une stratégie de contrôle de syntaxe de la requête afin que l'utilisateur soit immédiatement alerté, lorsqu'il définit ses conditions pour chaque champ, d'une erreur d'expression éventuelle.
Puisque tu prends ce chemin fort honorable : pense à profiter de VB pour inclure, en liaison avec tes textboxes, quelques petits trucs (du genre obligatoire si..., suivant si..., à sauter si... etc...)
Tu peux avoir intérêt à préparer une "matrice" vierge et à la documenter. Celà te permettra ensuite, en observant une discipline, d'utiliser facilmement la chose en te contentant de modifier le nombre de textboxwes en fonction (et dans le même ordre) du nombre de champs. Sous VB6, la chose m'a été facilitée du fait de la grande agilité de gestion de groupes de contrôles indéxés. Ce sera moins aisé, je pense, avec VB.Net.
Pense également à compliquer tes enquêtes et à ce qu'il faut, par exemple, mettre en oeuvre pour que l'utilisateur puisse en faire facilement en dépit de leur complexité apparente (le pense aux OU globaux, entre autres choses...)
Pense enfin à :
- permettre le traitement global sur un recorset issu d'une requête
- gérer un historique temporaire des gestes (à mettre en mémoire) pour permettre à l'utilisateur d'annuler au besoin telle ou telle autre de ses actions précédentes ....
Voilà... il y aurait bien plus à dire, mais je pense que tu en as déjà une bonne idée.
Bon courage et amitiés.
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 3 juil. 2007 à 10:17
Re...
Bon,
Il me parait important de te laisser faire seul et à ta manière ce travail là...
Il est par contre une tâche idiote mais accaparante (et qui n'a pas grand chose à voir avec le développement à proprement parler) dont je peux te soulager, si tu le souhaites :
Le texte d'aide aux requêtes à destination de l'utilisateur.
Si tu le souhaites : je te donne le mien, que tu pourras toujours modifier à ton goût, au besoin.
Quant tu auras suffisamment avancé dans ta tâche, je pourrais également te donner les principaux éléments de la construction de la requête à l'aide des saisies de l'utilisateur (mais celà : plus tard... quand sera venu le moment).
Question du moment : souhaites-tu pour l'instant ce texte d'aide ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 3 juil. 2007 à 10:55
Voilà donc :
Mon copier/coller rique de bousculer un peu me formatage (qu'il te faudra alors rétablir avec le bloc-notes
Il s'agit là du texte en Français Si tu fais une appli multiligue et que tu souhaites avoir également la chose en Espagnol et en Anglais, tu dis (j'ai fait la mienne en ces 3 langues)
LISEZ-MOI (Texte déroulant) PUIS TERMINEZ EN CLIQUANT OU APPUYANT SUR N'IMPORTE QUELLE TOUCHE
====>>> LES CARACTERES SPECIAUX suivants sont utilisables dans les critères de recherche :
* remplace toute chaîne de caractères ? remplace tout caractère(alphabétique ou chiffre) unique
# remplace n'importe quel chiffre unique (de 0 à 9)
====>>> LES DATES doivent, dans les requêtes, revêtir la forme jj-mm-aa
Le s formes jj mm aa, et jj/mm/aa, satisfaisantes dans la plupart des cas, ne sont pas tolérées dans celui de l'expression
<expr1 expr2> (voir plus bas). Il est dans ces condions préférable d'exprimer systématiquement les dates sous la forme jj-mm-aa
====>>> PLAGES DE CARACTERES entre crochets [ ] :
une plage est définie par un caractère de début et un caractère de fin, séparés par le signe -.
Le caractère de début doit être plus petit que le caractère de fin. EXEMPLES : [P-U] signifie tout caractère compris entre P et U -
[3-9] signifie tout caractère compris entre 3 et 9. Il est précisé que les caractères spéciaux *, [, #, ], et ? ne peuvent figurer à
l'intérieur d'une plage de caractères
Outre les plages ainsi définies par 2 caractères séparés par le signe -, on peut définir une liste de caractères entre crochets.
Ainsi [AzE] signifie le caractère A ou le caractère z ou le caractère E.
Si la plage entre crochets est précédée du signe !, cela veut dire qu'elle concerne tout caractère non contenu dans la plage
EXEMPLES : [!C-E] signifie tout caractère qui n'est ni C, ni D, ni E et [!AzE] signifie tout caractère qui n'est ni un A, ni un z,
ni un E.
Si un caractère à rechercher est un caractère spécial, il convient de le mettre lui même entre crochets.
(Exemple : a[*]b trouvera a*b, alors que a*c trouverait tout ce qui commence par a et se termine par c)
TOUTES LES COMBINAISONS DE CHAINES, DE CARACTERES SPECIAUX ET DE PLAGES DE
CARACTERES SONT PERMISES DANS LES ENQUETES
====>>> + exprime que le champ en cause DOIT NECESSAIREMENT CONTENIR UNE DONNEE
- exprime que le champ en cause DOIT NECESSAIREMENT ETRE VIDE
Le critère - (champ vide) PEUT ETRE CONJUGUE avec des critères OU (voir plus bas). Ex : *inconnu*\-
recherchera les champs contenant la chaîne "inconnu" ou qui sont vides
====>>> Les COMPARATEURS LOGIQUES < (plus petit que), <= (plus petit ou égal à), > (plus grand que),
>= (plus grand ou égal à) et <>(différent de) sont également disponibles.
EXEMPLES ci-après :
<= 900 recherche tout ce qui est plus petit ou égal à 900
> A recherche tout ce qui est plus grand que A (mais pas seulement tout ce qui commence par une lettre supérieure à
A puisque Aa, Az sont supérieurs à A ). Pour rechercher ce qui commence au moins par la lettre B, il vaut mieux
utiliser > Az ou, mieux encore, >= B
<> Dupont recherche tout ce qui n'est pas Dupont
IMPORTANT : Lorsque ces comparateurs sont utilisés pour un champ, l'enquête sur ce champ doit se limiter à cette comparaison
et ne saurait souffrir l'emploi des caractères spéciaux *, #, [, ? et ], à quelque endroit que ce soit dans l'expression de tels critères.
L'ordre croissant des caractères est celui de leur valeur décimale. Ainsi, celui des chiffre est 0,1,2,3,4,5,6,7,8,9
et celui des caractères alphabétiques est A,B,C,......Y,Z,a,b,c,.....,y,z,à,...é...
====>>> <Expr1 Expr2> = ENTRE LES VALEURS OU CHAINES Expr1 et Expr2.
Par Exemple : <DU FAN> trouvera DUPONT, DURAND et FAILLE mais ignorera DENIS, ROGER et FARINA (puisque
FARINA a une valeur supérieure à FAN)
De même <99 201> trouvera 101, 183 et 200 mais ignorera 95, 202 et 800
La condition inverse (QUI N'EST PAS COMPRIS ENTRE Expr1 et Expr2) s'exprime par le signe ! placé devant Expr1.
Par exemple : <!DOR DUR> ignorera DORE(PUISQUE DORE est plus grand que DOR) ou DUPIN (puisque DUPIN est plus
petit que DUR) mais trouvera DOME (plus petit que DOR) ou DUVAL (plus grand que DUR)
IMPORTANT : 1) expr1 et Expr2 doivent être séparées par un espace
2) L'emploi des caractères spéciaux *, # et ? n'est pas alliable à cette expression (jusqu'au prochain ou (/) ou et (&)
====>>> AUCUN CRITERE = champ pouvant contenir n'importe quelle chaine ou pouvant être vide
(A noter qu'une enquête déclenchée sans aucun critère pour l'ensemble des champs serait inutile puisqu'elle aboutirait à une
sélection déjà disponible à l'écran : tous les enregistrements)
====>>> Critères ET et OU exprimés pour un champ
Le crière ET s'exprime par le signe & Le critère Ou s'exprime par le signe /
Ces signes doivent séparer les expressions d'autres critères
Exemples : *ab*/co/ad?? signifie que seront sélectionnés les articles dont ce champ contient la chaîne ab ou n'est composé
que de la chaîne co ou est composé de la chaîne ad suivie de deux seuls caractères .
<M O>&*S/R*/ = tout ce qui commence par un M, se termine par un S, et est plus petit que ME ou plus grand que MI.
====>>> LES EXPRESSIONS COMPLEXES (Imbrications de ET et de OU)
Il vous est possible de générer, sur chaque champ, des enquêtes pouvant être très complexes, par utilisation conjuguée de tous
les outils, définis ci-dessus, à la condition toutefois de bien comprendre la hiérarchie du OU et du ET, du ET OU et du OU ET.
Cette hiérarchie devra dans la plupart des cas être clarifiée par l'emploi de parenthèses permettant d'exprimer si l'on veut
établir des conditions ET dans une condition OU ou des conditions OU dans une condition ET.
IL DOIT ETRE CLAIR QUE DE TELLES EXPRESSIONS NECESSITENT UNE IDEE NON MOINS CLAIRE DE CE QUE L'ON
VEUT EXPRIMER ! LES EXEMPLES CI-DESSOUS SONT PARLANTS :
(<MA MO>&(*E?/*OS))/<RA RO> = ce qui est compris entre MA et MO et dont l'avant-dernière lettre est E ou les 2 dernières
lettres sont OS, mais aussi tout ce qui est compris entre RA et RO
<MA MO>&*E?/(*OS/<RA RO>) = ce qui est compris entre MA et MO avec E pour avant-dernière lettre, mais aussi tout ce qui
se termine par OS ainsi que tout ce qui est compris entre RA et RO
(<!MA MO>&(*E?/*OS))/!RA RO> = ce qui, n'étant pas compris entre MA et MO a pour avant dernière lettre est un E, ou se
termine par OS, ainsi que ce qui est compris entre RA et RO
<MA MO>&(*E?/*OS/<RA RO>) = ce qui, étant compris entre MA et MO, a pour avant dernière-lettre E, ou se termine par OS
ou encore est compris entre RA et RO (contradictoire puisqu'une chaine ne peut être à la
fois comprise entre MA et MO et entre RA et RO !)
Toutes les expressions convenablement imbriquées à l'aide de parenthèses, qui peuvent être multiples, (parenthèses dans des
parenthèses) sont permises.
====>>> LES "OU" GLOBAUX
Dans certains cas de figure, les requêtes peuvent nécessiter des "OU" autres que ceux exprimés dans un champ. Imaginez par
exemple que vous vouliez rechercher les médecins d'un quartier ou les chirurgiens d'un autre quartier !
Cette possibilité vous est offerte : lorsque vous exécuter une sélection, une boite de dialogue vous permet de choisir de
compléter par une sélection différente répondant au principe suivant :
sélection1 OU sélection2 OU ........ OU sélection n
====>>> C OMMENT EXPRIMER LES TRIS ? :
Lorsque vous demandez l'exécution de votre sélection, une boite de dialogue vous offre la possibilité de procéder à un tri des
résultats. Si vous choisissez cette fonction, vous devrez définir la hiérarchie de votre tri en plaçant, dans les champs concernés, un
chiffre représentant cette hiérarchie (1 pour le 1er tri, 2 pour le tri secondaire dans le 1er tri, etc...)
un chiffre non suivi d'un signe provoquera un tri ascendant sur ce champ
un chiffre suivi du signe - provoquera un tri descendant
VOUS NE POUVEZ BIEN SUR PAS DONNER LE MEME RANG DE TRI A PLUSIEURS CHAMPS. Si toutefois vous donnez
le rang 1 à un champ et le rang 3 à un autre champ sans avoir attribué un rang 2, l'outil comprendra que le 1er tri est à faire sur le
champ de rang 1 et le 2ème sur le champ de rang 3 (Il traitera les rangs dans leur ordre croissant sans se préoccuper des
solutions de continuité pouvant résulter d'une étourderie éventuelle)
Il est clair que tu peux choisir d'autres signes que les miens (j'ai choisi les miens en fonction des connaissances les plus fréquemment acquises internationalement)
Ce texte ne devraiot pas seulement t'éviter une rédaction. Sa lecture, déjà, est assez révêlatrice de mécanismes.
Amitiés et bon travail.