IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Préfixe dbo automatique [2014]


Sujet :

MS SQL Server

  1. #1
    Membre habitué Avatar de harpyopsis
    Homme Profil pro
    Vétérinaire
    Inscrit en
    Octobre 2015
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Indonésie

    Informations professionnelles :
    Activité : Vétérinaire
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 143
    Points : 187
    Points
    187
    Par défaut Préfixe dbo automatique
    Bonjour à tous les experts !

    Je viens d'importer 280 Tables accdb dans un fichier Server Express *.mdf.

    Lorsque je ré-importe maintenant ces Tables (link) dans un nouveau fichier front-end Access 2007, ils se retrouvent tous renommés avec le préfixe "dbo_" ("Personalia" devient "dbo_Personalia", etc, etc...). Et naturellement rien ne fonctionne plus !!!

    Je ne peux pas passer mon temps à recomposer tous les recordsource de tous mes formulaires et encore moins à modifier les Docmd.RunSQL du code VBA....

    Que faites-vous dans un cas pareil ??? Existe-il un moyen d’empêcher l'ajout automatique du préfixe dbo, ou bien faut-il se résoudre à renommer manuellement toutes les Tables liées ??? On pourrait peut-être renommer toutes les Tables d'un seul coup avec un loop vba ?

    Merci d'avance !

    phil


    Je viens de faire ceci, qui marche bien à première vue... Quelqu'un a-t-il d'autres suggestions plus élégantes svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Dim obj As AccessObject, dbs As Object, i As Long
     
        With CurrentData
            For i = .AllTables.Count - 1 To 0 Step -1
                Set obj = .AllTables(i)
                If obj.Name Like "dbo*" Then DoCmd.Rename Right(obj.Name, (Len(obj.Name) - 4)), acTable, obj.Name
            Next
        End With
     
        Set dbs = Nothing
        Set obj = Nothing

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    À priori pas d'autre solution que de corriger à postériori. En effet ACCES n'est pas doté du niveau SCHEMA SQL de la norme. SQL Server oui. Or les schémas permettent d'isoler des pans entier de la base dans différents "compartiments" qui sont représentés par des schéma SQL ceci afin d'organiser la base et de régler des problèmes de sécurité d'accès de manière générique.

    Deux possibilités :
    Corriger ta base Access (solution préférable, plus longue mais pérenne)
    Corriger le script (plus rapide)

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre habitué Avatar de harpyopsis
    Homme Profil pro
    Vétérinaire
    Inscrit en
    Octobre 2015
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Indonésie

    Informations professionnelles :
    Activité : Vétérinaire
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 143
    Points : 187
    Points
    187
    Par défaut
    Okay merci Frédéric !

    Je pense bien conserver ma nomenclature d'origine.

    Le loop Docmd.Rename ne prend que 2 secondes et il peut être amélioré pour les essais suivants (tenir compte d'éventuels MSys ou de Tables temp locales à conserver ou à supprimer).

    Juste une remarque sur le Dialogue d'importation "Link Tables" de Access, qui mélange toutes les Tables et toutes les Vues, sans possibilité de multi-select. On se retrouve donc à cliquer 280 fois sur les Tables à lier, sinon le "Select All" englobe aussi toutes les Vues INFORMATION_SCHEMA... et les sys.*... C'est long, surtout qu'il demande de confirmer quels champs sont les identificateurs uniques, alors qu'il y a déjà une clef unique partout...!

    Aujourd'hui j'attaque la synchronisation des Tables de données sensibles que les utilisateurs ne veulent pas voir transiter par Internet.

    Je vais voir comment fonctionne le Moniteur de réplication de MSSQL Express. Avec 2003, j'utilisais déjà JRO avec un jeu de Tables de Transit sur clés USB. Mais j'ai dé-répliqué pour passer à 2007. Tout le code est déjà fait, y-compris la synch des répertoires de jpg (DBPix de Ammara) et d'archives pdf (méthode s. Leban).

    A+, merci et bonne journée !

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    J'ai l'impression que vous êtes en train de mettre en œuvre une architecture monstrueuse, peu adaptée.... Pourquoi toutes ces réplications vers des bases access ? Sont-ce des bases locales sur les PC de chacun des utilisateurs qui "dialoguent" avec la base centrale avec des import/export continuels ?

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre habitué Avatar de harpyopsis
    Homme Profil pro
    Vétérinaire
    Inscrit en
    Octobre 2015
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Indonésie

    Informations professionnelles :
    Activité : Vétérinaire
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 143
    Points : 187
    Points
    187
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Sont-ce des bases locales sur les PC de chacun des utilisateurs qui "dialoguent" avec la base centrale avec des import/export continuels ?
    A +
    Oui : des bases locales au(x) cabinet(s), sur le laptop des voitures en visite, et aux domiciles de chacun le soir. Il y a donc beaucoup de saisies de données hors connexion durant les visites rurales avec l'impression des ordonnances.

    Une mise à jour quotidienne de chaque poste est suffisante, il n'y a pas de flux import/export continuel. Ce système fonctionne depuis des années, et génère même automatiquement le Cerfa mensuel de déclaration de TVA (plan comptable personnalisé), au centime près pour le comptable. C'est assez complet, mais ça marche sans bug.

    Il y a aussi la gestion de stock et commandes automatisées en fonction des ventes, trois fois par semaine auprès de 5 fournisseurs avec comparaison des tarifs à jour (DoCmd.TransferText).

    Pharmacologie, Taxonomie, cas cliniques, etc, etc,...

    Mais je ne peux plus me contenter de la réplication JRO par clés USB, qui a ses limites !

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Dans ce cas il faut passer à du tout MS SQL Server : SQL Server Express sur les portable et un SQL Server standard centralisé.

    En effet, SQL Server inclus des systèmes de réplications au nombre de 9 différents, tous automatisés.
    L'un d'entre eux permet de synchroniser automatiquement les bases satellites de la base centrale dans tous les sens. Dès que le portable se connecte au réseau d'entreprise, cela est détecté par le serveur qui démarre aussitôt une session de réplications de données. Même s'il y a des coupures de réseau, le système est suffisamment résilient pour redémarrer là ou il en était...

    Note de synthèse sur la réplication :
    https://docs.microsoft.com/fr-fr/sql...l-server-ver15

    Dans votre cas, le plus adapté est la réplication de fusion :
    https://docs.microsoft.com/fr-fr/sql...l-server-ver15

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre habitué Avatar de harpyopsis
    Homme Profil pro
    Vétérinaire
    Inscrit en
    Octobre 2015
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Indonésie

    Informations professionnelles :
    Activité : Vétérinaire
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2015
    Messages : 143
    Points : 187
    Points
    187
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Dans ce cas il faut passer à du tout MS SQL Server : SQL Server Express sur les portable et un SQL Server standard centralisé.
    Je m'en doutais bien et je me demandais déjà comment emballer l'installation complète pour les nouveaux utilisateurs.

    En effet, SQL Server inclus des systèmes de réplications au nombre de 9 différents, tous automatisés.
    L'un d'entre eux permet de synchroniser automatiquement les bases satellites de la base centrale dans tous les sens. Dès que le portable se connecte au réseau d'entreprise, cela est détecté par le serveur qui démarre aussitôt une session de réplications de données. Même s'il y a des coupures de réseau, le système est suffisamment résilient pour redémarrer là ou il en était...
    Formidable !

    Note de synthèse sur la réplication :
    https://docs.microsoft.com/fr-fr/sql...l-server-ver15

    Dans votre cas, le plus adapté est la réplication de fusion :
    https://docs.microsoft.com/fr-fr/sql...l-server-ver15

    A +
    Je vais voir ça tout de suite !

    Un grand merci !

    Ouiiiiiiiii ! Merge replication, c'est exactement cela !!!!!!!! Tout colle !!!!!! Il n'y a jamais beaucoup de conflits en vue, mais j'espère que le dialogue de résolution sera plus explicite que celui de Access 2003, avec lequel il faut parfois être un vrai devin !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Préfixe automatique & Chiffres
    Par luclucdu38 dans le forum Excel
    Réponses: 2
    Dernier message: 13/03/2016, 16h49
  2. [MVC] Mapping automatique par préfixe
    Par Invité dans le forum Spring Web
    Réponses: 0
    Dernier message: 05/03/2010, 13h28
  3. [Tableaux] préfixe automatique aux tables
    Par dldstyle dans le forum Langage
    Réponses: 6
    Dernier message: 02/08/2006, 16h47
  4. Préfixe automatique dans un champ
    Par curt dans le forum Access
    Réponses: 1
    Dernier message: 12/06/2006, 19h27
  5. Re-dimensionnement automatique de composants
    Par ludo_7 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/05/2002, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo