Salut à toutes et à tous,
J'ai développé un bdd mais il me manque un module que je n'arrive pas à créer parce que je suis très loin d'être un pro d'access. Je suis tout au plus un utilisateur averti.
J'ai bien cherché sur le net, sur des forums, et sur ce forum avec la recherche, mais je n'ai pas trouvé la solution. Est-ce dû à une mauvaise recherche ? Toujours est-il que j'ai besoin d'aide, aussi je fais appel à vous.
Bon, je vais commencer en essayer de vous faire une "photo" de la situation :
Dans un projet il y a plusieurs secteurs.
Chaque secteur a sa base de donnée propre, à UN endroit sur le serveur (Toutes les bdd de secteurs sont dans le même répertoire, mais ce répertoire varie selon le projet. Il y a donc un répertoire par projet, contenant toutes les bdd des secteurs de ce projet.)
Il y a un grand nombre de bdd, donc je n'envisage pas de faire la procédure à la main (dans le projet actuel il y a 103 bdd, et ce n'est pas le plus gros projet). De plus, ce n'est pas moi qui ferai les importation mais les utilisateurs de la bdd. Il faut donc que ce soit transparent, simple, et ... blindé (qu'il prévienne en cas de pépin et que ce soit fermable par l'utilisateur lambda qui ne connait rien en access).
Les données :
Toutes les mdb ont la même structure. Seules les données sont différentes.
Toutes ont donc une table appelée "Point" et contiennent (entre autre) les champs suivants, dont j'ai besoin :
NoPointNum : Numérique Entier Long Indexé avec doublons Nul non interdit
PointX : Numérique Réel Double Non indexé Nul non interdit
PointY : Numérique Réel Double Non indexé Nul non interdit
PointZ : Numérique Réel Double Non indexé Nul non interdit
PCode : Texte 6 caract Indexé avec doublons nul non interdit chaîne vide autorisée
Vous comprenez qu'il s'agit d'une série de points avec leurs coordonnées en X,Y,Z et d'autres infos.
Dans ma bdd, j'ai une table "PP" qui contient, entre autre :
NrPoint : Numérique Entier Long Indexé avec doublons Nul non interdit
X : Numérique Réel Double Non indexé Nul non interdit
Y : Numérique Réel Double Non indexé Nul non interdit
Z : Numérique Réel Double Non indexé Nul non interdit
PCode : Texte 6 caract Indexé avec doublons nul non interdit chaîne vide autorisée
(Vous constaterez qu'à part les noms, les champs sont identiques)
Le but :
Ouvrir la fenêtre de sélection de fichier en mode multi-choix, afin que l'utilisateur puisse sélectionner une ou plusieurs mdb de secteurs.
Importer les champs utiles (ceux listés ci-dessus) de la table "Point" de chaque mdb choisie dans la table "PP".
Difficultés supplémentaires :
Un point peut se trouver à la frontière de plusieurs secteurs. Ce point sera donc repris dans les mdb de chacun de ces secteurs.
Un point est placé par une personne. Il se peut donc qu'il y ait une erreur dans un point (C'est rare mais ça arrive).
Donc quand on importe un point, il faut vérifier si le point est déjà dans la table "PP". S'il n'y est pas, c'est simple : On l'ajoute. S'il y est déjà, il y a lieu de vérifier que les coordonnées du point soient identiques à la 4ème décimale. Si une des valeurs X, Y ou Z est différente à la 4ème décimale près, il faut un msgbox pour dire que le point nr X extrait de la mdb Y a les coordonnées XYZ alors que le même point dans la table "PP" a les coordonnées ABC. Faut-il écraser le point de la table "PP" ? si oui, on remplace, si non on n'importe pas le point.
Comme vous voyez, il y a pas mal à faire, et ce n'est pas fini, mais c'est le module qui me pose le plus de problème parce que je n'y connais rien en importation, à tel point que je ne sais même pas comment commencer.
Qui peut me donner un coup de main, svp ?
Merci de vos z'avis z'avisés,
Jean-Marc
Partager