Parametres Access

Résolu
ghans Messages postés 12 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 14 juin 2005 - 27 sept. 2004 à 16:06
ghans Messages postés 12 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 14 juin 2005 - 28 sept. 2004 à 09:11
Bonjour,

Voici le probleme :
j'ai une base access, dans laquel j'ai une requete dont un champ prend un parametre du style :
Date=[Formulaires]![Choix]![DateDeb]
permettant via un formulaire access de saisir une date de début

Je souhaiterais appeler cette requete depuis une appli VB via ADO... comment puis-je lui passer ce paramètre ???

D'avance merci pour votre aide, qui sera, a n'en pas douter une aide précieuse... car je suis un peu dans le mur en ce moment...

Gh@ns

3 réponses

ghans Messages postés 12 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 14 juin 2005
28 sept. 2004 à 09:11
Re-bonjour,
Bon, éh bien après épluchage de la msdn voici la solution, je l'a met si cela peut aider quelqu'un... on sait jamais
Merci quand même a la personne qui m'a montrer qu'il y avait la solution dans la msdn...

Dim cnx As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim Rs As New ADODB.Recordset
Dim Param As New ADODB.Parameter

'** on instancie le paramètre et on le créer dans la command
'** Le nom du paramètre pourrait etre tout autre, il suffit qu'il existe pour qu'accès le prenne
Set Param = cmd.CreateParameter("[Formulaires]![Choix]![DateDeb]", adDate, adParamInput, , #1/1/2001#)

With cmd
.Parameters.Append Param '** j'ai un doute sur l'utilité de cette ligne
.CommandType = adCmdStoredProc '**afin de dire qu'il s'agit d'une procèdure stockée
.CommandText = "AATEST" '**c'est le nom de la procèdure stockée dans access
.ActiveConnection = cnx
End With
Set Rs = cmd.Execute() '**on execute la requete

Encore merci à ceux qui font que ce site existe !!!!
Au plaisir...
Gh@ns
3
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
27 sept. 2004 à 16:43
Voici un exemple de MSDN :


Public Sub ActiveConnectionX()

Dim cnn1 As ADODB.Connection
Dim cmdByRoyalty As ADODB.Command
Dim prmByRoyalty As ADODB.Parameter
Dim rstByRoyalty As ADODB.Recordset
Dim rstAuthors As ADODB.Recordset
Dim intRoyalty As Integer
Dim strAuthorID As String
Dim strCnn As String

' Define a command object for a stored procedure.
Set cnn1 = New ADODB.Connection
strCnn = "driver={SQL Server};server=srv;" & _
"uid=sa;pwd=;database=pubs"
cnn1.Open strCnn
Set cmdByRoyalty = New ADODB.Command
Set cmdByRoyalty.ActiveConnection = cnn1
cmdByRoyalty.CommandText = "byroyalty"
cmdByRoyalty.CommandType = adCmdStoredProc
cmdByRoyalty.CommandTimeout = 15

' Define the stored procedure's input parameter.
intRoyalty = Trim(InputBox( _
"Enter royalty:"))
Set prmByRoyalty = New ADODB.Parameter
prmByRoyalty.Type = adInteger
prmByRoyalty.Size = 3
prmByRoyalty.Direction = adParamInput
prmByRoyalty.Value = intRoyalty
cmdByRoyalty.Parameters.Append prmByRoyalty
  
' Create a recordset by executing the command.
Set rstByRoyalty = cmdByRoyalty.Execute()

' Open the Authors table to get author names for display.
Set rstAuthors = New ADODB.Recordset
rstAuthors.Open "authors", strCnn, , , adCmdTable

' Print current data in the recordset, adding
' author names from Authors table.
Debug.Print "Authors with " & intRoyalty & _
" percent royalty"
Do While Not rstByRoyalty.EOF
strAuthorID = rstByRoyalty!au_id
Debug.Print , rstByRoyalty!au_id & ", ";rstAuthors.Filter "au_id '" & strAuthorID & "'"
Debug.Print rstAuthors!au_fname & " " & _
rstAuthors!au_lname
rstByRoyalty.MoveNext
Loop

rstByRoyalty.Close
rstAuthors.Close
cnn1.Close

End Sub



donc il faut l'objet ADODB.Parameter et ses propriétés Type , Size ,Direction , Value et la méthodes Parameters.Append

et un ptit .Execute() pour cloturer.

:-p [mailto:cyberscorp2004@msn.com MSN] :big) [mailto:frop01@yahoo.fr YAHOO] >:)

Membre du club CodeS-SourceS
0
ghans Messages postés 12 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 14 juin 2005
27 sept. 2004 à 18:05
Alors...bin...soit c'est moi qui suis pas terrible,
soit c'est microsoft qui explique mal....
mais je n'y arrive pas

J'ai déclare un ADODB.parameter
que j'ai chargé avec notamment

param.name = "[Formulaires]![Choix]![DateDeb]"
Param.Type = adDate
Param.Value = #1/1/2001#

ensuite je fais avec une ADODB.command :

With cmd
.Parameters.Append Param
.CommandType = adCmdText
.CommandText = "select * from AATEST"
.ActiveConnection = cnx
End With

éh bien lors de la command :

Set Rs = cmd.Execute()

éh bien il attend un paramètre... donc il ne recoit pas celui que je lui ai passé

qu'est ce que j'ai raté ???

Gh@ns dit celui qui ne comprend rien
0
Rejoignez-nous