Gérer une table volumineuse dans une seule forme [Résolu]

Signaler
Messages postés
17
Date d'inscription
mercredi 28 février 2007
Statut
Membre
Dernière intervention
24 juillet 2007
-
Messages postés
17
Date d'inscription
mercredi 28 février 2007
Statut
Membre
Dernière intervention
24 juillet 2007
-
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 ]

9 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Pour ma part je te conseillerai d'éclater ta table en plusieurs tables et de faire des relations dans access....Une idée comme une autre...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
1141
Date d'inscription
mercredi 7 mars 2007
Statut
Membre
Dernière intervention
19 septembre 2007
1
Salut, je ne comprend pas bien ton post :

Tu veux des conseils, OK mais pour MON cas, je ne peux rien te conseiller si tu n'as pas deja fait quelques choses (améliorations quoi).

Secondo, tu parles d'un pb mais je vois pas lequel. En quoi il est génant d'avoir une table avec 40 champs (il doit y avoir pire que ca).

Tu sais manipuler des bases de données via VB.net ou pas ? Car mis a part cela, je vois pas de difficultés APPARANTES.
Messages postés
17
Date d'inscription
mercredi 28 février 2007
Statut
Membre
Dernière intervention
24 juillet 2007

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 !
 
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
23
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.
Messages postés
17
Date d'inscription
mercredi 28 février 2007
Statut
Membre
Dernière intervention
24 juillet 2007

Merci beaucoup !
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
23
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 ?
Messages postés
17
Date d'inscription
mercredi 28 février 2007
Statut
Membre
Dernière intervention
24 juillet 2007

Toute aide sera la bienvenue !
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
23
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.
Messages postés
17
Date d'inscription
mercredi 28 février 2007
Statut
Membre
Dernière intervention
24 juillet 2007

merci  !