用rs232連結一部標籤印表機(EPSON U210),短距離都很正常
,因為須拉長距離約60M,所以就買了rs232-rs485的轉換器....
,用4芯電話線連結(RJ-11)?,可是印多筆資料時總是會lose ~> <~
,有啥解決方式ㄚ?快崩潰了~ > < ~
情況:在列印到約第14筆資料後,就不印了...(13筆內就比較正常)

我貼一下程式碼內容:
Private Sub CmdSend_Click()
AdoTemp.RecordSource = "select * from 購餐資料 where 座位 ='" _
& FormMain.FrmOrder.Caption & "'"
AdoTemp.Refresh
If AdoTemp.Recordset.RecordCount = 0 Then
MsgBox "尚未點餐。", vbInformation
  Exit Sub
Else
'中廚部1
    AdoTemp.RecordSource = "select * from 購餐資料 where 座位 ='" _
                & FormMain.FrmOrder.Caption & "'" _
                & " and 代號 < 2000 order by 代號"
    AdoTemp.Refresh
    If AdoTemp.Recordset.RecordCount > 0 Then
      classT = "【中廚】"
      MSComm.CommPort = 2
      MSComm.PortOpen = True
      MSComm.Output = Chr(27) & "@"
      MSComm.Output = Chr(27) + "!" + Chr(48) '英數字型拉高2倍
      MSComm.Output = Chr(28) + "!" + Chr(12) '中文字型放大2倍

Do Until AdoTemp.Recordset.EOF
        For i = 1 To AdoTemp.Recordset!數量
          MSComm.Output = classT & FormMain.FrmOrder.Caption & Chr(10) + Chr(13)
          MSComm.Output = Chr(10) + Chr(13)
          MSComm.Output = AdoTemp.Recordset!代號 & " " & AdoTemp.Recordset!品名 & Chr(10) + Chr(13)
          MSComm.Output = Chr(27) + "d" + Chr(8) '紙張總長度
          MSComm.Output = Chr(27) + "i" '切刀
        Next i
        AdoTemp.Recordset.MoveNext
      Loop
      MSComm.PortOpen = False
    End If
    'Call Delay
    
    '中廚部789
    AdoTemp.RecordSource = "select * from 購餐資料 where 座位 ='" _
                & FormMain.FrmOrder.Caption & "'" _
                & " and 代號 > 7000 order by 代號"
    AdoTemp.Refresh
    If AdoTemp.Recordset.RecordCount > 0 Then
      classT = "【中廚】"
      MSComm.CommPort = 2
      MSComm.PortOpen = True
      MSComm.Output = Chr(27) & "@"
      MSComm.Output = Chr(27) + "!" + Chr(48) '英數字型拉高2倍
      MSComm.Output = Chr(28) + "!" + Chr(12) '中文字型放大2倍
      Do Until AdoTemp.Recordset.EOF
        For i = 1 To AdoTemp.Recordset!數量
          MSComm.Output = classT & FormMain.FrmOrder.Caption & Chr(10) + Chr(13)
          MSComm.Output = Chr(10) + Chr(13)
          MSComm.Output = AdoTemp.Recordset!代號 & " " & AdoTemp.Recordset!品名 & Chr(10) + Chr(13)
          MSComm.Output = Chr(27) + "d" + Chr(8) '紙張總長度
          MSComm.Output = Chr(27) + "i" '切刀
        Next i
        AdoTemp.Recordset.MoveNext
      Loop
      MSComm.PortOpen = False
    End If
    'Call Delay
    
    '點心部234
    AdoTemp.RecordSource = "select * from 購餐資料 where 座位 ='" _
                & FormMain.FrmOrder.Caption & "'" _
                & " and 代號 > 2000 and 代號 < 4999 order by 代號"
    AdoTemp.Refresh
    If AdoTemp.Recordset.RecordCount > 0 Then
      Do Until AdoTemp.Recordset.EOF
      classT = "【點心】"
      MSComm.CommPort = 2
      MSComm.PortOpen = True
      MSComm.Output = Chr(27) & "@"
      MSComm.Output = Chr(27) + "!" + Chr(48) '英數字型拉高2倍
      MSComm.Output = Chr(28) + "!" + Chr(12) '中文字型放大2倍
        MSComm.Output = classT & FormMain.FrmOrder.Caption & Chr(10) + Chr(13)
        MSComm.Output = Chr(10) + Chr(13)
        MSComm.Output = AdoTemp.Recordset!代號 & " *" & AdoTemp.Recordset!數量 & " " & AdoTemp.Recordset!品名 & Chr(10) + Chr(13)
        MSComm.Output = Chr(27) + "d" + Chr(8) '紙張總長度
        MSComm.Output = Chr(27) + "i" '切刀
        AdoTemp.Recordset.MoveNext
      MSComm.PortOpen = False
      Loop
      
    End If
End If
end sub
arrow
arrow
    全站熱搜

    vbqa 發表在 痞客邦 留言(5) 人氣()