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 :

Migrer appli access vers projet access (avec MSDE)


Sujet :

Projets ADP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut Migrer appli access vers projet access (avec MSDE)
    Bonjour,

    Je suis actuellement en stage et on m'a demandé de migrer une appli access vers "projet access".
    Je voudrais savoir si quelqu'un sait comment procéder.
    Actuellement, j'ai créé une instance server SQL via MSDE(que l'on m'oblige à utiliser).

    J'ai ensuite créé un nouveau projet adp (à partir d'une base existante), et j'ai rempli les paramètres de connexion.(je travaille en local pour l'instant, mais les données sont destinées à être partagées entre plusieurs utilisateurs; comment faut-il faire pour que les données de la base soient partagées ?(lien odbc?))
    Ensuite j'ai importé mes tables, mes form,états... depuis mon appli access.
    J'utilise le logiciel Dbamgr2k pour gérer la base (Après avoir importé les tables, elles apparaissent dans Dbamgr2k sur l'instance SQL server que j'ai créé dans l'onglet tables).

    Donc j'aimerais savoir si j'ai commis des erreurs jusqu'a présent.
    D'autre part, lorsque j'importe mes formulaires, je n'ai plus le code vba associé (erreur: la connexion réseau est peut être perdue), comment faire?
    Serait-il possible d'avoir des infos sur les procédures stokées (un exemple svp pour voir comment fonctionnent les paramètres).
    Il est également impossible d'importer les requêtes, vais-je devoir les refaire?
    J'ai auusi un autre problème, lorsque j'ouvre le .adp, c'est bon mais quand je veux créer une vue par exemple, j'ai un message du style "vous n'avez pas l'accès en mode exclusif" (et ce même si je fais fichier\ouvrir\ puis ouvrir en mode exclusif).

    Je pense avoir fais le tour, merci de votre participation

  2. #2
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,

    Pour apporter un début de réponse, (car le sujet est vaste) il faut savoir que la migration d'une base access vers un projet ADP et SQL Server ne se fait pas simplement.

    En effet, toute la partie Data est transporté sur SQL Server, donc plus de requête dans Access, daons plus de possibilité de faire des appel aux fonctions personalisés définit dans Access, ni de faire référence aux formulaire s ou autres objet d'Access. Tout se passe coté serveur avec la syntaxe SQL de base de SQL server (selon les versions de SQL).
    En SQL les vues ne supportent pas les paramêtres mais permettent la mise à jour, alors que les PS acceptent les paramêtres mais pas la mise à jour.

    Il faut donc normalement reprendre la pluspart des formulaires et penser "Client serveur".

    C'est un très gros travail

    Dans ce que tu décris, je ne vois pas d'erreur dans ta procédure pour le moment.

    Continu d'avancer, et regarde aussi les forums sur SQL server, FAQ et Tutos, tu devrai y trouver des exemple de PS et autres

    Si tu as des questions plus orientés Access n'hésite pas à les posé sur le forum

    Bon courage

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    Merci didier

    En faisant importer ça m'a migré les tables vers SQL server?

    Si j'ai bien compris et pour recapituler, les insert\update\delete j'en fais des vues et les select, j'en fais des procédures stockées?

    Citation Envoyé par Didier L
    Il faut donc normalement reprendre la pluspart des formulaires et penser "Client serveur".
    Oui mais comment (modifier la connection à la base, les requêtes sur lesquelles s'appui les formulaires?)?

    Faut-il faire un lien odbc pour l'accès multi-utilisateur?
    Quelqu'un aurait-il une idée pour cette histoire de connexion perdue?

    d'autre part il ne me reste que trois semaines pour finir ce stage croyez vous que se sera suffisant pour terminer l'appli ? (j'ai 12 tables, environ 20 formulaires et autant d'états)

    Merci d'avance

  4. #4
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Non,

    Les "select" sont des vues s'il n'y a pas de paramêtre et des PS dans le cas contraire.
    Si tu veux faire des "Insert/Delete/Update" et les conserver se sont obligatoirement des PS.
    Mais tu peux aussi les exécuter directement depuis Access sans les stocker dans SQL server (exécuter directement les syntaxes SQL depuis VBA).

    Il n'y a pas besoin d'ODBC avec un projet ADP, tu es en prise direct avec ton serveur SQL. Access gère les confilts multiutilisateur selon les propriétés que tu lui à définit dans le projet ADP. Attention aux requêtes Update qui sont exécuter sur ton ordre !

    D'autre part, lorsque j'importe mes formulaires, je n'ai plus le code vba associé (erreur: la connexion réseau est peut être perdue), comment faire?
    Pour ce problème de connexion réseau, je ne pense pas qu'il s'agisse de connexion avec le serveur SQL, mais plutôt d'enregistrement de ta base Access qui doit être corrompu et c'est pour cela que tu ne récupère pas le code associé aux formulaires. Normalement en important les formulaire, même dans un projet ADP tu récupère le code associé.

    Essaye donc de copier ta base Access en local, de la compacter et de la réparé selon ta version d'access et ensuite d'importer tes formulaire dans ton projet ADP.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    Encore une fois merci didier !!

    j'ai reussi a resoudre le probleme du vba lié au formulaire

    Didier L a écrit :
    Il faut donc normalement reprendre la pluspart des formulaires et penser "Client serveur".

    Je dois modifier les parametres de connexion pour se connecter à la base de données SQL server? (modifier les element du style:CurrentDb par CurrentProject?)

    D'autre part je viens de faire une decouverte si j'ai du code DAO (ce qui est le cas), je vais devoir le transformer en ADO?

    tu crois que c'est faisable en trois semaines?

  6. #6
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Pour répondre à tes deux premières questions c'est Oui :

    CurrentProject remplace CurrentDb
    Et
    ADO remplace DAO

    Pour la dernière question, tout dépend de la taille de la base access initiale en nombre de formulaire, état, code etc...
    Tout dépend de ta capacité de travail (si tu dors ou pas la nuit )
    Et ensuite des problèmes liés à l'écriture même du code initialement (la base était elle bien construite et prope au départ)

    Je pense que tu as du "pain sur la planche" comme on dit mais c'est peux être réalisable

    Et puis il y a le forum si tu as des questions

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    MERCI MERCI

    Ca se degrossi bien là

    dans mes procédures stockées comment je peux faire réf à un objet d'un formulaire?

    Par exemple dans la procedure "Outil"
    -----------------------------------
    CREATE PROCEDURE Outil
    @Param1
    AS
    SELECT * FROM table1
    WHERE champ1 = @Param1
    -----------------------------

    mais a quel endroit j'affecte une valeur à param1 et comment?
    dans une autre procédure?(je crois po mais bon...)

    DECLARE @param1 integer

    SET @param1=[Formulaires]![Formulaire Outil]![numoutil]

    EXECUTE Outil @param1

    ou bien dans le code vba je met :
    Execute outil ([Formulaires]![Formulaire Outil]![numoutil])

  8. #8
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Une procédure stockée est considéré comme une clause SQL exécuté du coté serveur, donc en aucun cas elle ne peux faire référence à un formulaire.
    Il faut donc que la clause SQL soit du type :
    Donc esaye un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Execute "outil  " & [Formulaires]![Formulaire Outil]![numoutil]
    Afin que le "[Formulaires]![Formulaire Outil]![numoutil]" soit interprété avant d'être envoyé à SQL

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    et pour changer .... Merci

    J'ai encore une question est ce que c'est normal que je ne puisse pas modifier mon appli adp depuis access (du moins certains elements comme par exemple les vues que je suis obligé de créer sous Dbamgr2k, ou encore les schémas que je ne peux carrément pas faire : pb de l'accès exclusif (voir + haut))
    (je me connecte avec le compte sa qui je pense doit avoir toutes les autorisations)

    Merci d'avance!!!

  10. #10
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Non,

    Normalement tu peux créer et modifié des vues et des PS depuis Access, ainsi que les schémas

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    Faut se créer des droits sur la base via osql (utilitaire livré avec msde) d'après ce que j'ai compris mais ce que j'ai fait ne fonctionne pas...

    Je créé un nouveau compte et je lui donne tous les droits mais je vois pas ou c'est qu'on change de compte (je me connecte avec sa) et j'ai accordé les droits a un autre (au passage c'est bizzare que quand on soit administrateur on est pas tous les doits par défaut).

  12. #12
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Moi je travaille avec SQL Server et effectivement avec sa j'ai tous les droits.
    Je vois difficilement se qui se passe sur ta base.
    Peux tu travailler directement dans SQL ?

    Pour changer de compte utilisateur, de serveur ou tout autre parmêtre de connexion, va dans ton projet ADP dans Fichier->connexion

    Essaye de ressaisir ton mot de passe sa ou de te connecter avec ton nouveau compte

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    ben c'est ce que je me disais (pour l'histoire du compte) aussi mais je sais pas pourquoi ca marche pas j'ai du faire une coenne avant...

    D'autre part pour travailler directement sos sql c'est chaud avec msde (c'est SQL server MEGA simplifié, je dirais même qu'il n'y a pas grand chose).
    Pour faire des manip sur la base je suis obligé de passer par dbamgr2k mais là ca fonctionne, je peux faire presque tout ce que je veux, y a que les schémas que je peux pas faire (d'ailleurs ça m'ennuie parce que les tables sont biens importées mais pas les relations entre les tables).

    Peut etre que je ne peux pas faire les modif sur ma a cause de msde (par défaut il ne doit pas mettre de droits et il doit falloir se les rajouter mais là je trouve po...)


    Encore merci

  14. #14
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Pense au tag résolu si ce post est terminé et si tu as d'autres questions n'hésite pas à ouvrir d'autre posts.

    Il vaut mieux avoir plusieurs posts que plusieurs sujet dans une même discusion

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    Salut,

    Citation Envoyé par Didier L
    Donc esaye un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Execute "outil  " & [Formulaires]![Formulaire Outil]![numoutil]
    Avec cette synthaxe ça ne fonctionne pas.
    J'ai essayé avec ce code mais c'est pas bon non plus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    cmd.ActiveConnection = bds.ConnectionString
    cmd.CommandType = adCmdStoredProc
    cmd.CommandText = "R affectation IPR modif2"
     
    'cmd.Parameters("@NumService").Value = 1
    cmd.Execute
    avec cmd =ADODB.Command

    Merci

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    Je viens de résoudre l'affaire des paramètres de ma procédure stockée.

    La synthaxe est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cmd.Parameters.Item("@Num_service").Value = 1
    cmd.Parameters.Item("@Outil_hs").Value = 1
    @Num_service et @Outil_hs étant les pramatres de ma PS.
    (à mettre après le commandtype et le commandtext )

    Par contre lorsque je veux executer la PS j'ai l'erreur:"[Microsoft][ODBC SQL Server driver] erreur de synthaxe ou violation d'accès.

    Je lance cette commande:cmd.Execute (et même si je lui donne le nom de la ps en paramètre)

    Merci d'avance.

  17. #17
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Voila la syntaxe que j'utilise en ADP :

    Si je veux récupérer le résultat de ma PS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim Marq As New Recordset
        With Marq
            Set .ActiveConnection = CurrentProject.Connection
            .CursorType = adOpenDynamic
            .Open "MaPS " & Param1 & "," & Param2
            While Not .EOF
               ....
            Wend
        End With
    Si je veux juste executer ma PS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim Masql As String
        Masql = "MaPs" & Param1 & "," & Param2
        CurrentProject.Connection.Execute Masql


    Je lance cette commande:cmd.Execute (et même si je lui donne le nom de la ps en paramètre)
    Evite les nom de PS avec des espacse, cela peux peut-être venir de la!
    ta PS te renvoie t'elle un résultat?
    Si oui Execute n'est pas la bonne commande et ou range tu le recordset resutat?

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    Merci de me répondre

    Tout d'abord t'as raison pour le nom des PS sans espaces ça fonctionne nickel.
    D'autre part ma ps renvoie des résultats que je dois afficher dans un sous formulaire (je pensais donc créer un recordset puis envoyer les données depuis le recordset vers le sous form mais peut-être qu'il y a une meilleure technique...)
    et si on fait pas execute, c'est quoi?

  19. #19
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806

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

Discussions similaires

  1. Projet Access Vs Base Access
    Par marot_r dans le forum Sondages et Débats
    Réponses: 2
    Dernier message: 09/12/2009, 20h22
  2. Réponses: 1
    Dernier message: 03/06/2009, 16h14
  3. Réponses: 4
    Dernier message: 03/01/2007, 21h25
  4. Projet Access et Base Access
    Par Mus_mus dans le forum Access
    Réponses: 1
    Dernier message: 11/12/2006, 10h08
  5. Migrer une application Access vers un projet adp
    Par lazizou dans le forum Projets ADP
    Réponses: 3
    Dernier message: 29/05/2006, 16h50

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