Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/02/2011, 19h11   #1
Membre du Club
 
Avatar de kha_yassine
 
Inscription : juin 2007
Messages : 125
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 125
Points : 42
Points : 42
Envoyer un message via MSN à kha_yassine
Par défaut Copie de données liées à une base ODBC

Salut a tous

J'aimerai avoir de l'aide sur une petite manipulation que je voudrai faire,

Je vous explique ce que j'ai fait :

J'ai une base de données MySql

J'ai créer un premier fichier Access dans le quel :
- j'ai lier (et non pas importer) quelques tables de la base de données Mysql via ODBC
- après ca, j'ai modifier pas mal de choses sur ce fichier Access : les noms des tables, les descriptions sur les variables, l'ordre de visualisation des tables...

Ce que je veux faire : c'est d'exploiter ce fichier ailleurs (pas de connexion à la base de donnée source : MySql)

Donc je me demande sur la façon la plus simple pour faire une copie du fichier Access vers un autre fichier Access contenant réellement les tables et non pas des liens vers les tables

Je ne prévois pas le faite de recréer à chaque foi mon fichier directement à partir de la base de données MySql, car je doit repasser à chaque foi par les modifications déjà effectuées

Et merci d'avance
kha_yassine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 18h18   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Bonjour,

Avec des requetes par exemple :

création de la table en local avec unpuis une suppression de l'attache par unensuite tu renommes la table avec son ancien nom en vba

Code :
currentdb.TableDefs("NouveauNom").Name = "AncienNom"

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 11h11   #3
Membre du Club
 
Avatar de kha_yassine
 
Inscription : juin 2007
Messages : 125
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 125
Points : 42
Points : 42
Envoyer un message via MSN à kha_yassine
Merci pour la réponse,

mais je suppose que le faite de reprendre le travail dés le début (importer la base MySql, et modifier les noms de tables ...) sera moins couteux

Merci quand même
kha_yassine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 14h55   #4
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Si tu veux travailler en local, sans connexion à MySql, il te faut importer les données.

La méthode que je t'ai donnée ne te convient pas ?

Si tu veux réiterer le processus que ce soit par delete ou drop c'est pareil me semble-t-il.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 17h33   #5
Membre du Club
 
Avatar de kha_yassine
 
Inscription : juin 2007
Messages : 125
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 125
Points : 42
Points : 42
Envoyer un message via MSN à kha_yassine
Au fait , je suis débutant dans Access

Donc la solution que tu m'a donner n'ai pas aussi simple a appliquer (pour moi)

je ne vois pas de Insert Into lorsque je crée une nouvelle table par exemple

et je ne voix surtout pas comment je pourrai sauvegarder la procédure sous Access pour ne pas refaire à chaque foi la même chose

Et merci encore
kha_yassine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 18h35   #6
Membre du Club
 
Avatar de kha_yassine
 
Inscription : juin 2007
Messages : 125
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 125
Points : 42
Points : 42
Envoyer un message via MSN à kha_yassine
Sur Access 2007,

Jusqu'à maintenant, j'ai pu créer une requête , et avec l'option "création de table" j'ai eu un

Code :
Select champs INTO new_table FROM old_table
mais je croi que ca ne s'exécute pas , ca me donne le message suivant :
"l'action ou l'évènement a été bloqué par le mode désactivé" et je ne vois pas de nouvelle table

NB : que la requête affiche le résultat voulu sur le "Mode affichage"
kha_yassine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 19h27   #7
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Bonjour,
Dans un premier temps il faut débloquer ACCESS,
Soit en
  • inscrivant le répertoire de la base comme zone de confiance (Bouton Office, options access/centre de gestion de la confidentialité/Emplacement approuvé).
  • Soit en copiant ta base dans un emplacment approuvé.
  • Soit enfin en cliquant sur le bouton dans la bande orange qui doit s'afficher en dessous du ruban
.

Pour rejouer ton processus tu dois utiliser la macro ou vba, au choix.

En vba ça donne quelque chose comme ça, à adapter bien entendu.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
docmd.setwarning false
 
docmd.OpenQuery "NomRequete1"
currentdb.execute "Drop table"
currentdb.TableDefs("NouveauNom").Name = "AncienNom"
 
docmd.openQuery "NomRequete2"
' ...et tu répètes la séquence
 
 
' a la fin
docmd.setwarning true
Tout cela dans une procédure que tu appelles avec un macro ou par un bouton quelconque d'un formulaire.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h43.


 
 
 
 
Partenaires

Hébergement Web