• Nối dữ liệu và xóa dữ liệu từ listbox vào textbox
  • Nối dữ liệu và xóa dữ liệu từ listbox vào textbox

    yamakashi2003 > 12-08-20, 12:00 AM

    Em chào các bác ạ,
    Giả sử em có 1 listbox có 2 cột dữ liệu: 
    a     1
    b     2
    c     3

    Nhờ bác nào biết chỉ giúp em code để nếu kick vào từng dòng trong listbox thì dữ liệu đó sẽ đổ xuống 1 textbox khác ạ
    Em có sử dụng code sau nhưng ở cuối dữ liệu lại thừa dấu ;
    Private Sub ListQUA_Click()
        Me.txtsanpham = Me.txtsanpham & Me.ListQUA.Column(0) & "; "    
    End Sub

    lúc chạy code nó ra: a; b; c; a;

    Tiện các bác cho em hỏi luôn cách để xóa dữ liệu từ textbox tương ứng với dữ liệu mình chọn trong listbox ạ
    giả sử em chọn dòng b thì dữ liệu ở textbox lúc đầu là a; b; c; b sẽ thành: a; c; b
    Em có sử dụng code 
    Private Sub Command235_Click()
    Me.txtsanpham = Trim(Replace(Me.txtsanpham, Me.ListQUA.Column(0) & ";", " ", 1, 1))
    End Sub


    nhưng kết quả lại ra rất nhiều khoảng trắng, mỗi 1 lần kích lại thêm 1 khoảng trắng ạ
    giả sử A; B; B; C; thì nó lại thành A;    C;
  • RE: Nối dữ liệu và xóa dữ liệu từ listbox vào textbox

    AnNguyen > 12-08-20, 09:26 AM

    (12-08-20, 12:00 AM)yamakashi2003 Đã viết: giả sử em chọn dòng b thì dữ liệu ở textbox lúc đầu là a; b; c; b sẽ thành: a; c; b

    a; b; c; b sẽ thành: a; c; b

    Tại sao lại có 2 b trong 1 textBox, nếu có trùng nhau thì phải có thêm 1 cột là ID để phân biệt khi có nhiều thông số khác nhau chứ
    đây là code tách nhau ; của bạn
    Mã:
    Dim sDS As String
    [/font][/size][/color]
        If Me.ListQUA.ItemsSelected.Count <> 0 Then  'Neu co chon dòng thi moi xu ly'

            For i = 0 To ListQUA.ListCount - 1

                If ListQUA.Selected(i) = True Then

                    sDS = sDS & IIf(sDS <> "", ";", "") & Me.ListQUA.Column(0, i)

                    tong = tong + Me.ListQUA.Column(1, i)

                End If

            Next i

        Else

            MsgBox "Ban không chon dòng nào", vbInformation

            Exit Sub

         
    [color=#333333][size=small][font=Tahoma, Verdana, Arial, sans-serif]    Me.txtsanpham.Value = sDS
  • RE: Nối dữ liệu và xóa dữ liệu từ listbox vào textbox

    yamakashi2003 > 12-08-20, 11:47 AM

    (12-08-20, 09:26 AM)AnNguyen Đã viết:
    (12-08-20, 12:00 AM)yamakashi2003 Đã viết: giả sử em chọn dòng b thì dữ liệu ở textbox lúc đầu là a; b; c; b sẽ thành: a; c; b

    a; b; c; b sẽ thành: a; c; b

    Tại sao lại có 2 b trong 1 textBox, nếu có trùng nhau thì phải có thêm 1 cột là ID để phân biệt khi có nhiều thông số khác nhau chứ
    đây là code tách nhau ; của bạn
    Mã:
    Dim sDS As String
    [/font][/size][/color]
        If Me.ListQUA.ItemsSelected.Count <> 0 Then  'Neu co chon dòng thi moi xu ly'

            For i = 0 To ListQUA.ListCount - 1

                If ListQUA.Selected(i) = True Then

                    sDS = sDS & IIf(sDS <> "", ";", "") & Me.ListQUA.Column(0, i)

                    tong = tong + Me.ListQUA.Column(1, i)

                End If

            Next i

        Else

            MsgBox "Ban không chon dòng nào", vbInformation

            Exit Sub

         
    [color=#333333][size=small][font=Tahoma, Verdana, Arial, sans-serif]    Me.txtsanpham.Value = sDS
    Em cảm ơn bác
    Code tren, dữ liệu ở listbox chỉ xuất hiện được 1 lần thôi bác, 
    Mục đích của em là muốn 1 dòng có thể xuất hiện nhiều lần ạ,
    Nhưng em cũng học hỏi được dòng này của bác:
    sDS = sDS & IIf(sDS <> "", ";", "") & Me.ListQUA.Column(0, i)
  • RE: Nối dữ liệu và xóa dữ liệu từ listbox vào textbox

    AnNguyen > 12-08-20, 12:34 PM

    (12-08-20, 11:47 AM)yamakashi2003 Đã viết: Mục đích của em là muốn 1 dòng có thể xuất hiện nhiều lần ạ
    1 dòng xuất hiện nhiều lần trong listbox hay trong textbox?
    tức là ở trong listbox có 1 b nếu click 2 lần thì nó ra 2 lần trong textbox ư bạn?
  • RE: Nối dữ liệu và xóa dữ liệu từ listbox vào textbox

    ongke0711 > 13-08-20, 10:05 AM

    (12-08-20, 11:47 AM)yamakashi2003 Đã viết: Code tren, dữ liệu ở listbox chỉ xuất hiện được 1 lần thôi bác, 
    Mục đích của em là muốn 1 dòng có thể xuất hiện nhiều lần ạ,

    Cái vụ xuất hiện nhiều lần làm tôi cũng thắc mắc. Thực tế nó áp dụng vô trường hợp nào mà dùng cách thức này?
    Không dùng kiểu: chọn mã hàng A -> nhập số lượng (mặc định =1).
  • RE: Nối dữ liệu và xóa dữ liệu từ listbox vào textbox

    Xuân Thanh > 13-08-20, 04:06 PM

    (12-08-20, 12:00 AM)yamakashi2003 Đã viết: Em chào các bác ạ,
    Giả sử em có 1 listbox có 2 cột dữ liệu: 
    a     1
    b     2
    c     3

    Nhờ bác nào biết chỉ giúp em code để nếu kick vào từng dòng trong listbox thì dữ liệu đó sẽ đổ xuống 1 textbox khác ạ
    Em có sử dụng code sau nhưng ở cuối dữ liệu lại thừa dấu ;
    Private Sub ListQUA_Click()
        Me.txtsanpham = Me.txtsanpham & Me.ListQUA.Column(0) & "; "    
    End Sub

    lúc chạy code nó ra: a; b; c; a;

    Tiện các bác cho em hỏi luôn cách để xóa dữ liệu từ textbox tương ứng với dữ liệu mình chọn trong listbox ạ
    giả sử em chọn dòng b thì dữ liệu ở textbox lúc đầu là a; b; c; b sẽ thành: a; c; b
    Em có sử dụng code 
    Private Sub Command235_Click()
    Me.txtsanpham = Trim(Replace(Me.txtsanpham, Me.ListQUA.Column(0) & ";", " ", 1, 1))
    End Sub


    nhưng kết quả lại ra rất nhiều khoảng trắng, mỗi 1 lần kích lại thêm 1 khoảng trắng ạ
    giả sử A; B; B; C; thì nó lại thành A;    C;

    1/ Để không hiển thị dấu ; cuối cùng thì bạn sửa lại một chút
    Mã:
    Private Sub ListQUA_Click()
        If NotIsNull(Me.txtsanpham) Then Me.txtsanpham = Me.txtsanpham & "; " &  Me.ListQUA.Column(0)  Else Me.txtsanpham = Me.ListQUA.Column(0)  
        ' hoặc If Me.txtsanpham = "" Then Me.txtsanpham = Me.ListQUA.Column(0) Else Me.txtsanpham = Me.txtsanpham & "; " & Me.ListQUA.Column(0)
    End Sub

    2/ Để xóa trùng trong textbox phải viết một hàm riêng biệt cho nó mới được