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

Access Discussion :

Liaison ODBC sur base Mysql [AC-2003]


Sujet :

Access

  1. #1
    Membre actif Avatar de FadeToBlack
    Homme Profil pro
    ...
    Inscrit en
    Août 2010
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : ...
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2010
    Messages : 320
    Points : 204
    Points
    204
    Par défaut Liaison ODBC sur base Mysql
    Bonjour à tous,

    Je viens de faire une base de données sur Access 2003 et mon "client" me demande que la base soit localiser sur serveur afin que les différents utilisateurs puissent y accéder via internet.

    J'ai donc recréer une base sur mysql et lié les tables avec le fichiers MDB.
    Est-ce vraiment la meilleure méthode ?

    j'ai un gros problèmes avec des tables associatives.
    En exemple
    Table ------------association ------ Table
    Parents (0.n)-----Avoir-----------(0.n)Enfants

    J''ai donc la création d'une table associative :
    Avoir (Id_Parents, Id_Enf)

    Sous access lorsque je crée un enfant dans le sous formulaire parents, il n'y a pas de "remplissage" automatique de la table Avoir. Du coup j'ai un message d'erreur mentionnant qu'il probleme de liaison.

    Comment puis-je faire pour résoudre ce problème ?

    Ensuite lors de la création des formulaires :
    J'ai des attributs en booléen que j'aimerais en case à cocher. Malheureusement, MySql crée un Tinyint (1), ce que le créateur de formulaire traduit par un Champ numérique. Du coup pas de case à cocher.
    Comment faire pour résoudre ce problème.

    Si vous pouvez m'aider ce serait cool

    Merci et bonne journée à tous

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Bonjour,

    Déjà, sur le plan de la modélisation, séparer Enfant de Parent est un peu dommage...
    Imagine qu'un enfant, plus tard, devienne parent, et tu devras faire de la ressaisie.
    Par contre, tu pourrais avoir une table unique "Individu"
    Alors, il te resterait à avoir une table décrivant la relation "est parent de", ce qui te donnerait l'équivalent de ta table "Avoir"

    => 2 tables au lieu de 3, et tu joues avec les interfaces pour "faire croire" àl'utilisateur de ta base qu'il y a des parents et des enfants.

    Concernant le TINYINT, c'est normal, quoi que ec serait encore mieux en BIT puor un booléen...
    Et cela n'empêche pas l'usage des cases à cocher, puisque les valeurs booleéennes sont numériques !
    Où est le problème ?

  3. #3
    Membre actif Avatar de FadeToBlack
    Homme Profil pro
    ...
    Inscrit en
    Août 2010
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : ...
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2010
    Messages : 320
    Points : 204
    Points
    204
    Par défaut
    Salut Maxence,

    Concernant la table enfant, je suis bien d'accord avec toi. On aurait dû faire une seule table avec des relations :
    - Est Conjoint de
    et
    - Est enfant de

    Malheureusement, on m'a demandé de faire comme cela.... Ou alors il faut que je réécrive tout le truc sans le dire au client.....
    Et puis j'ai le même problème avec la relations

    Parents(0,n)-------VOIR-----(0,n)Medecins (qui possede un attribut spécialité)



    Si le client ne veut pas, cela ne résoud pas mon pb d'inscription dans la table "Avoir" ???? Par ce que je me suis rendu compte que MySql attribut un Id (sequentiel) à l'enregistrement. Il faut donc :
    1) enregistrement de l'id_parents dans la table Parents
    2) enregistrement de l'Id_Enfants dans la tables enfants
    3) enregistrement ds la table Avoir des des ID. Mais comment le faire autormatiquement en MySql.

  4. #4
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Bon...

    modélisation
    On va laisser tomber la modélisation alors... (dommage)
    quoi que le coup du "sans rien dire au client" me fait bien rire

    Pas tout compris
    J'ai peur de ne pas bien saisir.
    Tu veux que les données soient sur MySQL, et que Access serve de frontal uniquement. C'est ça ?

    Si oui, la création d'enregistrements et d'identifiants "séquentiels" ne pose pas de problème. C'est même plutôt bien, et j'espère que ton projet sous Access faisait de même !

    Comment saisir les enfants d'un parent ?
    1. Créer un formulaire basé sur la table "Parents"
    2. Créer un formulaire basé sur la table "Avoir"
    3. Ajouter un Sous-Formulaire/Sous-Etat dans le formulaire "Parents" pointant vers le formulaire "Avoir" et s'assurer de la définition des champs Père et Champs Fils
    4. Jouer avec la propriété "sur absence dans liste" de la liste de choix faite sur l'iD_Enfant du formulaire "Avoir" pour qu'il affiche un formulaire de création d'enfant à chaque fois qu'on tape quelque chose de non connu dans la liste de choix des enfants.
    fini.

  5. #5
    Membre actif Avatar de FadeToBlack
    Homme Profil pro
    ...
    Inscrit en
    Août 2010
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : ...
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2010
    Messages : 320
    Points : 204
    Points
    204
    Par défaut
    Re...
    modélisation
    On va laisser tomber la modélisation alors... (dommage)
    quoi que le coup du "sans rien dire au client" me fait bien rire
    EN fait, ils veulent une table Enfants. J'avais fait la remarque, mais......

    Quoiqu'il en soit on est avec le même problème avec une table Medecin relié à Individus. (Un médecin n'est pas considéré ici comme un individus).
    Individus peut voir plusieurs médecins
    Un médecins peut voir plusieurs individus

    d'ou table associative "voir"

    Tu veux que les données soient sur MySQL, et que Access serve de frontal uniquement. C'est ça ?
    Oui. En fait j'ai cherché comment faire un partage d'une base access entre plusieurs utilisateurs. LA liaison se fait par internet. J'ai trouvé que le mieux est de faire comme cela. Je m'étonne qu'access n'offre pas mieux. Mais peut être n'ai-je pas trouvé.


    Sinon,

    Je n'arrive pas à faire la suite de ta procédure. Si j'utilise la table avoir pour faire mon sous formulaire, je ne pas entrer des "enfants". En fait je n'ai pas cette propriété "sur absence dans liste".

    J'avais pensé faire une requete reprenant Avoir et Enfants. Baser mon sous formulaire sur cette requetes. Mais là aussi j'ai un message me disant qu'il y a une violation dela clef primaire dans la table Avoir.

    Je ne comprends plus

  6. #6
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Citation Envoyé par FadeToBlack Voir le message
    Re...
    EN fait, ils veulent une table Enfants. J'avais fait la remarque, mais......
    Quoiqu'il en soit on est avec le même problème avec une table Medecin relié à Individus. (Un médecin n'est pas considéré ici comme un individus).
    On risque de déraper si tu continues à parler modélisation, mais un médecin est bien un individu, et tu peux avoir une"auto-jointures", relations n-n, de individu vers individu, qui porte en plus l'attribut du genre de relation (est parent de..., est médecin de...) etc.
    Donc, fermons la parenthèse, puisque, de toutes façons, tu as dit que c'était non modifiable.

    Citation Envoyé par FadeToBlack Voir le message
    Je n'arrive pas à faire la suite de ta procédure. Si j'utilise la table avoir pour faire mon sous formulaire, je ne pas entrer des "enfants". En fait je n'ai pas cette propriété "sur absence dans liste".
    [...]
    Je ne comprends plus
    Sur absence dans liste est une propriété que tu trouveras dans l'onglet "évènements" d'une zone de liste déroulante.
    Dans le formulaire "Avoir" sur le champ ID de l'enfant, tu dois donc construire une liste à 2 colonnes (au moins)
    ID Enfant
    Nom + Prénom Enfant

    puis jouer sur la largeur des colonnes pour masquer la colonne ID Enfant.
    Il ne sert à rien de l'afficher, mais tu en as besoin puisque c'est l'ID de l'enfant qui est stocké dans la table "Avoir"

    Une fois ta liste faite, tu peux aller voir la fameuse propriété "sur absence dans liste"

    ++

  7. #7
    Membre actif Avatar de FadeToBlack
    Homme Profil pro
    ...
    Inscrit en
    Août 2010
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : ...
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2010
    Messages : 320
    Points : 204
    Points
    204
    Par défaut
    Cool cela fonctionne.....

    J'avais pas saisi la manip'.

    Je te remercie pour l'aide.

    Bonne soirée.

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

Discussions similaires

  1. Connection ODBC à une base Mysql sur serveur distant
    Par Asdorve dans le forum Administration
    Réponses: 2
    Dernier message: 17/03/2011, 09h37
  2. Réponses: 1
    Dernier message: 05/11/2007, 18h58
  3. session sur base mysql
    Par kuja2053 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/02/2007, 15h43
  4. Mise à jour de date sur base MySQL
    Par tristus dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 14/01/2007, 14h47
  5. C++ écriture sur base mysql
    Par kenny_badboy dans le forum MFC
    Réponses: 2
    Dernier message: 02/02/2006, 18h41

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