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 :

Requête SQL Server comme source d'un état


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Septembre 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 53
    Par défaut Requête SQL Server comme source d'un état
    Bonjour,
    Je sais affecter comme source d'un formulaire une requête qui attaque une base SQL Server dans Access avec :
    Set MyForm.Recordset = rst (ou rst est le recordset sur une requête sur ma base SQL server).
    Cela marche trés bien.
    Je voudrais faire la même chose pour un état.
    J'ai essayé pleins de choses et rien ne marche.

    Merci de vos éclaircissements.

  2. #2
    Expert confirmé
    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
    Par défaut
    Bonjour,

    Si tu es bien dans un mdb ou mde,
    crée une requête 'SQL Direct' et utilise la comme source de l'état.

    Chaîne de connexion ODBC pour la requête :
    ODBC;Driver={SQL Server};Server=NomDuServeur;Database=nombd; Uid=NomUtilisateur;Pwd=MotDePasse;

    La requête sera du style :
    SELECT * FROM NomView

    où NomView est une vue du serveur SQL Serveur.

    A+

  3. #3
    Membre confirmé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Septembre 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 53
    Par défaut Merci pour cette réponse
    Merci LedZeppII pour ta réponse rapide.
    Je vais préciser le contexte d'utilisation.
    La base utilisée est une base SAGE gestion commerciale.
    La base peut-êtr e une base propriétaire ou sql server.
    Dans les deux cas j'utilise dans mon code vba une connection sur un lien ODBC.
    J'ai pas de pbl. de connection, je ne peux pas utiliser une vue puisque cela n'existe pas pour les bases propriétaires.
    Donc je fais une requête du style "Select * from Nom_Table".

    Voici un exemple de code que j'utilise pour définir la source d'un formulaire et cela marche trés bien.

    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
         Dim SQL$
     
        SQL$ = "SELECT * FROM TABLE"
     
     
            Set Me.Recordset = rst
            If Not (rst.EOF) Then
                Me.CHAMP1.ControlSource = "DO_PIECE"
                Me.DO_DATE.ControlSource = "DO_DATE"
                Me.DO_DOMAINE.ControlSource = "DO_DOMAINE"
                Me.DO_TYPE.ControlSource = "DO_TYPE"
                Me.RE_NO.ControlSource = "RE_NO"
                Me.DO_EXPEDIT.ControlSource = "DO_EXPEDIT"
                Me.LI_NO.ControlSource = "LI_NO"
            End If

  4. #4
    Membre confirmé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Septembre 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 53
    Par défaut Merci LedZeppII
    Je vais préciser le contexte d'utilisation.
    La base utilisée est une base SAGE gestion commerciale.
    La base peut-être une base propriétaire ou sql server.
    Dans les deux cas j'utilise dans mon code vba une connection sur un lien ODBC.
    J'ai pas de pbl. de connection, je ne peux pas utiliser une vue puisque cela n'existe pas pour les bases propriétaires.
    Donc je fais une requête du style "Select * from Nom_Table".

    Voici un exemple de code que j'utilise pour définir la source d'un formulaire et cela marche trés bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
         Dim SQL$, rst as new adodb.recordset
     
        SQL$ = "SELECT DO_PIECE FROM TABLE"
        ' Ici je fais la connection et j'affecte mon recordset que je nomme rst
     
            Set Me.Recordset = rst ' ici j'affecte le résultat à mon formulaire.
                 Me.Texte1.ControlSource = "DO_PIECE"
                ' .... Reste du code
    J'essaye de faire la même chose pour un état.
    Set MyRpt.recordset = rst ' plante
    Donc j'utilise MyRpt.recordsource = rst ' plante
    j'ai aussi essayé myrp.SourceObject = rst ' plante
    Dans tous les cas j'ai l'erreur :
    "Erreur définie par l'application ou par l'objet"

    Si j'utilise la chaine sql comme source de l'état, j'ai la réponse "la table x n'existe pas". Bien sûr il cherche la table dans la base mdb.

    Je suis sur Access 2000.

  5. #5
    Expert confirmé
    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
    Par défaut
    Pour les Etats il n'y a pas de membre RecordSet disponible, contrairement aux formulaires.
    On ne peut utiliser que RecordSource qui est de type String.
    On peut lui affecter un nom de table, un nom de requête, ou une instruction SQL SELECT.

    La seule solution que je vois, à par lier les tables par ODBC, est une requête 'SQL Direct'.
    C'est une requête pour laquelle on définit une chaîne de connection ODBC (un peu comme pour la connexion ADODB).
    La requête se définit en créant une nouvelle requête à laquelle on n'ajoute aucun table, puis
    Menu principal->Requête->Spécifique SQL->SQL Direct.
    Là, tu peux reprendre exactement le même SELECT ... FROM ... que tu utilises avec le recordset ADODB.
    Reste à définir dans les propriétés de la requête la bonne chaîne de connexion ODBC.

    Bon courage.

  6. #6
    Membre confirmé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Septembre 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 53
    Par défaut
    Ok j'essaye merci !

  7. #7
    Expert éminent

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Pourquoi ne pas créer un projet adp plutot qu'une base de données mdb ? Les projets ADP sont conçus pour SQL Server

Discussions similaires

  1. Utilisation de SQL-Server comme Windev
    Par willsonlebig dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 23/06/2011, 11h52
  2. SQL server comme service windows
    Par legide dans le forum Administration
    Réponses: 3
    Dernier message: 17/09/2009, 15h08
  3. [SQL Server 2000] Source ODBC - Droits utilisateurs
    Par Invité dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/04/2008, 09h41
  4. auto increment avec sql server comme avec mysql
    Par skystef dans le forum Accès aux données
    Réponses: 6
    Dernier message: 21/09/2007, 08h22
  5. Réponses: 7
    Dernier message: 10/01/2007, 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