mot de passe avec access 2007 pour connexion odbc

Forum consacré aux développements d'applications interfacées avec les logiciels Sage

Modérateurs: Super Modérateur, Modérateurs

Règles du forum
Merci de prendre connaissance des règles d'utilisation du forum

Avant de poster un nouveau message, utilisez la fonction RECHERCHER. Indiquez la VERSION de votre logiciel et toutes informations utiles à la résolution de votre question. Ne rédigez pas vos messages en MAJUSCULES. Soyez courtois et pensez aux formules de POLITESSE d'usage. Les messages à vocation COMMERCIALE ou PUBLICITAIRE seront supprimés.

*** LORSQU'UN SUJET EST RESOLU, SON AUTEUR DOIT EDITER LE 1ER MESSAGE DU SUJET EN HAUT DE PAGE ET COCHER "SUJET RESOLU" ***

mot de passe avec access 2007 pour connexion odbc

Messagede vince » Jeu 14 Jan 2010 16:01

Bonjour Ă  tous,

Je suis nouveau sur ce forum et bien content d'avoir découvert un forum parlant de l'odbc avec sage.
J'ai développé un programme sous access 2003 qui récupère des données dans la base sage compta, mais depuis que j'ai changé le poste et installé office 2007, à chaque ouverture de table liée de la compta dans access, il me demande le login et le mot de passe. Je clique directement sur ok car je n'ai pas de mot de passe et la table s'ouvre. Les ouvertures suivantes ne demande plus le mot de passe tant que je ne ferme pas la base. J'ai essayé sur un autre poste avec access2007 et ca fait la même chose.
La compta (ligne 100) est en v15.01 multiposte, les données sont sur un serveur windows 2000 avec le serveur v15.01. La connexion dsn vers la compta est fait par le gestionnaire odbc. Dans ma base access j'ajoute une table liée odbc en sélectionnant le dsn et en sélectionnant la table désirée (f_ecriturec). Je coche bien sur lors de la selection de la table "enregistrer le mot de passe". J'ai essayé en mettant un login (<administrateur> et ADMIN), mais ca ne change rien. J'ai essayé de créer ma table attaché directement en code mais là aussi ca me demande le mot de passe. Le programme permet de se connecter à plusieurs fichier comptable, du coup à chaque ouverture ca demande le mot de passe.

Si quelqu'un a une idée, je suis preneur.

Bonne journée,

Vincent
vince
Posteur néophyte
Posteur néophyte
 
Messages: 2
Inscription: Jeu 14 Jan 2010 15:06

Re: mot de passe avec access 2007 pour connexion odbc

Messagede poulpor78 » Mar 26 Jan 2010 13:13

Bonjour,

Je ne suis pas spécialiste et je bricole un peu sur Access/Excel vers Sage SQL Server, uniquement pour des requêtes de sélection, et sdans utiliser l'odbc officiel Sage.

J'ai testé Access 2007. J'ai eu d'autres problèmes mais pas le votre (notamment, l'activex Calendrier non compatible avec 2003).

Mon unique idée dans votre cas serait d'utiliser l'authentification windows NT dans le DSN et non par mot de passe.

Bon courage,

Poulpor
poulpor78
Posteur habitué
Posteur habitué
 
Messages: 23
Inscription: Mer 2 Avr 2008 18:19

Re: mot de passe avec access 2007 pour connexion odbc

Messagede poulpor78 » Mar 26 Jan 2010 13:25

Re,

Je viens d'analyser mon code ci-dessous (je sais je fais ce que je peux ...), on peut voir 'Trusted_Connection=Yes'.

Je pense que c'est un élément qui permet de se pas se relogguer en permanence.

Après, je suis trop léger en base sql pour aller plus loin.


Poulpor.





Le code du module :

Code: Tout sélectionner
Option Compare Database
Option Explicit

Function ChangeBase(MyChoice As String)
    Dim db As DAO.Database
    Dim tbl As TableDef
    Dim MyNewBase As String

    MyNewBase = FindBase(MyChoice)
    If MyNewBase = "Erreur" Then
        MsgBox "there's a path error"
        Exit Function
    End If


    Set db = CurrentDb

    For Each tbl In db.TableDefs

        If Left(tbl.Name, 2) = "F_" Then
            tbl.Connect = "ODBC;Driver={SQL Server};Server=MONSERVEURSQL;Database=" & MyNewBase & ";Trusted_Connection=Yes;"
            tbl.RefreshLink
        End If
    Next
    Forms("Principal").BASE_TRAVAIL.Value = CheminActuel
    Forms("Principal").BASE_TRAVAIL_CH.Value = Forms("Principal").BASE_TRAVAIL.Value
End Function

Function CheminActuel()

    Dim tbl As TableDef
    Dim MyMOY, MYBRUT, MYNET
    Dim db As DAO.Database

    Set db = CurrentDb

    For Each tbl In db.TableDefs
        If Left(tbl.Name, 2) = "F_" Then
            MYBRUT = tbl.Properties("Connect")
            Exit For
        End If
    Next

    MyMOY = Replace(MYBRUT, "ODBC;Driver={SQL Server};Server=MONSERVEURSQL;Database=", "")
    MYNET = Replace(MyMOY, ";Trusted_Connection=Yes;", "")


    Dim VMySql As String
    Dim QueryMag As QueryDef
    Dim MonResultat    ' As Recordset

    VMySql = "SELECT MY_BASES.ID_PATH, MY_BASES.BASE FROM MY_BASES WHERE (((MY_BASES.DATABASE_NAME)=""" & MYNET & """));"

    Set QueryMag = CurrentDb.CreateQueryDef("")
    With QueryMag
        .SQL = VMySql
        Set MonResultat = .OpenRecordset()
    End With

    If MonResultat.RecordCount = 0 Then
        MsgBox "No Record"
        Exit Function
    Else
        CheminActuel = MonResultat("BASE")
    End If

    QueryMag.Close
    Set QueryMag = Nothing

End Function


Function FindBase(MyChoice As String)

    FindBase = "Erreur"

    Dim VMySql As String
    Dim QueryMag As QueryDef
    Dim MonResultat    ' As Recordset
    'SELECT MY_BASES.ID_PATH, MY_BASES.BASE, MY_BASES.DATABASE_NAME FROM MY_BASES;

    VMySql = "SELECT MY_BASES.ID_PATH, MY_BASES.DATABASE_NAME FROM MY_BASES WHERE (((MY_BASES.BASE)=""" & MyChoice & """));"

    Set QueryMag = CurrentDb.CreateQueryDef("")
    With QueryMag
        .SQL = VMySql
        Set MonResultat = .OpenRecordset()
    End With

    If MonResultat.RecordCount = 0 Then
        MsgBox "No Record"
        Exit Function
    Else
        FindBase = MonResultat("DATABASE_NAME")
    End If

    QueryMag.Close
    Set QueryMag = Nothing
End Function

Function PathActuel()

    Dim tbl As TableDef
    Dim MyMOY, MYBRUT, MYNET
    Dim db As DAO.Database

    Set db = CurrentDb

    For Each tbl In db.TableDefs
        If Left(tbl.Name, 2) = "F_" Then
            MYBRUT = tbl.Properties("Connect")
            Exit For
        End If
    Next

    MyMOY = Replace(MYBRUT, "ODBC;Driver={SQL Server};Server=MONSERVEURSQL;Database=", "")
    MYNET = Replace(MyMOY, ";Trusted_Connection=Yes;", "")


    Dim VMySql As String
    Dim QueryMag As QueryDef
    Dim MonResultat    ' As Recordset

    VMySql = "SELECT MY_BASES.ID_PATH, MY_BASES.GROUP_PATH FROM MY_BASES WHERE (((MY_BASES.DATABASE_NAME)=""" & MYNET & """));"

    Set QueryMag = CurrentDb.CreateQueryDef("")
    With QueryMag
        .SQL = VMySql
        Set MonResultat = .OpenRecordset()
    End With

    If MonResultat.RecordCount = 0 Then
        MsgBox "No Record"
        Exit Function
    Else
        PathActuel = MonResultat("GROUP_PATH")
    End If

    QueryMag.Close
    Set QueryMag = Nothing

End Function
poulpor78
Posteur habitué
Posteur habitué
 
Messages: 23
Inscription: Mer 2 Avr 2008 18:19

Re: mot de passe avec access 2007 pour connexion odbc

Messagede vince » Mar 26 Jan 2010 15:41

Merci pour la réponse,

J'ai essayé d'ajouter trusted_connection=yes à la ligne de connexion mais ca ne change rien, dès que je ferme access et que je l'ouvre, il me redemande login et mot de passe à l'ouverture de ma table liée.

Une autre idée ?

A+

Vincent
vince
Posteur néophyte
Posteur néophyte
 
Messages: 2
Inscription: Jeu 14 Jan 2010 15:06

Re: mot de passe avec access 2007 pour connexion odbc

Messagede OokieDookie » Mar 26 Jan 2010 17:10

"L'expérience est le nom que chacun donne à ses erreurs." (O. Wilde)
Qualité et précision de la question conditionnent celles de la réponse. :roll:
:arrow:Nouveau venu ? Une urgence ? A lire...
:arrow:SMS-addict / M(o)ufles OEM ?
Avatar de l’utilisateur
OokieDookie
Modérateur
Modérateur
 
Messages: 1012
Inscription: Jeu 14 Fév 2008 13:50
Localisation: Paris


Retourner vers Développements ODBC, Objets métiers, SQL

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités