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

Modélisation Discussion :

Access et Odbc


Sujet :

Modélisation

  1. #1
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut Access et Odbc
    Bonjour à toutes et à tous,
    Je cherche une solution technique afin de résoudre les limitations liées à l'utilisation de la technologie odbc. En effet je dispose d'une BDD Access 2007 qui tourne sur un serveur avec 2 utilisateurs simultanés. Je n'ai pas choisi de fractionner la base pour l'instant étant le nombre limité d'utilisateur.
    Seulement maintenant je dois permettre l'ajout et la modification d'enregistrement via une page Web. J'ai donc installer un serveur PHP sur la machine et j'ai développer la page en PHP qui "attaque" la base via odbc.
    Le problème c'est que maintenant lorsque la base est active en local elle n'est plus accessible par le net (odbc ne parvient plus à se connecter).

    Quelle est la meilleure solution technique pour permettre une utilisation locale et simultanément un acces par le web via PHP ?

    Merci

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    Ça me surprend que le problème soit imputable à ODBC.
    Mais bon, tout ça évolue tellement vite maintenant ...

    J'ai quand même testé la situation que tu décris, pour voir.
    J'ai créé une page php sur un serveur http local (http://localhost).
    La page modifie un enregistrement d'une table de la base de données exemple Comptoirs.mdb, via le pilote 'Microsoft Access Driver (*.mdb)'.
    J'ouvre cette base avec Access, puis j'ouvre la table en question.
    Ma page php modifie l'enregistrement sans problème.

    Même test sur une base au format 2007 avec le pilote 'Microsoft Access Driver (*.mdb, *.accdb)' -> pas de problème.

    Je n'ai d'erreur côté php, que si la base a été ouverte en mode exclusif.

    Mon petit test montre simplement que dans mon contexte, ODBC n'a aucun soucis avec une base de données Access déjà ouverte.

    Pour répondre à ta question principale, je ne sais pas quel est le meilleur moyen technique, mais l'alternative à ODBC c'est ADODB (en VB).
    J'ai vu que ça pouvait s'utiliser dans PHP (pas essayé) : http://www.php.net/manual/fr/class.com.php
    Voir l'exemple numéro 2.

    A+

  3. #3
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut ADO
    Bonjour et merci pour ta réponse LedZeppII !
    J'ai suivi ton conseil pour me connecter finalement en ADO.
    Depuis, nous sommes passé en Office 2010.
    Mais après cela, j'ai encore un soucis avec cette satanée connexion.
    Le code suivant me renvoie une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $conn = new COM('ADODB.Connection') or exit('Cannot start ADO.'); 
    $db = "C:/Gestion_2010.accdb"; 
    $conn->Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=$db") or exit('Impossible de se connecter.');
    La page affiche le message 'Impossible de se connecter'

    Avec si peu de code, il m’apparaît difficile que ce soit une erreur dans ces quelques lignes. J'en déduis qu'il doit s'agir d'une configuration mal paramétrée. Mais où chercher ? vers la config serveur ? (Windows 2008 R2, II7) vers l'installation php (5.3) ? vers Office 2010 ? (j'ai pourtant installé AccessDataEngine).
    Je suis un peu perdu et si tu avais encore 1 ou 2 conseils....
    Merci

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    As-tu essayé avec
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $db = "C:\Gestion_2010.accdb";
    au lieu de
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $db = "C:/Gestion_2010.accdb";

    Sinon, il faut peut-être le provider Microsoft.ACE.OLEDB.14.0 pour le cas où le provider Microsoft.ACE.OLEDB.12.0 n'arrive pas à ouvrir la base.

    A+

  5. #5
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    Wouah ! ca c'est de la réponse rapide, et en plus un samedi
    Sinon j'ai modifié le \ par des / et cela ne change rien.
    j'ai ensuite modifié le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Provider=Microsoft.ACE.OLEDB.12.0 par Provider=Microsoft.ACE.OLEDB.14.0
    et là j'obtient une page blanche.
    Du coup c'est peut-être une erreur de la suite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $conn = new COM('ADODB.Connection') or exit('Cannot start ADO.'); 
    $db = "C:\Form-High-Tech\Base_FHT\Gestion_FHT_2010.accdb"; 
    $conn->Open("Provider=Microsoft.ACE.OLEDB.14.0; Data Source=$db") or exit('Impossible de se connecter.');
    $sql = 'SELECT * FROM Stagiaires'; 
    $rs = $conn->Execute($sql); 
    if (!$rs)
      {exit("Erreur SQL");
      }
    Merci à toi en tout cas

Discussions similaires

  1. access et ODBC (COBOL)
    Par dady120 dans le forum Access
    Réponses: 4
    Dernier message: 10/05/2006, 10h13
  2. Connecter mysql à access en ODBC (et non le contraire)
    Par guidav dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 28/03/2006, 14h51
  3. Liens Mysql Access par ODBC
    Par nykola7 dans le forum Access
    Réponses: 2
    Dernier message: 04/03/2006, 21h57
  4. Chargement des drivers access via ODBC sous Qt 3
    Par Higestromm dans le forum Bases de données
    Réponses: 10
    Dernier message: 09/01/2006, 14h30
  5. [ODBC] Problème entre access et ODBC
    Par StephCal dans le forum Access
    Réponses: 4
    Dernier message: 09/07/2003, 16h47

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