2010-09-02 139 views
3
Dim MSComm1 As MSComm 

on error goto cant_open_com1 

MSComm1.CommPort = 1 
MSComm1.Settings = "9600,N,8,1" 
MSComm1.DTREnable = True 
MSComm1.Handshaking = comRTS 
MSComm1.InBufferSize = 12 + 1 ' +1 for the CR 
MSComm1.RThreshold = MSComm1.InBufferSize 
MSComm1.RTSEnable = True 
MSComm1.InputLen = 0 ' read entire input buffer 
MSComm1.InputMode = comInputModeText 
MSComm1.NullDiscard = True 
MSComm1.OutBufferSize = 0 ' not used, we don't write to the serial port 
MSComm1.SThreshold = MSComm1.OutBufferSize 
'MSComm1.ParityReplace = ? 

MSComm1.PortOpen = True 

控制傳遞到對錯誤處理程序爲什麼VB 6代碼不能打開串口?

+1

而且我們有猜測錯誤信息是什麼? (?) – Marco 2010-09-02 14:02:13

+1

@Marco給出發佈的代碼,它應該是'Object variable或With block variable not set',因爲'MSComm1'是'Nothing'。 – GSerg 2010-09-02 14:05:03

+1

我想這是因爲你沒有初始化MSComm1,嘗試將它設置爲新的msComm。 設置MSComm1 =新的MSComm(或類似的東西) 這是使用一個控件來做到這一點。 我從來沒有使用COM端口..只有一次,但我用了一個很好的OCX:P http://www.thaiio.com/prog-cgi/0002_serial.htm – Marco 2010-09-02 14:17:10

回答

2

當你說「控制轉到錯誤處理程序」,你忘了添加一個Exit Sub?在你的評論中,你說你添加了新的聲明,但是你仍然有問題?那麼,我只是運行這個代碼,並沒有打開端口的麻煩。

Private Sub Form_Load() 

    Dim MSComm1 As New MSComm 

    On Error GoTo cant_open_com1 

    MSComm1.CommPort = 1 
    MSComm1.Settings = "9600,N,8,1" 
    MSComm1.DTREnable = True 
    MSComm1.Handshaking = comRTS 
    MSComm1.InBufferSize = 12 + 1 
    MSComm1.RThreshold = MSComm1.InBufferSize 
    MSComm1.RTSEnable = True 
    MSComm1.InputLen = 0 
    MSComm1.InputMode = comInputModeText 
    MSComm1.NullDiscard = True 
    MSComm1.OutBufferSize = 0 
    MSComm1.SThreshold = MSComm1.OutBufferSize 

    MSComm1.PortOpen = True 

    Exit Sub 

cant_open_com1: 
    Debug.Print Err.Description 

End Sub 
+1

注意,vb6不允許Dim MSComm1作爲新的MSComm。它必須是兩個語句:Dim MSComm1 Set MSComm1 = New MSComm and you * must * include the「Set」 – Mawg 2010-09-03 03:21:23

+0

@mawg:正如我所說的,*我剛剛運行此代碼,並且它沒有打開端口*的麻煩。你是否?如果你這樣做了,而且它不適合你,那麼我想我們還有另一個問題需要解決。也許你應該發問一個問題,爲什麼它不起作用? – raven 2010-09-03 03:44:40

-1

請勿在端口COM1上設置打印機。 COM1端口將由打印機在COM1端口占用。使用Visual Basic MSCOMM組件時,不需要任何打印機驅動程序。如果您在COM1端口中設置打印機。您可以使用下面的代碼。此代碼不會受到打印機設置的影響。

Visual Basic中:打開「COM1」輸出#1