mettre à jour une BD depuis un fichier XLS
Hors ligneSalva Le 19/05/2006 à 11:02 Profil de Salva Configuration de Salva

Bonjour,

j'ai un base de donné qui contient des enregistrements avec comme champ des noms de ville avec leur code postal.
J'ai une feuille excel qui contient les même nom de ville et leur code insee

je veux dans ma BD créer un champ supplémentaire qui contiendra les code INSEE correspondant.

Comment puis je faire pour automatiser cette tache ?

A savoir qu'il y a peut-être des différences entre certaines villes à cause de l'accentuation ou de la présence ou non de trait d'union
ou encore de majuscule. Mais je veux bien me taper queques ligne à la mains si le plus gros se met à jour automatiquement.

Petite précision après vérification, c'est fichier csv pas xls

Merci

Salutations.
Hors lignePhilippe0910 Le 21/05/2006 à 15:15 Profil de Philippe0910 Configuration de Philippe0910

bonjour,
excel est un outil sans doute capable de regler votre probleme de BD
mais avec quel programme tentez vous d'exploiter la dite BD ? est-ce ACCES ?
Enfi ce n'est pas primordial.
la solution consiste toujours a utiliser l'outils que vous maitrsez le mieux pour réaliser votre travail.
Moi, c'est Excel !

1 Votre premier travail va consister a envoyer sous excel la BD, pour cela 2 possibilités
   1,1- vous "exportez" la BD au format xls, ou csv ou tout autre geré par excel
   1,2 - vous ouvrez excel et tentez d'ouvrir via fichier ouvrir, votre BD Excel est capable d'ouvrir pratiquement toutes les BD


2 Vous ouvrez egalement avec excel votre fichier xls (Notez au passage que je vous conseil d'ouvrir le fichier csv avec excel et de "l'enregistrer sous" au format xls
histoire de travailler de manière simple et cohérente.)

3 NB, précision sur excel, sous excel parle de feuilles de calculs, une bd n'est rien d'autre qu'une feuille avec des enregistrements biens ordonnés,
la premiere ligne de la feuille doit donc porter les noms de champs, 1 par colonne...Par ailleurs, ce que vous appelez le fichier csv ou xls est une BD si il contient des enregistrements bien ordonnés (cf cremarque précédente)

4 je vous conseil  maintenant de placer les 2 feuilles sous le meme classeur. Pour ca placez vous en bas sur l'onglet de l'une des 2 bases, clic droit /déplacer vers, vous indiquez l'autre classeur ouvert à l'écran, et le tour est joué.

5 Maintenant vous pouvez commencer à fabriquer le fichier qui vous interesse .
   pour cela ecel dispose de bcp de possibilités, on appel ca des fonctions, elles sont rangées par catégories, et en appuyant shift et F3 en m^me temps depuis une cellule quelconque les catégories apparaissent...
Meme si pouvez etre tenté de cercher la solution dans la rubrique BD, c'est dans la rubrique RECHERCHE, que se trouve la fonction que je vous recommande

il s'agit de la fonction RECHERCHEV(critère, base, colonne, 0) lisez bien comment ca marche, faite un test avec quelques données et lancez vous
il faut probablement quelques 30 secondes tout compris pour faire le travail des que vous aurez compris le fonctionnement de la fonction recherchev.

5,1 vous vous positionnez sur la feuille, la BD qui recevra le champs complémentaire, Vous tapez le nom du champ en tete de colonne immédiatement à droite des autres colonne
5,2 sur la première cellule directement en dessous du nom de champs vous entrez la foncion recherchev (schift et F3 etc....)
   si vous y arrivez le résultat apparait pour le premier enregistrement dans la cellule dans laquelle vous venez de taper la fonction

5,3 il ne reste qu'a copie cette formule de haut en bas face à tous les enregistrements...(la encore il y a pleins d trucs pour faire ca en 2 secondes)
mais, bon, le plus simple est déja de tenter le coup avec la premiere donnée,
une fois a ce stade vous me contactez eventuellement pour la suite.

6 JOKER , vous m'adressez les 2 fichiers et je vous les retoure mixés (clin d'oeil)

bon courage
Hors ligneSalva Le 21/05/2006 à 16:20 Profil de Salva Configuration de Salva

Bonjour,

Merci pour ces conseils.
Je vais essayer tout cela sur une autre base parce que là j'ai déjà fait à la mano sur la 1er.

J'explique quand même comment, j'ai fait.
J'ai donc exporté ma base (elle est issue du serveur de mon site sous Phpadmin) au format csv.

Je l'ai ouverte dans excel et j'ai ouvert également l'autre fichier xls. J'ai fait en sorte que les deux classeur soient visible en même temps et j'ai fait du copier/coller.
Pas très rapide mais bon je n'avait pas encore ta solution.

Par contre je rencontre un autre problème. Maintenant que j'ai ma base en .csv à jour, je voudrais la remettre sur mon serveur.
Et la ca marche pas.
D'abord dans Phpadmin il me propose d'uploader des fichier .txt (ca sa marche très bien) et pas .csv ou .xls.

Alors j'ai essayé autrement en faisant une mise à jour. la on peut spécifier des séparateurs comme ';'.
J'ai donc essayé d'importer toujours mon fichier .csv mais sans succès.

Je ne dois pas avoir tout compris, je ne maitrise pas trop phpadmin.

Un chti conseil ?

Merci

@+
Hors ligneAsquel Le 22/05/2006 à 14:11 Profil de Asquel Configuration de Asquel

moi perso j'aurais exporté en *xml avec un ptit vbscript et j'aurais importé mon xml dans la base de donnée ... jtrouve ca plus que la gestion des bd (merdique) de excel
Hors lignePhilippe0910 Le 28/05/2006 à 21:37 Profil de Philippe0910 Configuration de Philippe0910

Bon, puisque la nouvelle base csv est prête, avez-vous essayé
Fichier/enregistrersous/ et choisissez dans la case type de Fichier .txt ou autre chose qui convienne..

PS pour l'internaute  au pseudo "asquel" : vous avez peut etre raison, on ne saura jamais, votre réponse est trop technique, ici le but est de s'adapter au niveau et aux outils de celui qui pose la question, aussi *xml et vbscript ca fait frime mais c'est du charabia d'informaticien...avant d'écrire "Japonais", assurez vous que votre lecteur le comprend..Cett précision mis à part, le problème initialement exposé se résoud très bien avec Access, encore faut-il le "possèder" c'est à dire détenir le soft, la licence, et savoir s'en servir ; donc hors sujet...
Hors ligneSalva Le 02/06/2006 à 23:24 Profil de Salva Configuration de Salva

Bonjour,

J'ai essayé à nouveau mais sans succès.
J'ai donc enregistré le fichier CSV au format texte et j'ai rajouté un ; après chaque numéro INSEE. Le fichier se présente donc comme ca :
57001;
57002;
57003;
etc, etc

Dans ma base j'ai rajouté une colone INSEE. Je fait donc "insérer des données provenant d'un fichier texte dans la table"
j'indique donc l'emplacement du fichier txt, le caractére de fin de ligne donc ; et le nom de la colone soit INSEE et j'execute.
La je tombe sur une autre fenetre ou je peux lire : Nombre d'enregistrements insérés : 768 (traitement: 0.0115 sec.)
J'en conclu que le fichier a bien été importé.
Mais lorsque je vais voir dans la colone INSEE, elle est vide.
Je ne comprend pas.

Merci de votre aide.

Salutations.
Hors ligneSalva Le 04/06/2006 à 00:49 Profil de Salva Configuration de Salva

Bonjour,

Petite precision,

Après vérification, j'ai constaté que les données avait bien été chargé dans ma base, mais pas la ou je voulais.
En fait il fallait que les données soient chargés en partant du 1er enregistrement, mais ils se sont rajouté à la fin.
Du coup comme j'ai fait plusieurs essais avec un peu près 800 enregistrements ma base a considérablement grossie
(Avant 29 pages, maintenant 280 pages).

Je ne dois donc pas être loin de la solution.

Si vous avez d'autre idées ?

Salutations.
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels