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

Access Discussion :

Procédure Stockée SQL Server avec critère pour utilisation dans ACCESS [AC-2010]


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    logisticien
    Inscrit en
    Mai 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : logisticien
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2015
    Messages : 15
    Points : 17
    Points
    17
    Par défaut Procédure Stockée SQL Server avec critère pour utilisation dans ACCESS
    Bonjour
    Sur un ancien projet .adp (Access 2003 sour SQL server 2000) je me servais d'une procédure stockée comme source d'une liste déroulante.
    Cette liste déroulante se trouvait dans un formulaire et le critère de la procédure stockée était un champs de ce même formulaire.
    Ainsi la liste déroulante se personnalisait en fonction de l'enregistrement en cours sur le formulaire.
    Je ne parviens pas à retrouver cette fonctionnalité sous mon fichier Access 2010 sur SQL Server 2012 (lien ODBC)

    voici la procédure stockée sur serveur SQL

    USE [EBSMOP]
    GO
    /****** Object: StoredProcedure [dbo].[SP_Employés] Script Date: 01/06/2015 08:36:26 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[SP_Employés] @Dept nvarchar (30)
    as
    select Matricule, Nom, Prénom, Département, Téléphone, Compil
    from Responsables
    where Département like @Dept + '%'
    et voici le code VBA lié à la zone déroulante

    Private Sub Bouton_Dept_GotFocus()
    Me.Bouton_Dept.RowSource = "exec SP_Employés '" & Me.Département & "'"
    End Sub
    Lorsque je me positionne sur la liste déroulante (évènement GotFocus) j'ai le message d'erreur suivant :
    "Instruction SQL non valide, DELETE, INSERT, PROCEDURE, SELECT ou UPDATE attendus"

    Je précise que le paramètre n'est pas en cause, si je simplie le code de la procédure en enlevant le paramètre et que je fais de même sur le code VBA le message est le même.

    Faut il obligatoirement passer par quelque chose comme...

    Dim oRst As DAO.Recordset 'oRst est un recordset , un jeu d'enregistrements
    Dim oDb As DAO.Database 'oDb est la base de donnée de laquelle est issue ce jeu d'enregistrements
    Set oDb = CurrentDb 'oDb est définie comme étant la base de données ouverte
    Set oRst = oDb.OpenRecordset("SELECT Matricule, Nom, Prénom, Département,Téléphone, Compil from [dbo_Responsables] WHERE Département =" & Chr(34) & toto & Chr(34), dbOpenDynaset)
    mais comment renvoyer le résultat comme source de la liste déroulante ?

    Merci pour votre aide, salutations.

  2. #2
    Membre à l'essai
    Homme Profil pro
    logisticien
    Inscrit en
    Mai 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : logisticien
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2015
    Messages : 15
    Points : 17
    Points
    17
    Par défaut voici la solution
    Me.Bouton_Dept.RowSource = "SELECT dbo_Responsables.[Matricule], dbo_Responsables.[Nom], dbo_Responsables.[Prénom], dbo_Responsables.[Département], dbo_Responsables.[Téléphone], dbo_Responsables.[Compil] FROM dbo_Responsables WHERE dbo_Responsables.[Prénom] = '" & Me.Prénom.Value & "'" & "And dbo_Responsables.[Département] = '" & Me.Département.Value & "' "
    Me.Bouton_Dept est une zone de liste déroulante
    Me.Département et Me.Prénom sont des zones de texte du formulaire (représenté dans l'expression par Me)

    1°) Bien noter comment écrire une requête multi-critères entre les " et les '

    2°) dbo_ devant le nom de la table Responsables et dbo_Responsables devant les noms de champs de la table qui est positionnée sur un serveur SQL

    Dans le cas présent j'obtiens (OK ça n'a aucun intérêt, c'est pour faire un test) pour le département de la personne sur laquelle je suis positionné, les personnes qui ont le même département et... le même prénom.

    A adapter selon vos besoins.

    un (problème) de moins.

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 18/12/2013, 15h33
  2. Procédures stockées SQL Server, récupération sous Delphi
    Par rophi dans le forum Bases de données
    Réponses: 10
    Dernier message: 03/12/2007, 14h48
  3. Réponses: 1
    Dernier message: 04/03/2007, 15h40
  4. [procédure stockée][SQL server]Extraction, réinsertion
    Par caelum dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/02/2006, 07h59
  5. Procédures stockées SQL Server compatibles avec MySQL ?
    Par Nen'S dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 24/01/2006, 19h18

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