OVH Cloud OVH Cloud

[VB6] dataenvironment - parametres

4 réponses
Avatar
mikhaël
Bonjour,

j'utilise un dataenvironment + datareport
j'ai crée une commande avec une requete SQL et un parametre dans la requete
:
... LIKE ? ...
quand je definie les propriété du parametre sur integer ca marche pour
passer les entier
mais je n'arrive pas a faire passer un parametre de chaine ,
j'ai essayé de changer le type de donnée : Adchar , .... mais rien n'y fait
le datareport apparait tout blanc .
Une solution ?
merci

Mikhael

----------------------------------------------------
Dim legataire As String
legataire = "11"
Dim legataire1 As Integer
legataire1 = 11

Load DataEnvironment2

With DataEnvironment2
If .rscmdnonvalide.State <> 0 Then rscmdnonvalide.Close
.cmdnonvalide legataire
End With

If datareport.Visible = True Then Unload datareport
datareport.Refresh
If datareport.Visible = False Then datareport.Show 1
-------------------------------------------------------

4 réponses

Avatar
Pascal B.
Il me semble qu'il y a une faute dans ton SQL:

au lieu de ... LIKE ? ... écris ... LIKE '?' ...

Pascal



"mikhaël" a écrit dans le message de
news:
> Bonjour,
>
> j'utilise un dataenvironment + datareport
> j'ai crée une commande avec une requete SQL et un parametre dans la
requete
> :
> ... LIKE ? ...
> quand je definie les propriété du parametre sur integer ca marche pour
> passer les entier
> mais je n'arrive pas a faire passer un parametre de chaine ,
> j'ai essayé de changer le type de donnée : Adchar , .... mais rien n'y
fait
> le datareport apparait tout blanc .
> Une solution ?
> merci
>
> Mikhael
>
> ----------------------------------------------------
> Dim legataire As String
> legataire = "11"
> Dim legataire1 As Integer
> legataire1 = 11
>
> Load DataEnvironment2
>
> With DataEnvironment2
> If .rscmdnonvalide.State <> 0 Then rscmdnonvalide.Close
> .cmdnonvalide legataire
> End With
>
> If datareport.Visible = True Then Unload datareport
> datareport.Refresh
> If datareport.Visible = False Then datareport.Show 1
> -------------------------------------------------------
>
>
Avatar
mikhaël
non cela marche avec un parametre qui est un integer
si je met les '' ca marche pas
mais impossible de passer un parametre string ou varchar avec le
dataenvironment !?
j'ai essayé avec le code
.command1 "parametrestring" ou .command1 parametrestring
idem , ca ne fonctionne pas


"Pascal B." <panthere_rose_AROBASEhotmailPOINTcom> a écrit dans le message
news:
Il me semble qu'il y a une faute dans ton SQL:

au lieu de ... LIKE ? ... écris ... LIKE '?' ...

Pascal



"mikhaël" a écrit dans le message de
news:
> Bonjour,
>
> j'utilise un dataenvironment + datareport
> j'ai crée une commande avec une requete SQL et un parametre dans la
requete
> :
> ... LIKE ? ...
> quand je definie les propriété du parametre sur integer ca marche pour
> passer les entier
> mais je n'arrive pas a faire passer un parametre de chaine ,
> j'ai essayé de changer le type de donnée : Adchar , .... mais rien n'y
fait
> le datareport apparait tout blanc .
> Une solution ?
> merci
>
> Mikhael
>
> ----------------------------------------------------
> Dim legataire As String
> legataire = "11"
> Dim legataire1 As Integer
> legataire1 = 11
>
> Load DataEnvironment2
>
> With DataEnvironment2
> If .rscmdnonvalide.State <> 0 Then


rscmdnonvalide.Close
> .cmdnonvalide legataire
> End With
>
> If datareport.Visible = True Then Unload datareport
> datareport.Refresh
> If datareport.Visible = False Then datareport.Show 1
> -------------------------------------------------------
>
>




Avatar
matec.sa.
Salut mikhaël

Si ta requete est dans un module :

If fLogin.ok Then
de1.rssecret.Open
codeope = fLogin.txtPassword
de1.rssecret.Find "[code] LIKE '" & codeope & "'"
operateur = de1.rssecret.Fields(0)
de1.rssecret.Close
End If

Si ta requete est la propriete d'un data report :

SELECT * FROM HISTO_MOVEMENTS WHERE FAMILLE=?;

+ dans ton code :


de1.recupfam pfamille

Load histofam

histofam.Orientation = rptOrientLandscape
histofam.Show vbModal
de1.rsrecupfam.Close
Unload movefam

et voilà

dis moi si cela fonctionne...

seb @+
"mikhaël" a écrit dans le message de
news:
Bonjour,

j'utilise un dataenvironment + datareport
j'ai crée une commande avec une requete SQL et un parametre dans la


requete
:
... LIKE ? ...
quand je definie les propriété du parametre sur integer ca marche pour
passer les entier
mais je n'arrive pas a faire passer un parametre de chaine ,
j'ai essayé de changer le type de donnée : Adchar , .... mais rien n'y


fait
le datareport apparait tout blanc .
Une solution ?
merci

Mikhael

----------------------------------------------------
Dim legataire As String
legataire = "11"
Dim legataire1 As Integer
legataire1 = 11

Load DataEnvironment2

With DataEnvironment2
If .rscmdnonvalide.State <> 0 Then rscmdnonvalide.Close
.cmdnonvalide legataire
End With

If datareport.Visible = True Then Unload datareport
datareport.Refresh
If datareport.Visible = False Then datareport.Show 1
-------------------------------------------------------




Avatar
mikhaël
Salut
Merci pour la reponse ,
je viens juste de trouver une solution qui fonctionne
je ne passe plus de parametre a l'aide de la fenetre du dataenviroment mais
je place ma requete directement dans le code comme ceci :
où drnonvalide est le datareport associée a la requete cmdnonvalide

Set drnonvalide.DataSource = Nothing
DataEnvironment2.Commands.Item("cmdnonvalide").CommandType = adCmdText
DataEnvironment2.Commands.Item("cmdnonvalide").CommandText = "SELECT * from
objet WHERE Objet.valide IS NULL AND Objet.nom LIKE 'exemple' "
DataEnvironment2.Commands.Item("cmdnonvalide").Execute

On Error Resume Next
DataEnvironment2.rscmdnonvalide.Open
DataEnvironment2.rscmdnonvalide.Requery

Set drnonvalide.DataSource = DataEnvironment2
Load drnonvalide

If drnonvalide.Visible = True Then Unload drnonvalide
drnonvalide.Refresh
If drnonvalide.Visible = False Then drnonvalide.Show 1
Unload drnonvalide

"matec.sa." a écrit dans le message news:
bur8ia$mu1$

Salut mikhaël

Si ta requete est dans un module :

If fLogin.ok Then
de1.rssecret.Open
codeope = fLogin.txtPassword
de1.rssecret.Find "[code] LIKE '" & codeope & "'"
operateur = de1.rssecret.Fields(0)
de1.rssecret.Close
End If

Si ta requete est la propriete d'un data report :

SELECT * FROM HISTO_MOVEMENTS WHERE FAMILLE=?;

+ dans ton code :


de1.recupfam pfamille

Load histofam

histofam.Orientation = rptOrientLandscape
histofam.Show vbModal
de1.rsrecupfam.Close
Unload movefam

et voilà

dis moi si cela fonctionne...

seb @+
"mikhaël" a écrit dans le message de
news:
> Bonjour,
>
> j'utilise un dataenvironment + datareport
> j'ai crée une commande avec une requete SQL et un parametre dans la
requete
> :
> ... LIKE ? ...
> quand je definie les propriété du parametre sur integer ca marche pour
> passer les entier
> mais je n'arrive pas a faire passer un parametre de chaine ,
> j'ai essayé de changer le type de donnée : Adchar , .... mais rien n'y
fait
> le datareport apparait tout blanc .
> Une solution ?
> merci
>
> Mikhael
>
> ----------------------------------------------------
> Dim legataire As String
> legataire = "11"
> Dim legataire1 As Integer
> legataire1 = 11
>
> Load DataEnvironment2
>
> With DataEnvironment2
> If .rscmdnonvalide.State <> 0 Then rscmdnonvalide.Close
> .cmdnonvalide legataire
> End With
>
> If datareport.Visible = True Then Unload datareport
> datareport.Refresh
> If datareport.Visible = False Then datareport.Show 1
> -------------------------------------------------------
>
>