OVH Cloud OVH Cloud

probleme d'incompatibilité de type

1 réponse
Avatar
el_quincho
Bonjour,

Je veut passer plusieurs parametre a un etat avec la methoode openargs on
m'a conseillé de concatener les parametre et apres de les separer.

Le probleme c'est que j'ai une incompatibilité de type que je n'arrive pas a
resoudre

Je veut passser la valeur d'un combo et un champ identifiant

Ceci est le code de mon formulaire de reception
Code:

Dim Strmsg As String
Dim Ide As Integer
Dim Argz As String
Dim pos1 As Integer

Argz = Me.OpenArgs
pos1 = InStr(Argz, "|@|")
Strmsg = Left(Argz, pos1 - 1)

Ide = CInt(Right(Argz, pos1 + 1))



Voici le code du module qui passe les parametres

Code:

Function PassageArgs()
Dim Recupcmbo As String
Dim Ide As Integer

Recupcmbo = Forms![F_impression]![cmbCC]
Ide = Forms![F_impression]![lstaffichage]

DoCmd.OpenReport "E_contrat", acViewPreview, , , acWindowNormal, Recupcmbo &
"|@|" & Ide
End Function



par exemple si je veut passer C1|@|90

J'arrive bien a recuperer C1 mais pas 90 il me dit erreur de compatibilité
de type.

90 vient d'un champ identifiant en numero auto que je recupere a partir
d'une zone de liste

L'erreur apparait ici

Code:

Ide = CInt(Right(Argz, pos1 + 1))


Merci de m'aider

1 réponse

Avatar
Eric
Bonjour,

Ajoutes à la suite des Dim:
Dim sep as String
sep="|@|"
Argz = Me.OpenArgs
pos1 = InStr(Argz, sep)
Strmsg = Left(Argz, pos1 - 1)
ide = CInt(Mid(Argz, pos1 + Len(sep)))

et ça devrait tourner car tu dois extraire non par la droite mais à
partir d'une certaine position dans la chaine donc il faut utiliser la
fonction Mid.

Bonjour,

Je veut passer plusieurs parametre a un etat avec la methoode openargs on
m'a conseillé de concatener les parametre et apres de les separer.

Le probleme c'est que j'ai une incompatibilité de type que je n'arrive pas a
resoudre

Je veut passser la valeur d'un combo et un champ identifiant

Ceci est le code de mon formulaire de reception
Code:

Dim Strmsg As String
Dim Ide As Integer
Dim Argz As String
Dim pos1 As Integer

Argz = Me.OpenArgs
pos1 = InStr(Argz, "|@|")
Strmsg = Left(Argz, pos1 - 1)

Ide = CInt(Right(Argz, pos1 + 1))



Voici le code du module qui passe les parametres

Code:

Function PassageArgs()
Dim Recupcmbo As String
Dim Ide As Integer

Recupcmbo = Forms![F_impression]![cmbCC]
Ide = Forms![F_impression]![lstaffichage]

DoCmd.OpenReport "E_contrat", acViewPreview, , , acWindowNormal, Recupcmbo &
"|@|" & Ide
End Function



par exemple si je veut passer C1|@|90

J'arrive bien a recuperer C1 mais pas 90 il me dit erreur de compatibilité
de type.

90 vient d'un champ identifiant en numero auto que je recupere a partir
d'une zone de liste

L'erreur apparait ici

Code:

Ide = CInt(Right(Argz, pos1 + 1))


Merci de m'aider


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr