Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)
Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/
ehsavoie a peut-être trouvé la solution : ouvrir la base avec Access, aller dans les options et "choisir un nouveau type de tri" : General
Compacter la base et fermer Access
Naturellement, faire tout cela sur une copie de la base.
Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)
Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/
Si je résume, j'ouvre Access, File > option :
Perform a "Compact and Repair Database" on the database. (In Access 2010+ it is located on the "Database Tools" tab of the Ribbon Bar.)
=> Ca je fais comment ? C'est ce qu'on avait déja fait Népomucène ?
Le truc nouveau c'est de changer le type de classement de la base. Cela peut résoudre le problème.C'est ce qu'on avait déja fait Népomucène ?
Pour la petite histoire, les bases de données ont toute une palette de types de classement pour répondre aux besoins de classement locaux.
Ta base actuelle est classée "Français" ce que le driver ne supporte pas.
Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)
Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/
Le changement de format en général est ok, cependant, le compactage de la bdd se met en erreur :
Microsoft Access : L'ordre de tri sélectionné n'est pas pris en charge avec le format de fichier spécifié.
Aussi, les props sont nécessaire au fonctionnement de l'appli mais soit, pour le moment mettons cela de coté.
Avec Access, créé une nouvelle base de données sans aucune table.
Va dans option et met le classement sur "General"
Compacte la base
Toujours dans cette base, importe toute les tables de ta base de production (menu "données externes" -> Access)
Le format devrait être converti.
Essaye ensuite la classe bdddetest avec cette nouvelle base
Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)
Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/
Même erreur à "vide"
Il refuse de compacter une base créée au format "General" ?
Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)
Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/
Désolé du délai, j'étais sur autre chose en même temps
Il refuse effectivement en .mdb par contre ca roule en .accdb
A présent je regarde comment importer une bdd
INFO de la doc officiel Access :
Avant de commencer, voici quelques éléments à prendre en compte :
Access n'importe pas les relations entre les tables, colonnes calculées, les règles de validation, les valeurs par défaut, champs de pièce jointe, champs objet OLE et certaines autres types de données héritées dans l'application web.
Access conservera les recherches. Ainsi si vous avez des tables associées, vérifiez que les relations sont établies en utilisant les champs Liste de choix avant d’importer les tables dans l’application web.
Ça craint si je perd tout ce dont j'ai besoin
Les relations, cela se refait facilement (combien as-tu de tables ? )les relations entre les tables, colonnes calculées, les règles de validation, les valeurs par défaut, champs de pièce jointe, champs objet OLE
Sinon le reste (colonnes calculées, les règles de validation, les valeurs par défaut ...) tu l'as aussi ?
Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)
Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/
Je dispose de 13 tables.
Je suis pas doué pour l'importation ^^
C'est en cours ...
(Le soucis etant que je ne connais pas toutes les relations des tables, je ne me suis pas encore penché sur le problème)
13 tables, ça va encore si tu connais bien le principe des relations dans un SGBD.
Autre chose,
Je comprends bien que la solution d'une base Access a pu être choisie il y a quelques années.
C'est facile à faire et il suffit de placer le fichier dans un dossier partagé quelque part sur le réseau.
S'il n'y a que 2-3 utilisateurs avec un usage n’excédant pas quelques requêtes par jour, ça pouvait passer.
Pourtant, cette solution n'est pas pérenne car elle repose sur :
- la bonne version d'Access à un moment donné
- la bonne version de Java à un moment donné
- la bonne version du driver à un moment donné (qui lui-même repose sur d'autres bibliothèques tierces)
Il suffit d'une incompatibilité à un moment et il faut tout recommencer.
Tout ce qui s'est passé ces derniers jours montre qu'on est obligé de patouiller dans tous les sens pour arriver à faire quelque chose.
En revanche : si tu migres la base Access vers Sql Server Express ou MySql (SGBD gratuits)
alors la connexion se fera par TCP/IP avec un driver maintenu par Microsoft (Sql Server) ou Oracle (MySql)
Bien entendu, il faut installer le logiciel serveur de base de données sur un serveur de la boîte mais au moins là, tu as une solution qui tiendra 10 ans.
Je ne sais pas combien de temps tu as pour remettre le système sur les bons rails mais je pense que cela vaut le coup.
Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)
Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/
Suite à tes arguments et d'une longue discutions avec mon responsable IT, il est convenu d'opter pour une solution gratuite de type MySQL !!!
Nous voilà ouvert à d'autre champ des possibles
Mais alors là, je ne sais pas par où commencer...
Je commence par installer le SGBD sur le serveur ?
Ah ben là c'est sûr ! Car sinon cela ne va pas bien fonctionner !!!Je commence par installer le SGBD sur le serveur ?
Tu peux utiliser MySql Workbench pour créer ta base et structurer les tables.
Il est probablement plus sain de refaire la structure à la main car :
- MSAccess est très permissif dans les noms de tables et de champs (au point de tolérer des espaces et des accents dans les noms !) et après on est emm... dans les requêtes
- Cela te permet de faire le tour des informations qui sont utilisées (car là tu peux être sûr qu'on va te solliciter !)
n'hésite pas à poster si tu butes quelque part.
Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)
Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/
Bien, la base a été reconstituée.
Il faut encore que je transfert toutes les données de l'une à l'autre.
Quelle est la solution la plus efficace selon toi ?
Il existe des utilitaires sur internet mais on n'est pas à l'abri d'un problème d'encodage.
Je pense que le plus sûr pour 13 tables est d'exporter chacune de ces tables au format CSV depuis Access.
Puis de les importer dans la base MySql.
Je pense que MySqlWorkBench peut faire cette importation.
Sinon il existe une commande SQL qui fait cela très bien : LOAD DATA INFILE
Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)
Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/
Ok, je viens d'effectuer l'opération "a la mano".
ACCESS => Fichier .CSV => importation dans MySQL via phpmyadmin (encodage iso-8859-15 pour conserver les infos).
Problème rencontré : les formats date (fr / eng)
Solution apporté : format modifié en varchar, je verrais après s'il les opérations de type ORDER BY sont effectué via l'application ou via la BDD.
Au pire, on interviendra à posteriori
Je te tiens informé
Je pense être sur la bonne voie !
Ca avance bien, je pense que je vais bientôt rencontré un Tsunami de problème
Stay tune !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager