Bonjour,
J'utilise Access 2000 et ai un programme tournant sur 2=20
ordinateurs diff=E9rents, l'un des 2 seulement =E9tant=20
autoris=E9 =E0 modifier les donn=E9es dans les tables (l'autre=20
a le fichier MDB avec propri=E9t=E9s "en lecture seule").
La base de donn=E9es est "fractionn=E9e" afin d'avoir libre=20
acc=E8s aux tables.
Je veux mettre =E0 jour les tables d=E9suettes du 1er=20
ordinateur par celles du 2=E8 qui ont =E9volu=E9 dans la=20
semaine.
Comment =E9crire (sous Access ?) une routine qui=20
effectuerait cette op=E9ration de mani=E8re transparente, le=20
m=E9dia de transfert entre les deux pc =E9tant p.ex. un=20
memory stick.
Id=E9alement cette op=E9ration devrait pr=E9server la=20
propri=E9t=E9 "lecture seule" du fichier de destination.
Merci pour votre aide !
POL
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Raymond [mvp]
Bonjour.
ce n'est pas si simple qi'il n'y parait de changer une base principale par une autre. Il faut conserver les options de la base locale et pas que la lecture seulement. il faut conserver les relations de la table externe importée. on ne peut pas supprimer une table qui a des relations, il faut les supprimer avant la suppression de la table.
Il faut faire un choix : 1- la base locale frontale gère des codes d'accès et selon le code tu mets les formulaires en lecture ou lecture-écriture. dans ce cas une simple copie de la base principale suffit.
2-tu ne peux rien gérer au niveau de la base frontale et tu dois copier tous les objets de la base externe dans ta base principale. ce qui nécessite d'avoir un formulaire dans la base principale pour faire la mise à jour. il te faut donc supprimer toutes les relations, voir page : http://access.seneque.free.fr/sup_relations.htm, et ensuite supprimer les tables et importer celles de la base externe.
pour faire la copie tu peux utiliser l'automation access comme ceci:
Private Sub Commande0_Click() Dim Tbl As DAO.TableDef Dim APP As Access.Application Set APP = New Access.Application APP.OpenCurrentDatabase ("bd3.mdb") For Each Tbl In APP.CurrentDb.TableDefs If Left(Tbl.Name, 4) <> "msys" Then DoCmd.DeleteObject acTable, Tbl.Name DoCmd.TransferDatabase acImport, "Microsoft Access", "bd3.mdb", acTable, Tbl.Name, Tbl.Name End If Next Tbl APP.CloseCurrentDatabase APP.Quit Set APP = Nothing Set Tbl = Nothing End Sub
c'est une des idées, il y en a d'autres . -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"POL" a écrit dans le message de news:7f7301c3b4cc$84767670$ Bonjour, J'utilise Access 2000 et ai un programme tournant sur 2 ordinateurs différents, l'un des 2 seulement étant autorisé à modifier les données dans les tables (l'autre a le fichier MDB avec propriétés "en lecture seule"). La base de données est "fractionnée" afin d'avoir libre accès aux tables. Je veux mettre à jour les tables désuettes du 1er ordinateur par celles du 2è qui ont évolué dans la semaine. Comment écrire (sous Access ?) une routine qui effectuerait cette opération de manière transparente, le média de transfert entre les deux pc étant p.ex. un memory stick. Idéalement cette opération devrait préserver la propriété "lecture seule" du fichier de destination. Merci pour votre aide ! POL
Bonjour.
ce n'est pas si simple qi'il n'y parait de changer une base principale par
une autre.
Il faut conserver les options de la base locale et pas que la lecture
seulement.
il faut conserver les relations de la table externe importée.
on ne peut pas supprimer une table qui a des relations, il faut les
supprimer avant la suppression de la table.
Il faut faire un choix :
1- la base locale frontale gère des codes d'accès et selon le code tu mets
les formulaires en lecture ou lecture-écriture.
dans ce cas une simple copie de la base principale suffit.
2-tu ne peux rien gérer au niveau de la base frontale et tu dois copier tous
les objets de la base externe dans ta base principale. ce qui nécessite
d'avoir un formulaire dans la base principale pour faire la mise à jour. il
te faut donc supprimer toutes les relations, voir page :
http://access.seneque.free.fr/sup_relations.htm, et ensuite supprimer les
tables et importer celles de la base externe.
pour faire la copie tu peux utiliser l'automation access comme ceci:
Private Sub Commande0_Click()
Dim Tbl As DAO.TableDef
Dim APP As Access.Application
Set APP = New Access.Application
APP.OpenCurrentDatabase ("bd3.mdb")
For Each Tbl In APP.CurrentDb.TableDefs
If Left(Tbl.Name, 4) <> "msys" Then
DoCmd.DeleteObject acTable, Tbl.Name
DoCmd.TransferDatabase acImport, "Microsoft Access", "bd3.mdb",
acTable, Tbl.Name, Tbl.Name
End If
Next Tbl
APP.CloseCurrentDatabase
APP.Quit
Set APP = Nothing
Set Tbl = Nothing
End Sub
c'est une des idées, il y en a d'autres .
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"POL" <pfg@skynet.be> a écrit dans le message de
news:7f7301c3b4cc$84767670$a601280a@phx.gbl...
Bonjour,
J'utilise Access 2000 et ai un programme tournant sur 2
ordinateurs différents, l'un des 2 seulement étant
autorisé à modifier les données dans les tables (l'autre
a le fichier MDB avec propriétés "en lecture seule").
La base de données est "fractionnée" afin d'avoir libre
accès aux tables.
Je veux mettre à jour les tables désuettes du 1er
ordinateur par celles du 2è qui ont évolué dans la
semaine.
Comment écrire (sous Access ?) une routine qui
effectuerait cette opération de manière transparente, le
média de transfert entre les deux pc étant p.ex. un
memory stick.
Idéalement cette opération devrait préserver la
propriété "lecture seule" du fichier de destination.
Merci pour votre aide !
POL
ce n'est pas si simple qi'il n'y parait de changer une base principale par une autre. Il faut conserver les options de la base locale et pas que la lecture seulement. il faut conserver les relations de la table externe importée. on ne peut pas supprimer une table qui a des relations, il faut les supprimer avant la suppression de la table.
Il faut faire un choix : 1- la base locale frontale gère des codes d'accès et selon le code tu mets les formulaires en lecture ou lecture-écriture. dans ce cas une simple copie de la base principale suffit.
2-tu ne peux rien gérer au niveau de la base frontale et tu dois copier tous les objets de la base externe dans ta base principale. ce qui nécessite d'avoir un formulaire dans la base principale pour faire la mise à jour. il te faut donc supprimer toutes les relations, voir page : http://access.seneque.free.fr/sup_relations.htm, et ensuite supprimer les tables et importer celles de la base externe.
pour faire la copie tu peux utiliser l'automation access comme ceci:
Private Sub Commande0_Click() Dim Tbl As DAO.TableDef Dim APP As Access.Application Set APP = New Access.Application APP.OpenCurrentDatabase ("bd3.mdb") For Each Tbl In APP.CurrentDb.TableDefs If Left(Tbl.Name, 4) <> "msys" Then DoCmd.DeleteObject acTable, Tbl.Name DoCmd.TransferDatabase acImport, "Microsoft Access", "bd3.mdb", acTable, Tbl.Name, Tbl.Name End If Next Tbl APP.CloseCurrentDatabase APP.Quit Set APP = Nothing Set Tbl = Nothing End Sub
c'est une des idées, il y en a d'autres . -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"POL" a écrit dans le message de news:7f7301c3b4cc$84767670$ Bonjour, J'utilise Access 2000 et ai un programme tournant sur 2 ordinateurs différents, l'un des 2 seulement étant autorisé à modifier les données dans les tables (l'autre a le fichier MDB avec propriétés "en lecture seule"). La base de données est "fractionnée" afin d'avoir libre accès aux tables. Je veux mettre à jour les tables désuettes du 1er ordinateur par celles du 2è qui ont évolué dans la semaine. Comment écrire (sous Access ?) une routine qui effectuerait cette opération de manière transparente, le média de transfert entre les deux pc étant p.ex. un memory stick. Idéalement cette opération devrait préserver la propriété "lecture seule" du fichier de destination. Merci pour votre aide ! POL
POL
Bien reçu ta réponse Raymond. Pas si simple en effet cette solution...! Je me mets au travail dès maintenant. Merci pour ton aimable réponse. POL.
-----Message d'origine----- Bonjour.
ce n'est pas si simple qi'il n'y parait de changer une base principale par
une autre. Il faut conserver les options de la base locale et pas que la lecture
seulement. il faut conserver les relations de la table externe importée.
on ne peut pas supprimer une table qui a des relations, il faut les
supprimer avant la suppression de la table.
Il faut faire un choix : 1- la base locale frontale gère des codes d'accès et selon le code tu mets
les formulaires en lecture ou lecture-écriture. dans ce cas une simple copie de la base principale suffit.
2-tu ne peux rien gérer au niveau de la base frontale et tu dois copier tous
les objets de la base externe dans ta base principale. ce qui nécessite
d'avoir un formulaire dans la base principale pour faire la mise à jour. il
te faut donc supprimer toutes les relations, voir page : http://access.seneque.free.fr/sup_relations.htm, et ensuite supprimer les
tables et importer celles de la base externe.
pour faire la copie tu peux utiliser l'automation access comme ceci:
Private Sub Commande0_Click() Dim Tbl As DAO.TableDef Dim APP As Access.Application Set APP = New Access.Application APP.OpenCurrentDatabase ("bd3.mdb") For Each Tbl In APP.CurrentDb.TableDefs If Left(Tbl.Name, 4) <> "msys" Then DoCmd.DeleteObject acTable, Tbl.Name DoCmd.TransferDatabase acImport, "Microsoft Access", "bd3.mdb",
acTable, Tbl.Name, Tbl.Name End If Next Tbl APP.CloseCurrentDatabase APP.Quit Set APP = Nothing Set Tbl = Nothing End Sub
c'est une des idées, il y en a d'autres . -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"POL" a écrit dans le message de news:7f7301c3b4cc$84767670$ Bonjour, J'utilise Access 2000 et ai un programme tournant sur 2 ordinateurs différents, l'un des 2 seulement étant autorisé à modifier les données dans les tables (l'autre a le fichier MDB avec propriétés "en lecture seule"). La base de données est "fractionnée" afin d'avoir libre accès aux tables. Je veux mettre à jour les tables désuettes du 1er ordinateur par celles du 2è qui ont évolué dans la semaine. Comment écrire (sous Access ?) une routine qui effectuerait cette opération de manière transparente, le média de transfert entre les deux pc étant p.ex. un memory stick. Idéalement cette opération devrait préserver la propriété "lecture seule" du fichier de destination. Merci pour votre aide ! POL
.
Bien reçu ta réponse Raymond.
Pas si simple en effet cette solution...!
Je me mets au travail dès maintenant.
Merci pour ton aimable réponse.
POL.
-----Message d'origine-----
Bonjour.
ce n'est pas si simple qi'il n'y parait de changer une
base principale par
une autre.
Il faut conserver les options de la base locale et pas
que la lecture
seulement.
il faut conserver les relations de la table externe
importée.
on ne peut pas supprimer une table qui a des relations,
il faut les
supprimer avant la suppression de la table.
Il faut faire un choix :
1- la base locale frontale gère des codes d'accès et
selon le code tu mets
les formulaires en lecture ou lecture-écriture.
dans ce cas une simple copie de la base principale
suffit.
2-tu ne peux rien gérer au niveau de la base frontale et
tu dois copier tous
les objets de la base externe dans ta base principale.
ce qui nécessite
d'avoir un formulaire dans la base principale pour faire
la mise à jour. il
te faut donc supprimer toutes les relations, voir page :
http://access.seneque.free.fr/sup_relations.htm, et
ensuite supprimer les
tables et importer celles de la base externe.
pour faire la copie tu peux utiliser l'automation access
comme ceci:
Private Sub Commande0_Click()
Dim Tbl As DAO.TableDef
Dim APP As Access.Application
Set APP = New Access.Application
APP.OpenCurrentDatabase ("bd3.mdb")
For Each Tbl In APP.CurrentDb.TableDefs
If Left(Tbl.Name, 4) <> "msys" Then
DoCmd.DeleteObject acTable, Tbl.Name
DoCmd.TransferDatabase acImport, "Microsoft
Access", "bd3.mdb",
acTable, Tbl.Name, Tbl.Name
End If
Next Tbl
APP.CloseCurrentDatabase
APP.Quit
Set APP = Nothing
Set Tbl = Nothing
End Sub
c'est une des idées, il y en a d'autres .
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"POL" <pfg@skynet.be> a écrit dans le message de
news:7f7301c3b4cc$84767670$a601280a@phx.gbl...
Bonjour,
J'utilise Access 2000 et ai un programme tournant sur 2
ordinateurs différents, l'un des 2 seulement étant
autorisé à modifier les données dans les tables (l'autre
a le fichier MDB avec propriétés "en lecture seule").
La base de données est "fractionnée" afin d'avoir libre
accès aux tables.
Je veux mettre à jour les tables désuettes du 1er
ordinateur par celles du 2è qui ont évolué dans la
semaine.
Comment écrire (sous Access ?) une routine qui
effectuerait cette opération de manière transparente, le
média de transfert entre les deux pc étant p.ex. un
memory stick.
Idéalement cette opération devrait préserver la
propriété "lecture seule" du fichier de destination.
Merci pour votre aide !
POL
Bien reçu ta réponse Raymond. Pas si simple en effet cette solution...! Je me mets au travail dès maintenant. Merci pour ton aimable réponse. POL.
-----Message d'origine----- Bonjour.
ce n'est pas si simple qi'il n'y parait de changer une base principale par
une autre. Il faut conserver les options de la base locale et pas que la lecture
seulement. il faut conserver les relations de la table externe importée.
on ne peut pas supprimer une table qui a des relations, il faut les
supprimer avant la suppression de la table.
Il faut faire un choix : 1- la base locale frontale gère des codes d'accès et selon le code tu mets
les formulaires en lecture ou lecture-écriture. dans ce cas une simple copie de la base principale suffit.
2-tu ne peux rien gérer au niveau de la base frontale et tu dois copier tous
les objets de la base externe dans ta base principale. ce qui nécessite
d'avoir un formulaire dans la base principale pour faire la mise à jour. il
te faut donc supprimer toutes les relations, voir page : http://access.seneque.free.fr/sup_relations.htm, et ensuite supprimer les
tables et importer celles de la base externe.
pour faire la copie tu peux utiliser l'automation access comme ceci:
Private Sub Commande0_Click() Dim Tbl As DAO.TableDef Dim APP As Access.Application Set APP = New Access.Application APP.OpenCurrentDatabase ("bd3.mdb") For Each Tbl In APP.CurrentDb.TableDefs If Left(Tbl.Name, 4) <> "msys" Then DoCmd.DeleteObject acTable, Tbl.Name DoCmd.TransferDatabase acImport, "Microsoft Access", "bd3.mdb",
acTable, Tbl.Name, Tbl.Name End If Next Tbl APP.CloseCurrentDatabase APP.Quit Set APP = Nothing Set Tbl = Nothing End Sub
c'est une des idées, il y en a d'autres . -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"POL" a écrit dans le message de news:7f7301c3b4cc$84767670$ Bonjour, J'utilise Access 2000 et ai un programme tournant sur 2 ordinateurs différents, l'un des 2 seulement étant autorisé à modifier les données dans les tables (l'autre a le fichier MDB avec propriétés "en lecture seule"). La base de données est "fractionnée" afin d'avoir libre accès aux tables. Je veux mettre à jour les tables désuettes du 1er ordinateur par celles du 2è qui ont évolué dans la semaine. Comment écrire (sous Access ?) une routine qui effectuerait cette opération de manière transparente, le média de transfert entre les deux pc étant p.ex. un memory stick. Idéalement cette opération devrait préserver la propriété "lecture seule" du fichier de destination. Merci pour votre aide ! POL