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

Requêtes et SQL. Discussion :

RecordSource pour un Réports "etat" sur access 2003


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut RecordSource pour un Réports "etat" sur access 2003
    j'au un problème pour affecter une table ou une requête sql avec recordset ou recordsource pour un état"reports" .

    le problème que j peux le faire avec des table local mais j'ai une table qui est sur un SQLSERVER protéger par un login et mot de passe

    pouvez-vous m'expliqué comment affecter une table protéger a un recordset ou recordsource d'un Etat

    NB: J'arrive a le faire pour un formulaire et pas pour un reports

    Merci d'avance

  2. #2
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut voilà le code
    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
    Dim cn As ADODB.Connection
          Dim rs As ADODB.Recordset
          Set cn = CreateObject("ADODB.Connection")
          Set rs = CreateObject("ADODB.Recordset")
          With cn
           .ConnectionString = "PROVIDER=SQLOLEDB;" & _
                               "DATA SOURCE=sever;" & _
                               "USER ID=sa;" & _
                               "PASSWORD=dimu;" & _
                               "INITIAL CATALOG=base"
           .Open
          End With
          With rs
           .CursorLocation = adUseClient '
           .CursorType = adOpenStatic
           .LockType = adLockBatchOptimistic
           .ActiveConnection = cn
           .Open "SELECT * FROM table"
          End With
    Me.Report.RecordSource = rs



    j'arrive pas a affecter rs

  3. #3
    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 768
    Points
    7 768
    Par défaut
    Bonjour,

    Pour affecter le recordset il faut écrire
    Par ailleurs, il faut que ces deux variables ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    ... soient de portée globale au module de code du formulaire ou de l'état.
    Il faut donc les déclarer en début de module de code, au lieu de les déclarer dans une sub ou une fonction.

    Sinon, une autre solution consiste à créer une table liée (ODBC) à la table SQL Server.
    Cette table devient alors disponible en tant que source d'un formulaire ou d'un état.

    A+

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par LedZeppII Voir le message
    Bonjour,

    Pour affecter le recordset il faut écrire
    Par ailleurs, il faut que ces deux variables ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    ... soient de portée globale au module de code du formulaire ou de l'état.
    Il faut donc les déclarer en début de module de code, au lieu de les déclarer dans une sub ou une fonction.

    Sinon, une autre solution consiste à créer une table liée (ODBC) à la table SQL Server.
    Cette table devient alors disponible en tant que source d'un formulaire ou d'un état.

    A+
    Merci pour votre réponse,
    En fait j'ai une table liée (ODBC) à une table SQLServer mais le server est protéger par une mot de passe voila mon code avec DAO , est ce que on peut l'excuté avec ADO ?

    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
    Dim db As DAO.Database, qd As DAO.QueryDef
    Dim strNomRequete As String
    Dim strODBCconn As String, strSQL As String
     
    ' Nom de la requête SQL-Direct à créer ou modifier
    strNomRequete = "select * from Clients"
    ' Chaîne de connexion ODBC (ici, sans DSN), pour requête SQL-Direct
    strODBCconn = "ODBC;DSN=Clients;UID=sa;PWD=dima;DATABASE=Clients"
     ' code SQL de la requête
    strSQL = "select * from Clients"
     Set db = CurrentDb
    ' Référence ou crée une requête
    On Error Resume Next
    Set qd = db.QueryDefs(strNomRequete)
    On Error GoTo 0
    If qd Is Nothing Then Set qd = db.CreateQueryDef(strNomRequete)
    ' SQL de la requête
    qd.SQL = strSQL
     Me.RecordSource = qd.SQL
    ' libère les objets
    Set qd = Nothing
    Set db = Nothing

  5. #5
    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 768
    Points
    7 768
    Par défaut
    Bonjour,

    Quoi que l'on fasse avec DAO ou avec ADODB, cela n'a aucune influence sur Access.
    Access utilise sa propre connexion.
    Il ne sert à rien de se connecter avec DAO ou ADODB, Access ne le voit pas.

    Pour ne pas avoir à re-saisir le nom d'utilisateur et le mot de passe, il faut cocher «Enregistrer le mot de passe» lors de la création de la table liée ODBC.
    Cette case à cocher se trouve dans la boîte de dialogue «Attacher les tables», lorsqu'on crée une table liée ODBC.
    Supprime ta table liée, et recrée la en cochant «Enregistrer le mot de passe».


    A+

Discussions similaires

  1. Aide pour corriger bases de données relationnelle sur Access
    Par emirov dans le forum Modélisation
    Réponses: 11
    Dernier message: 03/04/2008, 01h07

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