Bonjour,
Je réalise actuellement un programme permettant de récupérer des codes barres scannés par plusieurs lecteur ceode barre reliés à des ports com.
Pour cela j'utilise MsComm.
Voici les paramètres pour mon programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 With MSComm(nbport) .CommPort = rst("NoPortCom") .Handshaking = 2 .RThreshold = 1 .RTSEnable = True .Settings = "9600,n,8,1" .SThreshold = 1 .PortOpen = True End With
Et l'utilisation MsComm :
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 Private Sub MSComm_OnComm(Index As Integer) Select Case MSComm(Index).CommEvent Case comEvReceive Pause 0.5 tampon = MSComm(Index).Input Call Traitement(tampon, Index) 'traitement données Case comEvSend ' il y a des caractères à envoyer Case comEvEOF 'on a reçu le caractère EOF End Select End Sub
Sachant que dans la fonction traitement je récupère les infos No port comm, l'article scanné, la date et l'heure et j'enregistre dans une base.
Plusieurs lecteurs code barres scanneront ensuite automatiquement des codes barres. Le problème est le suivant. Lorsque je scanne des articles les uns après les autres lentement, il n'y a pas de problème. Par contre si 2 articles sont scannés quasiment en même temps, ce qui pourra arrivé, tout n'est pas enregistré dans la base. Le scannage est trop rapide par rapport à l'enregistrement. J'ai essayé de ne pas enregistrer dans une base mais dans une liste. C'est un peu mieux. Mais il loupe encore des infos. Est ce que quelqu'un aurait une idée géniale pour résoudre mon problème.
Merci d'avance.
Partager