Thông báo

Collapse
No announcement yet.

truyền nhận dữ liệu bằng vb bị lỗi!

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • truyền nhận dữ liệu bằng vb bị lỗi!




    Private Sub Command1_Click()
    End
    End Sub

    Private Sub Form_KeyPress(KeyAscii As Integer)
    MSComm1.output_keyascii
    Text1.text_keyascii
    End Sub

    Private Sub Form_Load()
    MSComm1.comport = 1
    MSComm1.Settings = "9600,n,8,1"
    MSComm1.InputLen = 0
    MSComm1.PortOpen = True
    End Sub

    Private Sub MSComm1_OnComm()
    If (MSComm1.CommEvent = comEvReceive) Then
    Text2.Text = MSComm1.Input
    End If
    End Sub
    .................................................. ............................................
    mình nối chân 2,3 của cổng com1 để thử truyền và nhận dữ liệu đơn giản mà khi biên dịch thì bị lỗi. ai biết chỉ mình với!!!
    Attached Files

  • #2
    Thử khởi tạo cổng Com bằng đoạn mã sau thử xem.

    Private Sub Form_Load()

    With MSComm1
    .CommPort = 1
    .Settings = "2400,n,8,1"
    .InBufferSize = 9600
    .InputLen = 0
    .RThreshold = 1
    .SThreshold = 0
    .OutBufferSize = 512
    .InputMode = comInputModeBinary
    .PortOpen = True
    End With

    End Sub

    Chúc bạn thành công !!!

    Comment


    • #3
      chưa trình biên dịch hết lỗi rồi mà mình nối chân 2 với chân 3 cổng com rồi truyền thử mà vẫn chưa được bạn ơi?
      mình gõ chữ "nhan thu di" vào ô transmit mà ở ô recive vẫn chẳng thay đổi?
      yêu cầu của mình là ở ô transmit hiển thị chữ gì thì ô recive cũng phải hiển thị chữ đó.
      chương trình:

      Private Sub Command1_Click()
      End
      End Sub

      Private Sub Form_KeyPress(KeyAscii As Integer)
      MSComm1.output_keyascii
      Text1.text_keyascii
      End Sub

      Private Sub Form_Load()
      With MSComm1
      .CommPort = 1
      .Settings = "2400,n,8,1"
      .InBufferSize = 9600
      .InputLen = 0
      .RThreshold = 1
      .SThreshold = 0
      .OutBufferSize = 512
      .InputMode = comInputModeBinary
      .PortOpen = True
      End With
      End Sub

      Private Sub MSComm1_OnComm()
      If (MSComm1.CommEvent = comEvReceive) Then
      Text2.Text = MSComm1.Input
      End If
      End Sub
      Attached Files

      Comment


      • #4
        Sửa lại phần phát và nhận như sau thử xem.

        Private Sub Form_KeyPress(KeyAscii As Integer)
        Dim byte_send(0) As Byte
        Dim Ascii_send As String
        Ascii_send = Text1.Text
        byte_send(0) = Asc(Ascii_send)
        MSComm1.output = byte_send()
        End Sub


        Private Sub MSComm1_OnComm()
        Dim byte_nhan() As Byte
        Dim Ascii_nhan As Byte
        byte_nhan() = MSComm1.Input
        Ascii_nhan = byte_nhan(0)
        text2.text = chr(Ascii_nhan)
        End Sub
        Last edited by sangthai; 07-12-2008, 14:13.

        Comment


        • #5
          nhận dữ liệu được rồi bạn ơi nhưng mà không hiểu sao nó chỉ là một dấu sao thôi!
          chương trình:
          Private Sub Command1_Click()
          End
          End Sub

          Private Sub Form_KeyPress(KeyAscii As Integer)
          Dim byte_send(0) As Byte
          Dim Ascii_send As String
          Ascii_send = Text1.Text
          byte_send(0) = Asc(Ascii_send)
          MSComm1.Output = byte_send()
          End Sub

          Private Sub Form_Load()
          With MSComm1
          .CommPort = 1
          .Settings = "2400,n,8,1"
          .InBufferSize = 9600
          .InputLen = 0
          .RThreshold = 1
          .SThreshold = 0
          .OutBufferSize = 512
          .InputMode = comInputModeBinary
          .PortOpen = True
          End With
          End Sub

          Private Sub MSComm1_OnComm()
          Dim byte_nhan() As Byte
          Dim Ascii_nhan As Byte
          byte_nhan() = MSComm1.Input
          Ascii_nhan = byte_nhan()
          Text2.Text = Chr(Ascii_nhan)
          End Sub
          Attached Files

          Comment


          • #6
            Nguyên văn bởi spirit2804 Xem bài viết
            nhận dữ liệu được rồi bạn ơi nhưng mà không hiểu sao nó chỉ là một dấu sao thôi!
            chương trình:
            Private Sub Command1_Click()
            End
            End Sub

            Private Sub Form_KeyPress(KeyAscii As Integer)
            Dim byte_send(0) As Byte
            Dim Ascii_send As String
            Ascii_send = Text1.Text
            byte_send(0) = Asc(Ascii_send)
            MSComm1.Output = byte_send()
            End Sub

            Private Sub Form_Load()
            With MSComm1
            .CommPort = 1
            .Settings = "2400,n,8,1"
            .InBufferSize = 9600
            .InputLen = 0
            .RThreshold = 1
            .SThreshold = 0
            .OutBufferSize = 512
            .InputMode = comInputModeBinary
            .PortOpen = True
            End With
            End Sub

            Private Sub MSComm1_OnComm()
            Dim byte_nhan() As Byte
            Dim Ascii_nhan As Byte
            byte_nhan() = MSComm1.Input
            Ascii_nhan = byte_nhan()
            Text2.Text = Chr(Ascii_nhan)
            End Sub
            Mình thấy bạn khai báo kiểu biến lung tung quá, lúc thì kiểu byte, luc thì string, lúc thì ascii, lúc thì char... và còn khai báo mãng nữa, không hiểu để làm gì trong trường hợp này. Bạn thống nhất lại khai báo biến kiểu string hết là được thôi.

            Comment


            • #7
              Private Sub MSComm1_OnComm()
              dim sample as string
              If Me.MSComm1.CommEvent = comEvReceive Then
              sample = Me.MSComm1.Input
              Me.txtreceiver.Text = Me.txtreceiver.Text + sample
              End If
              End Sub
              Khai báo cho Mscomm1 như sau:
              Me.MSComm1.InputMode = comInputModeText
              Me.MSComm1.Settings = "9600,n,8,1"
              Me.MSComm1.RThreshold = 1
              Me.MSComm1.SThreshold = 1
              Me.MsComm1.PortOpen = True
              Gửi dữ liệu ra cổng Com:
              Me.MsComm1.OutPut="Hello"
              Chúc bạn thành công.
              Học thầy không tày học bạn ...

              Comment


              • #8
                Giúp đỡ bạn spirit2804 !!!

                Truyền gần thành công rồi đó.
                Bạn thất bại là do lưu code không đúng nơi.
                Bạn sửa lại như tôi nói nha:
                + Bạn tạo 1 cái text1 , 1 cái text2 , 1 nút command1
                + Bạn lưu đoạn code khởi tạo cổng Com như cũ:

                Private Sub Form_Load()
                With MSComm1
                .CommPort = 1
                .Settings = "9600,n,8,1"
                .InBufferSize = 9600
                .InputLen = 0
                .RThreshold = 1
                .SThreshold = 0
                .OutBufferSize = 512
                .InputMode = comInputModeBinary
                .PortOpen = True
                End With
                End Sub

                + Bạn lưu code phát ở nút command1:

                Private Sub Command1_Click()
                Dim byte_send(0) As Byte
                Dim Ascii_send As String
                Ascii_send = Text1.Text
                byte_send(0) = Asc(Ascii_send)
                MSComm1.Output = byte_send()
                End Sub

                + Bạn lưu code thu ở vị trí như cũ:

                Private Sub MSComm1_OnComm()
                Dim byte_nhan() As Byte
                Dim Ascii_nhan As Byte
                byte_nhan() = MSComm1.Input
                Ascii_nhan = byte_nhan()
                Text2.Text = Chr(Ascii_nhan)
                End Sub

                Chú ý: Chỉ được điền 1 chữ cái vô ô text1. Sau khi điền 1 chữ cái vô ô text1 bạn nhấn nút command1. Nếu muốn điền chuỗi ký tự vào ô text1 bạn cần sử dụng thêm 1 số hàm như: if, for ...mục đích là cắt chuỗi thành từng ký tự để gửi đi thôi.

                Comment


                • #9
                  mình đã sửa lại như bạn nói rồi mà sao vẫn chưa được bạn ơi, mình truyền có 1 ký tự thôi mà vẫn không nhận đúng, chỉ là dấu sao thôi, không biết có phải do mình khai báo biến chưa đúng không?
                  chương trình:
                  Private Sub Command1_Click()
                  Dim byte_send(0) As Byte
                  Dim Ascii_send As String
                  Ascii_send = Text1.Text
                  byte_send(0) = Asc(Ascii_send)
                  MSComm1.Output = byte_send()
                  End Sub

                  Private Sub Form_Load()
                  With MSComm1
                  .CommPort = 1
                  .Settings = "9600,n,8,1"
                  .InBufferSize = 9600
                  .InputLen = 0
                  .RThreshold = 1
                  .SThreshold = 0
                  .OutBufferSize = 512
                  .InputMode = comInputModeBinary
                  .PortOpen = True
                  End With
                  End Sub

                  Private Sub MSComm1_OnComm()
                  Dim byte_nhan() As Byte
                  Dim Ascii_nhan As Byte
                  byte_nhan() = MSComm1.Input
                  Ascii_nhan = byte_nhan()
                  Text2.Text = Chr(Ascii_nhan)
                  End Sub
                  Attached Files

                  Comment


                  • #10
                    Sửa lại phần phát thế này thử xem:

                    Private Sub Command1_Click()
                    Dim byte_send(0) As Byte
                    Dim Ascii_send As String
                    Ascii_send = Text1.Text
                    byte_send(0) = Ascii_send
                    MSComm1.Output = byte_send()
                    End Sub

                    Comment


                    • #11
                      Ui cha bài thế này mà các cao thủ làm mãi chưa xong.... E lam đon giản lắm.. Chỉ khoang 15 dong la ra xong thui.. nếu các bác cần em se pot..hiiiii

                      Comment


                      • #12
                        bác pot lên cho em xem với bác , cám ơn bác
                        |

                        Comment


                        • #13
                          chương trình bị lỗi

                          VERSION 5.00
                          Begin VB.Form Form1
                          Caption = "Form1"
                          ClientHeight = 4605
                          ClientLeft = 60
                          ClientTop = 450
                          ClientWidth = 6030
                          LinkTopic = "Form1"
                          ScaleHeight = 4605
                          ScaleWidth = 6030
                          StartUpPosition = 3 'Windows Default
                          Begin VB.CommandButton Command1
                          Caption = "Command1"
                          Height = 855
                          Left = 1920
                          TabIndex = 2
                          Top = 3240
                          Width = 2175
                          End
                          Begin VB.TextBox Text2
                          Height = 735
                          Left = 1440
                          TabIndex = 1
                          Top = 1920
                          Width = 2895
                          End
                          Begin VB.TextBox Text1
                          Height = 735
                          Left = 1440
                          TabIndex = 0
                          Top = 480
                          Width = 2895
                          End
                          End
                          Attribute VB_Name = "Form1"
                          Attribute VB_GlobalNameSpace = False
                          Attribute VB_Creatable = False
                          Attribute VB_PredeclaredId = True
                          Attribute VB_Exposed = False

                          Private Sub Command1_Click()
                          Dim byte_send(0) As Byte
                          Dim Ascii_send As String
                          Ascii_send = Text1.Text
                          byte_send(0) = Asc(Ascii_send)
                          MSComm1.Output = byte_send()
                          End Sub

                          Private Sub Form_Load()
                          With MSComm1
                          .CommPort = 1
                          .Settings = "9600,n,8,1"
                          .InBufferSize = 9600
                          .InputLen = 0
                          .RThreshold = 1
                          .SThreshold = 0
                          .OutBufferSize = 512
                          .InputMode = comInputModeBinary
                          .PortOpen = True
                          End With
                          End Sub

                          Private Sub MSComm1_OnComm()
                          Dim byte_nhan() As Byte
                          Dim Ascii_nhan As Byte
                          byte_nhan() = MSComm1.Input
                          Ascii_nhan = byte_nhan()
                          Text2.Text = Chr(Ascii_nhan)
                          End Sub
                          ;--------------
                          Sau đó em vào Run và chọn Start with full compile
                          nó báo lỗi như hình 1 rồi kích debug nó báo lỗi như hình 2
                          các anh giúp em với
                          Attached Files
                          |

                          Comment


                          • #14
                            Bạn thử code nay xem:

                            Private Sub Command1_Click()
                            On Error GoTo OpenFalse
                            If MSComm1.PortOpen = False Then
                            MSComm1.PortOpen = True
                            End If
                            Exit Sub
                            OpenFalse:
                            MsgBox Err.Description & vbLf + vbCr + "Loi, khong the mo cong. Hay dong cac ung dung dang su dung cong COM"

                            End Sub

                            Private Sub Command2_Click()
                            If MSComm1.PortOpen = True Then
                            MSComm1.PortOpen = False
                            End If
                            End
                            End Sub

                            Private Sub Command3_Click()
                            On Error GoTo sendfalse
                            MSComm1.Output = Trim(Text1.Text)
                            Text1.Text = ""
                            Exit Sub
                            sendfalse:
                            MsgBox "Loi, Cong COM chua duoc mo"
                            End Sub

                            Private Sub Command4_Click()
                            Text2.Text = ""
                            End Sub

                            Private Sub Form_Load()
                            With MSComm1
                            .Settings = "9600,N,8,1"
                            .RThreshold = 1
                            .Handshaking = comNone
                            .SThreshold = 0
                            .InBufferSize = 1024
                            .OutBufferSize = 1024
                            .InputMode = comInputModeText
                            .InputLen = 0
                            .CommPort = 1
                            End With
                            End Sub

                            Private Sub MSComm1_OnComm()
                            If (MSComm1.CommEvent = comEvReceive) Then
                            Text2.Text = Text2.Text + MSComm1.Input
                            End If
                            End Sub
                            Click image for larger version

Name:	giao dien.jpg
Views:	1
Size:	69.9 KB
ID:	1335847
                            Last edited by tcoi001; 20-02-2009, 20:54. Lý do: thêm file đính kèm

                            Comment


                            • #15
                              anh ơi anh xem bai nay cho em ko dc anh à
                              Last edited by huynh; 20-02-2009, 23:21.
                              |

                              Comment

                              Về tác giả

                              Collapse

                              spirit2804 Tìm hiểu thêm về spirit2804

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X