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 :

Front end Access-BE mySQL ou SQL server: pré-requis dans la construction de la base access?


Sujet :

Projets ADP

  1. #1
    Membre du Club
    Homme Profil pro
    ceo
    Inscrit en
    Juin 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : ceo
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 73
    Points : 63
    Points
    63
    Par défaut Front end Access-BE mySQL ou SQL server: pré-requis dans la construction de la base access?
    Bonjour à tous,

    J'ai développé une appli access, splitée. Elle est assez petite: env. 20 tables, ttes avec un ID en num auto, env. 15 formulaires. Les requêtes sont directement en code SQL dans les procédures VBA. J'ai quelques procédures avec variables en argument et un module de classe.
    Je pilote un fichier excel avec ma base access pour faire du power query et du power pivot.
    Problème: les 5 utilisateurs sont aux quatre coins du pays. Après m'être documenté, je pense que la meilleure solution est d'opter pour FE sur Access, BE sur mySQL ou SQL server:
    Questions:
    - que pensez-vous de cette conclusion?
    - quels sont les pré-requis pour passer les tables stockée dans le BE dans mySQL ou SQL server
    - quelle solution est la meilleure ds mon cas: mySQL ou SQl server? Je pensais juste stocker les tables. Peut être vaut il mieux que je crée des requetes avec le requeteur et que je stocke aussi les requetes?
    - le pilotage du fichier excel sera-t il toujours possible?

    La littérature est foisonnante, je n'arrive pas à faire le tri et à définir un solution pour l"instant. Donc un immense merci par avance.
    Etxe.

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Bonjour,

    Access n'est vraiment pas le bon outil pour faire ça, le travail à distance est de loin son plus gros point faible.

    La raison est que par défaut il ne fait rien coté serveur mais importe toutes les données sur le poste client et les traite localement. Il y a quand même une exception si on utilise systématiquement ADO sans lier aucune table. Ensuite il faut développer une interface "minimaliste" qui affiche uniquement les données strictement nécessaires (alors qu'en standard access montre toutes les données)

    Avec ces contraintes ça peut marcher mais on perd tout ce qui fait qu'access est si pratique...
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre du Club
    Homme Profil pro
    ceo
    Inscrit en
    Juin 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : ceo
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 73
    Points : 63
    Points
    63
    Par défaut
    Bonjour,
    Merci beaucoup pour ce retour d'expérience.
    Dans mon cas l'appli est petite, j'affecte systématiquement comme valeur à mes contrôles et sous formulaires des DAO.recordset basés sur des requetes que j'écris en code SQL dans les procédures VBA.
    Je peux envoyer un exemple si besoin.
    Une question: qu'appelles-tu "interface minimaliste" s'il te plaît?
    Merci d'avance.
    Etxe.

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Citation Envoyé par Etxezarreta Voir le message
    Dans mon cas l'appli est petite, j'affecte systématiquement comme valeur à mes contrôles et sous formulaires des DAO.recordset basés sur des requetes que j'écris en code SQL dans les procédures VBA.
    On peut le faire en ADO aussi (surtout s'il s'agit d'une requete complexe) par contre c'est en lecture seule je crois

    Citation Envoyé par Etxezarreta Voir le message
    Une question: qu'appelles-tu "interface minimaliste" s'il te plaît?
    N'afficher que ce que l'utilisateur a demandé, dans l'esprit d'un site web (pas de vue sur toute une table en liste comme le fait access nativement)
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bonsoir
    petite précision:
    ADO (ActiveX Data Objects), bibliothèque logicielle d’accès aux données
    DAO (Data Access object), objet d'accès aux données
    sont 2 méthodes différentes d'accès aux données
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Membre du Club
    Homme Profil pro
    ceo
    Inscrit en
    Juin 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : ceo
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2019
    Messages : 73
    Points : 63
    Points
    63
    Par défaut
    Bonjour Nico84 et Tee,

    Il apparaît en effet que ADO est bien plus indiqué pour travailler avec SQL server en BE.
    Je suis en train de changer la syntaxe des lignes de code: j'ai mis un exemple ci-dessous (code DAO en haut, ADO en bas): ça fonctionne pour la version ADO, que je ne connaissais aps du tout. Je suis entrain de me documenter durement, avez-vous une remarque sur les bonnes pratiques de syntaxe ou autre svp?
    Lorsque je mettrai les tables sur SQL server je devrais modifier l'objet connection n'est ce pas? Il vaudrait ainsi mieux le passer en variable?
    Encore merci.
    Etxe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub Form_Load()
     
    ' en DAO:======================================================================
    'Dim str_SQL As String
    'Dim str_ValeurMetier As String
    'Dim objDB As DAO.Database
    'Dim objRcdset_Source As DAO.Recordset
    '
    '
    'str_SQL = "SELECT DISTINCT ID_ProfilUtilisateur FROM t_ProfilsUtilisateurs_AntolaCOREADD  ORDER BY ID_ProfilUtilisateur"
    'Set objDB = CurrentDb
    'Set objRcdset_Source = objDB.OpenRecordset(str_SQL, dbOpenDynaset)
    'Set Me.Type_utilisateur.Recordset = objRcdset_Source
    '
     
    '=================================================================================
    'en ADO:
    Dim objConnection As ADODB.Connection
    Dim objRcdset_Source As New ADODB.Recordset
    Dim str_SQL As String
    Dim str_ValeurMetier As String
     
    'Connection à la Base Access en cours
    Set objConnection = CurrentProject.Connection
     
    str_SQL = "SELECT DISTINCT ID_ProfilUtilisateur FROM t_ProfilsUtilisateurs_AntolaCOREADD  ORDER BY ID_ProfilUtilisateur"
    Set objRcdset_Source = New ADODB.Recordset
    objRcdset_Source.Open str_SQL, objConnection, , , adCmdText
     
    End Sub

  7. #7
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Oui vu comme ça c'est presque pareil à l'objet connexion près mais en fait pas tant que ça :

    1. en DAO le recordset est constitué par le moteur JET d'access, en ADO le serveur crée une vue à la demande d'access et la met à sa disposition. Pour des cas complexes les temps de réponse et la charge réseau sont très différents.
    2. cette syntaxe transfère TOUTES les données à la form mais souvent en web ça en fait trop > temps de réponse pourri sauf à mettre un top 10 ou un filtre adéquat
    3. en DAO on utilise toujours le SQL access alors qu'en ADO il faut utiliser le SQL de la base et alors on s'aperçoit que le SQL n'a de standard que le nom

    J'ajoute pour le point 3 que le SQL access (le fameux moteur JET) est très peu performant pour interroger une base non access c'est pourquoi ADO est impératif pour une base non access qu'elle soit locale ou sur le web (sauf pour de petites applis simples)

    C'est pourquoi je parle d'interface minimaliste : une form qui affiche peu de données et qui ne permet de les modifier qu'individuellement par code

    J'espère être clair. Malheureusement access est le seul outil que je maitrise correctement aujourd'hui et je dois faire appel à d'autres développeurs quand je veux des outils web car avec access je n'arrive à rien et quand je vois ce qu'ils font je n'y comprends rien Mais ça marche
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

Discussions similaires

  1. Access comme front-end à SQL Server
    Par apprenti46 dans le forum Projets ADP
    Réponses: 7
    Dernier message: 01/12/2022, 20h06
  2. Reconvertion dans le Web en Front-End
    Par Design.HGreg dans le forum Etudes
    Réponses: 10
    Dernier message: 04/11/2016, 09h25
  3. ODBC error avec front-end Access
    Par fcavalli dans le forum Administration
    Réponses: 2
    Dernier message: 19/05/2016, 01h39
  4. [AC-2010] Comparaison de date OK dans MySQL mais KO dans Access
    Par Christophe P. dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/07/2015, 10h44

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