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

VBA Access Discussion :

Appel a une procedure stockée en vba [À faire]


Sujet :

VBA Access

  1. #21
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    il y a confusion dans ton code (et peut être dans ton esprit) camarade.
    ce doit être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Cmd("@Criteria")= Txt_Criteria.Text
    Cmd.Execute

  2. #22
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 64
    Points : 57
    Points
    57
    Par défaut
    Je n'ai jamais reussi a faire ce que tu veux faire
    Mais si jamias tu trouves, envoie moi un mail ET mais un post sur le forum.

  3. #23
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    Salut,

    Mouse, je butte exactement au meme endroit que toi...impossible de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim Req As ADODB.Recordset
    ...
        Set Req = Cmd.Execute
        Me.Lst_Resultat.RowSource = Req
    il ya une imcompatibilité de type au niveau du rowsource de la listbox...

    Ya pas un moyen de contourner le probleme? Ou une facon totalement differente de proceder?

  4. #24
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Set Me.Lst_Resultat.RowSource = Req
    serai peut être mieux

  5. #25
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    nop....il me dit qu'il y a "utilisation incorrecte de la propriété", et toujours au niveau du row source...

    Sniff...

  6. #26
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 64
    Points : 57
    Points
    57
    Par défaut
    Avec Access, et VBA, il n'EST PAS POSSIBLE d'affecter directement le resultat d'un recordset a un listbox.

    Me.listbox.rowsource attends du string, et non et un objet recordset

  7. #27
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    Serieusement?
    Affecter le resultat d'un recordset a un objet aussi utilisé et populaire qu'un listbox ne devrait pas poser autant de probleme....

    Je trouve ca plutot decevant de la part de Microsoft. Ils nous vendent Access 2000 comme un outil revolutionnaire (et cher) capable de faire "facilement" du Client/Serveur avec SQL Server via les projet adp, et on s'apercoit en fait qu'on est vite limité (ca fait que 2 semaines que je bosse sous access)

    Mouse, as-tu reussi a contourner le probleme? J'imagine que je ne suis pas le premier a vouloir alimenter un listbox par un recordset...

    Merci tout de meme a tous ceux m'ont aidé.

  8. #28
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 64
    Points : 57
    Points
    57
    Par défaut
    Pour resoudre ton probleme, tu n'es pas obliger de passer par une procedure stockee...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim CodeSQl as string
    CodSQL="SELECT [T-CLIENT].NOMC, [T-CLIENT].ADRESSEC1 FROM [T-CLIENT] WHERE [T-CLIENT].NOMC = ' " & Txt_Criteria.Text & "'"
     
    Lst_Resultat.RowSource = CodeSQL

  9. #29
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    En fait je voulais utiliser une proc. stockée dans le but de faciliter la gestion de toutes les requetes SQL de mon appli....je souhaitais pouvoir tout gerer depuis le server SQL.
    Ta methode marche bien en tout cas.
    Merci

  10. #30
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    je sais que ca ne resoud pas vraiment mon probleme mais j'ai trouvé un lien interressant qui explique par un exemple précis l'utilisation d'une proc. stockée, une vue, ou une fonction sql depuis un projet access.adp.

    Au cas ou ca interresserai quelqu'un, voici l'adresse :
    http://<br /> http://support.micros...;q281870<br />

    a+

  11. #31
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    et non ce topic n'est toujours pas résolu...enfin presque.

    En fait j'ai reussi à realiser l'appel à la procedure stockée et l'affectation du resultat correspondant dans une listebox de la maniere suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        With Me.Lst_Resultat
            .RowSource = "exec Ps_Rec_Cli '" & Me!Txt_Criteria & "'"
            .Requery
        End With
    Vous remarquerez que c'etait ridiculement anecdotique......

    Bref, mon pb est resolu.

    Par contre je fais toujours une grosse confusion concernant ADO : dans mon code VBA de mon projet Access, je n'utilise plus la méthode "ADODB.Connection". En effet, mes traitements ADO fonctionnent parfaitement sans utiliser de methode de connection (j'utilise directement les methodes ADODB.Command et ADODB.parameter)

    Comment ce fait-ce?

    Autre question : la portion de code ecrite ci-dessus est-elle de l'ADO?

    merci d'eclairer ma lanterne sur ce sujet.

  12. #32
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    tu utilises probablement des connections implicite, pour le confirmer il faudrait voir le code.
    Si c'est le cas, il vaut mieux éviter car tu va créer autant de connection que de command.

  13. #33
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    Cher Bidou,

    Voici un exemple de code recurrent dans mon appli :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    Private Sub btRemove_Click()
     
    Dim Cmd As ADODB.Command
    Dim prmStudentID As ADODB.Parameter, prmCourseID As ADODB.Parameter
     
       Set Cmd = New ADODB.Command
       Cmd.ActiveConnection = CurrentProject.Connection
       Cmd.CommandType = adCmdStoredProc
       Cmd.CommandText = "EnrollmentDel"
     
       Set prmStudentID = Cmd.CreateParameter("@StudentID", adInteger, adParamInput)
       Set prmCourseID = Cmd.CreateParameter("@CourseID", adInteger, adParamInput)
     
       Cmd.Parameters.Append prmStudentID
       prmStudentID.Value = Me!StudentID
       Cmd.Parameters.Append prmCourseID
       prmCourseID.Value = Me!lstCourses.Value
     
       Cmd.Execute
     
       Set Cmd = Nothing
       Set prmStudentID = Nothing
       Set prmCourseID = Nothing
     
     
        Call FillCoursesList
     
    End Sub
     
    ----
     
    Private Sub Form_Current()
        Call FillCoursesList
    End Sub
     
    ----
     
    Private Sub FillCoursesList()
     
        With Me.lstCourses
            .RowSource = "exec courseenrollment '" & Me!StudentID & "'"
            .Requery
        End With
     
    End Sub
    tu remarques qu'il n'y a aucun appel fait a la methode de connection ADO (par ex : Dim conn As ADODB.Connection
    Set conn = New ADODB.Connection
    conn.Open CurrentProject.Connection )

    et pourtant mon projet access marche nikel!.......Est ce que je bosse correctement?
    Est ce une connection implicite? Si oui, quels sont les problemes liés à ce type de connection?

    merci

  14. #34
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    non c'est une connection explicite puisque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cmd.ActiveConnection = CurrentProject.Connection
    Donc pour te répondre tu utilises la connection ADO de ton projet, ce qui est plutôt bien tant que la sécurité utilisateur n'est pas activé.

  15. #35
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    Ok je commence à saisir .....

    Merci beaucoup pour ton aide precieuse!

  16. #36
    Membre du Club
    Inscrit en
    Juin 2002
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 64
    Points : 57
    Points
    57
    Par défaut
    Alors la Howard je sais pas quoi dire,




    J'ai cherche cela pendant des moi, et maintenant je suis navre par temps de simpliciter.
    J'avais reussis a tout faire autrement, mais je suis bien content de savoir...



  17. #37
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    Salut mouse,

    c'est vrai que notre probleme commun etait affligeant de simplicité.
    Au passage, j'ai trouvé la solution sur le site de support microsoft :

    http://support.microsoft.com/default.aspx?scid=kb;en-us;304252

    c'est une mine d'or d'information avec pleins de "how to" très clairs et très detaillé.
    (exemple : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnapg/html/apgintro.asp )

    Bon, je crois que je peux maintenant me permettre de passer ce topic en mode [RESOLU]

    ypppppppppppppppppppiiiiiiiiiiiiiiii !


    a+

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [WD9] Appel d'une procedure stockée Oracle
    Par flora_vig dans le forum WinDev
    Réponses: 21
    Dernier message: 16/10/2008, 17h43
  2. je veux appeler une procedure stockée PLSQL
    Par mahmoud_mahmoud dans le forum JDBC
    Réponses: 3
    Dernier message: 10/03/2008, 16h26
  3. Réponses: 2
    Dernier message: 22/06/2006, 11h26
  4. Réponses: 7
    Dernier message: 16/12/2005, 10h15
  5. Réponses: 3
    Dernier message: 21/09/2004, 07h35

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