MSComm locking up Excel

E

Eric

Has anyone ever experienced locking issues when they use
the MSCOMM control? Mine does it quite often and I do not
know why. Here is the code I am using:

Sub GetInput()
ActiveCell.Value = GetWeight()
End Sub

Public Function GetWeight() As Double
Dim sInput As String

On Error GoTo ErrorHandler

If frmComm.comExcel.InBufferCount > 0 Then
frmComm.comExcel.InBufferCount = 0
End If

ActiveCell.Value = "Waiting for Stable..."
frmComm.comExcel.CommPort = 1
frmComm.comExcel.Settings = "9600,N,7,2"
frmComm.comExcel.PortOpen = True
frmComm.comExcel.Output = "1S" & Chr$(13) 'Print on
stable
frmComm.comExcel.Output = "P" & Chr$(13) 'Display data

Do
DoEvents
Loop Until frmComm.comExcel.InBufferCount >= 18

sInput = frmComm.comExcel.Input
Dim x As Integer
Dim intLength As Integer
Dim strTemp As String
Dim strTemp1 As String

intLength = Len(sInput)

For x = 1 To intLength
strTemp = Mid(sInput, x, 1)

Select Case strTemp
Case 0 To 9
strTemp1 = strTemp1 + strTemp
Case "."
strTemp1 = strTemp1 + strTemp
End Select
Next x

GetWeight = strTemp1

frmComm.comExcel.PortOpen = False

'GetWeight = Val(Mid$(sInput, 1))

Exit Function

ErrorHandler:
If Err.Number = 8005 Then
Exit Function
Else
MsgBox Err.Description
End If
End Function
 
T

Tom Ogilvy

Do
DoEvents
Loop Until frmComm.comExcel.InBufferCount >= 18

would loop forever if InBufferCount doesn't achieve 18

perhaps you also want to capture the time when you enter the loop and have
it jump out or end when a certain amount of time has elapsed.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top