Prob:liaison entre une application en vb et access via DDE

Résolu
cs_machmacha Messages postés 97 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 28 mai 2010 - 27 mars 2007 à 12:49
cs_machmacha Messages postés 97 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 28 mai 2010 - 27 mars 2007 à 16:47
Bonjour a tous,
j'ai un petit souci, je veux réaliser une liaison entre une application en VB (sachant que jai pas le code source de cette application) avec un formulaire en dans Access via la technologie DDE.
les étape ke jai effectué pour l'intant et les suivants:
- jai créer un formulaire sous access ou il ya un champ test et dans le code de ce formulaire j'ai mis le code suivant :(sachant que l'application en VB communique via le DDE avec une feuille EXCEL grâce a une macro ), ben moi j'ai copie le code de cette macro et je l'ai coller dans le code du formulaire que fais avec access voilà le code :

Kanal = DDEInitiate("trade", "io")                     'trade c'est l'application en VB
daten$ = "DATEN löschen"
d$ = "DATEN löschen"
Befehl$ = "[@GR;23;" + "]"
DDEExecute Kanal, Befehl$                              
i$ = Mid$(daten$, 1, 3)
While i$ <> "@GR"
 MsgBox DDERequest(Kanal, "OUTPUT")             
 ddedaten = DDERequest(Kanal, "OUTPUT")
  daten$ = ddedaten(1)                                    'ici un message d'erreur s'affiche et c'est mon point de blocage (erreur d'exécution '13' : incompatibilité de type )

  If daten$ <> "" Then
    i$ = Mid$(daten$, 1, 3)
   
    End If
  Sleep 100
Wend

j'ai parcouru tout les forums sans résultat  , je suis vraiment bloquer et j'espère que vous m'avez bien compri, je désire une solution de mon problème ou des exemples qui traitent le meme sujet.
Mercii cher amigos

4 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 mars 2007 à 14:34
je ne comprends toujours pas le (1)

While i$ <> "@GR"        ' la boucle devient infinie    

 'MsgBox DDERequest(Kanal, "OUTPUT")              

  daten$ = DDERequest(Kanal, "OUTPUT")                                   

BP>  If daten$ (1) <> "" Then  'erreur de compilation tableu attendu
    i$ = Mid$(daten$, 1, 3)
   
    End If
  Sleep 100
Wend

essaye de placer un point d'arret (ligne BP>)
et de faire du pas a pas ...

je me demande si tu ne souhaites pas plutot :
i$ = Mid$(daten$, 2, 3)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 mars 2007 à 13:11
la doc
http://msdn2.microsoft.com/en-us/library/aa211875(office.11).aspx#

indique que DDERequest renvoie un String, et non un tableau...6

pourquoi faire :

ddedaten = DDERequest(Kanal, "OUTPUT")
  daten$ = ddedaten(1)  

et non

daten$ = DDERequest(Kanal, "OUTPUT")

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_machmacha Messages postés 97 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 28 mai 2010
27 mars 2007 à 13:28
rebonjour,
j'ai mis daten$ = DDERequest(Kanal, "OUTPUT") aulieu de ddedaten, mais le problème lorsque il entre dans ma boucle while il ne sort jamais (une boucle infinie)
j'ai essayé de mettre :

Kanal = DDEInitiate("trade", "io")                     'trade c'est l'application en VB
daten$ = "DATEN löschen"
d$ = "DATEN löschen"
Befehl$ = "[@GR;23;" + "]"
DDEExecute Kanal, Befehl$                              
i$ = Mid$(daten$, 1, 3)

While i$ <> "@GR"        ' la boucle devient infinie    

 'MsgBox DDERequest(Kanal, "OUTPUT")              

  daten$ = DDERequest(Kanal, "OUTPUT")                                   

  If daten$ (1)<> "" Then  'erreur de compilation tableu attendu
    i$ = Mid$(daten$, 1, 3)
   
    End If
  Sleep 100
Wend
0
cs_machmacha Messages postés 97 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 28 mai 2010
27 mars 2007 à 16:47
ouii ça marche merci bcp  vous savez j'adore ce forum je trouve tout ce que je veux coool
0
Rejoignez-nous