掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSCommコンポーネントでデータを受信するには? (ID:142137)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
OS:WindowsXP Professional SP3 言語:MS-Access2003 SP3 VBA あるメーカー製のラベルプリンタとRS-232Cのシリアル通信をしてラベルを印刷するんですが、そのコンポーネントとしてMSCommコンポーネントを使っています。 ラベルプリンタに対してステータス要求コマンドを発行しているんですが、MSCommコンポーネントでは全く受信出来ず、OS付属のハイパーターミナルだと受信が可能です。 よって、、 ・プリンタに異常はない ・接続ケーブルにも問題はない ことになります。実際、MSCommコンポーネントのOutputでデータをプリンタに送信して、ラベル印刷が出来るんですが、どうやってもステータスの受信が出来ません。 ステータス要求と受信部分のソースは次の通りです。 Do ' ステータス要求 objCom.Output = "EST(1)" ' ステータス取得 Do DoEvents Loop Until objCom.InBufferCount >= 8 strStatus = objCom.Input (以下、略) ステータスは8バイト+CR+LFで返ってくるハズなので、8バイト以上の受信バッファをループで待ってからステータスを取得しようとしていますが、InBufferCountが常に0の状態なので永久ループになってしまいます。 ちなみに、、 Loop Until Len(objCom.Input) >= 8 ともしてみましたが、やはり受信できないので永久ループです。 MS-Access2003でMSCommコンポーネント(上記のソースではobjComです)を使うのは、無理があるのでしょうか? しかし、送信が出来て受信が出来ないのはおかしな話ですし、ステータス要求コマンドを送信後に永久ループを止めて、プログラムの実行を終了させてからハイパーターミナルで接続すると、ハイパーターミナル上では(先ほど発行したステータス要求の)ステータスが返ってきます。 どうかお知恵をお借りしたく、投稿させていただきました。 どんなささいな情報でも良いので、レスをいただければ非常に嬉しいです。 宜しくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.