Umarım faydalı olabilmişimdir.
Kod:
Dim cevap
Dim buffer As String
If Me.top_metre > 0 Or Nz(Me.top_metre) <> "" Then
cevap = MsgBox("Metre alanı boş değil ! Sayaçtaki metre ile değiştirmek istediğinize eminmisiniz ?", vbYesNo)
If cevap = vbYes Then
With Mscomm
'seri portu kontrol et.
If .PortOpen Then .PortOpen = False
'aktif portu com3 yap
.CommPort = 4
'haberleşme hızı,parity,datab,t vs stop bit setleme
.Settings = "9600,N,8,1"
' DRT ve RTS bayraklarını setle
.DTREnable = True
.RTSEnable = True
'porttan gelen tüm bit okumalarını yetkilendir
.RThreshold = 0
'gönderilecek tüm bitleri yetkilendir
.SThreshold = 0
'Seri portu aç
.PortOpen = True
End With 'MSComm1
'Me.top_metre = MSComm.Input
'MSComm.PortOpen = False
Do
buffer = Mscomm.Input
Loop Until InStr(buffer, "")
Me.top_metre = Replace(buffer, ".", ",")
top_metre_AfterUpdate
Mscomm.PortOpen = False
Else
Exit Sub
End If
Else
With Mscomm
'seri portu kontrol et.
If .PortOpen Then .PortOpen = False
'aktif portu com3 yap
.CommPort = 4
'haberleşme hızı,parity,datab,t vs stop bit setleme
.Settings = "9600,N,8,1"
' DRT ve RTS bayraklarını setle
.DTREnable = True
.RTSEnable = True
'porttan gelen tüm bit okumalarını yetkilendir
.RThreshold = 0
'gönderilecek tüm bitleri yetkilendir
.SThreshold = 0
'Seri portu aç
.PortOpen = True
End With 'MSComm1
'Me.top_metre = MSComm.Input
'MSComm.PortOpen = False
Do
buffer = Mscomm.Input
Loop Until InStr(buffer, "")
Me.top_metre = Replace(buffer, ".", ",")
top_metre_AfterUpdate
Mscomm.PortOpen = False
End If