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

Projets ADP Discussion :

Etat Access avec une Vue complexe dans SQLServer?


Sujet :

Projets ADP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations forums :
    Inscription : Septembre 2010
    Messages : 116
    Points : 88
    Points
    88
    Par défaut Etat Access avec une Vue complexe dans SQLServer?
    Bonjour à tous,

    Ayant migré une base de données Access vers un projet ADP et sans être un expert SQLServer je voudrais savoir qu'est-ce que le mieux dans mon cas.
    J'ai une table tblPersonnes qui possède plusieurs colonnes qui pointent vers d'autres tables de la base, par exemple:

    tblPersonnes
    IdVilleN
    IdVilleT
    IdAdresse
    IdEvenement
    IdResponsable
    IdObsA
    IdObsB
    IdObsC

    Chacun de ces Id fait référence à une autre table, prenons la tblLieus :
    tblLieus
    IdLieu
    Ville
    IdCPostal
    IdDepartement


    Ou la table tblAdresses :
    tblAdresses
    IdAdresse
    IdRueType
    IdRueNom
    IdVille
    IdCPostal
    IdDepartement

    Pour créer un état avec les infos de la tblPersonne, ce que je faisais avant, lorsque les tables étaient directement sur Access, c’était d’inclure dans les requêtes seulement les Ids des tables les plus compliquées, par exemple la tblVilles ou la tblAdresses. J’avais construit des modules de classe VBA qui traitaient et me donnaient toutes les infos dont j’avais besoin, ces classes avaient des Fonctions qui recevaient en paramètre l’Id et à partir de l’Id la classe, à l'aide d'un recordset allait prendre le reste de colonnes dans une requête qui rassemblait tous les champs dont j’avais besoin, puis dans la même classe je faisais tous les traitements dont j’avais besoin, savoir par exemple si le nom de la Rue était vide, si la Ville s’appelait pareil que le Département, etc. En agissant ainsi je simplifiais mon code VBA et j’évitais de faire des requêtes trop complexes pour Access.

    Pour info, la plus part de mes états seront ouverts avec un enregistrement à la fois, c'est-à-dire que l’utilisateur cherchera une personne et ouvrira un état qui rassemble toutes ses infos, l’état sera donc filtré, il montrera une seule personne à chaque fois.

    Etant donné que SQLServer est plus puissant, je me demande qu’est-ce que le mieux :

    a. De continuer la procédure décrite ci-dessus qui évite d’avoir des vues très complexes, ou

    b. De créer une seule vue dans SQLServer qui me donne toutes les colonnes dont j’aurais besoin pour mon état ?

    Si je choisis l’option b,

    - Existe-t-il une manière simplifié d’évaluer certaines colonnes directement sur SQLServer (par exemple savoir si la Ville s’appelle pareil que le Département, si le Code Postal est vide, etc) et agir en consequence? Une procédure stockée par exemple ? Bien que, je pourrais le faire aussi directement dans VBA, sauf que à la place de passer comme parametre l’Id et ouvrir un recordset, je passerais directement les différentes colonnes concernées pour les évaluer, sans necessiter l'ouvertur d'un recordset.

    - Vous me conseillez dans cette Vue unique qui serait le source de donnés de mon état Access, d’utiliser des autres Vues à la place de tables directement, par exemple une vue pour les Adresses, autre pour les Villes, etc ?

    Je vous remercie d’avance si quelqu’un peut me conseiller dans cet aspect ou me donner des références de lecture.

  2. #2
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 229
    Points : 266
    Points
    266
    Par défaut
    Bonjour,

    Quel est l'intérêt de passer en ADP ? Access ne vous suffit pas ?
    Et qu'est-ce que c'est que cette usine à gaz d'ouvrir des recordsets parallèles pour récupérer des infos manquantes ? Vous devez avoir des performances sacrément pourries en faisant comme ça ! (c'est pê pour ça que vous voulez passer à SQL Server ?)

    Réponses :

    a. Non !!!

    b. Oui !!! Ou une procédure stockée qui accepte des paramètres pour filtrer par exemple.

    - Existe-t-il une manière simplifié d’évaluer certaines colonnes directement sur SQLServer (par exemple savoir si la Ville s’appelle pareil que le Département, si le Code Postal est vide, etc) et agir en consequence? Une procédure stockée par exemple ? Bien que, je pourrais le faire aussi directement dans VBA, sauf que à la place de passer comme parametre l’Id et ouvrir un recordset, je passerais directement les différentes colonnes concernées pour les évaluer, sans necessiter l'ouvertur d'un recordset.
    Ça dépend des traitements que vous voulez effectuer.
    Faites le maximum de traitements en SQL, la rapidité sera imbattable si vous faites des requêtes ensemblistes avec un modèle de données correct et une base bien indexée.
    Si c'est de la cosmétique, faites ça dans des champs calculés de votre état.

    - Vous me conseillez dans cette Vue unique qui serait le source de donnés de mon état Access, d’utiliser des autres Vues à la place de tables directement, par exemple une vue pour les Adresses, autre pour les Villes, etc ?
    Vous pouvez appeler des vues dans des vues si ça peu vous simplifier un peu la vie. Mais limitez-vous à 1 ou 2 niveaux d'appel. N'ayez pas peur de faire des requêtes SQL un peu longue, elles seront très bien digérées par la base de données, c'est son job.

    @+

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations forums :
    Inscription : Septembre 2010
    Messages : 116
    Points : 88
    Points
    88
    Par défaut
    Merci Zabriskir.


    Quel est l'intérêt de passer en ADP ? Access ne vous suffit pas ?
    Tout simplement SQLServer me paraît plus sûre et plus performant. Et dans l'avenir je compte passer à une application en VB.NET avec les mêmes tables hébergées dans SQLServer.

    Le traitement n'est pas encore devenu une usine à gaz, certes je n'ai pas pour l'instant des centaines de milliers ou de millions de lignes à traiter.

    Quant aux vues qui auraient des autres vues, je comptais faire appel par exemple à une vue qryAdresses qui aurais en elle quatre tables (tblRuesType, tblRuesNoms, tblVilles, tblCPostal). Elle n'aurait pas d'autres vues, si c'est cela que tu comprends par niveau d'appel.

    Pour le reste c'est plus clair pour moi maintenant.

    Un grand merci.

Discussions similaires

  1. probleme webview dans une vue complexe
    Par a tunar with no tune dans le forum Composants graphiques
    Réponses: 3
    Dernier message: 30/08/2010, 17h58
  2. Réponses: 2
    Dernier message: 07/09/2006, 17h05
  3. Que peut-on faire avec une vue ?
    Par Invité dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 20/10/2005, 11h13
  4. [Plugin] Créer un modèle et lier un éditeur avec une vue
    Par freekk91 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 27/03/2005, 20h00
  5. probléme avec une date/string dans un CommandText
    Par critok dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/02/2005, 15h30

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