LỚP CNTT 2 - 2007
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Chuyen các muc giua hai ListBox trong Access

2 posters

Go down

Chuyen các muc giua hai ListBox trong Access Empty Chuyen các muc giua hai ListBox trong Access

Post  Admin 4/12/2007, 10:11

Chuyển các mục giữa hai ListBox trong Access
Hỏi: Tôi có hai ListBox trên cùng một form. Tôi muốn chọn một mục trong ListA và nhấn nút > thì mục này được chuyển qua ListB, còn nhấn nút >> thì chuyển tất cả mục của ListA qua ListB và ngược lại.

Trả lời: Bạn hãy tạo form mới, vẽ hai ListBox có tên ListA và ListB, gán thuộc tính Row Source Type cho cả hai ListBox là Value List, vì chỉ có kiểu row source này mới cho phép thêm mục (AddItem) mới hoặc xóa mục (RemoveItem) cũ. Vẽ thêm 4 CommandButton lần lượt có tên cmdChayQua, cmdChayQuaHet, cmdChayLai và cmdChayLaiHet tương ứng lần lượt với nút >, >>, < và <<. Bạn gõ đoạn mã 1 vào form.
Khi mở form, ListA nhận focus, các nút <, << bị mờ đi. Người dùng có thể chọn một mục trong ListA, rồi bấm nút > để chuyển sang ListB. Có thể chỉ cần bấm kép (double-click) vào một mục trong ListA cần chuyển sang ListB. Khi chuyển hết các mục trong ListA sang ListB, danh sách ListB sẽ nhận focus, các nút >, >> bị mờ đi. Khi đó, người dùng có thể thực hiện tiến trình ngược lại.

Đoạn mã 1

Option Compare Database
Private Sub Form_Load()
Dim i As Long
For i = 1 To 10
ListA.AddItem "Dong thu " & Str(i)
Next
ListA.SetFocus
End Sub
Private Sub ListA_GotFocus()
cmdChayQua.Enabled = True
cmdChayQuaHet.Enabled = True
cmdChayLai.Enabled = False
cmdChayLaiHet.Enabled = False
End Sub
Private Sub ListB_GotFocus()
cmdChayQua.Enabled = False
cmdChayQuaHet.Enabled = False
cmdChayLai.Enabled = True
cmdChayLaiHet.Enabled = True
End Sub
Private Sub cmdChayQua_Click()
If ListA.ListIndex >= 0 Then
ListB.AddItem ListA.ItemData(ListA.ListIndex)
ListA.RemoveItem (ListA.ListIndex)
If ListA.ListCount = 0 Then
ListB.SetFocus
End If
End If
End Sub
Private Sub cmdChayQuaHet_Click()
Do
ListB.AddItem ListA.ItemData(0)
ListA.RemoveItem (0)
Loop Until ListA.ListCount = 0
ListB.SetFocus
End Sub
Private Sub cmdChayLai_Click()
If ListB.ListIndex >= 0 Then
ListA.AddItem ListB.ItemData(ListB.ListIndex)
ListB.RemoveItem (ListB.ListIndex)
If ListB.ListCount = 0 Then
ListA.SetFocus
End If
End If
End Sub
Private Sub cmdChayLaiHet_Click()
Do
ListA.AddItem ListB.ItemData(0)
ListB.RemoveItem (0)
Loop Until ListB.ListCount = 0
ListA.SetFocus
End Sub
Private Sub ListA_DblClick(Cancel As Integer)
cmdChayQua_Click
End Sub
Private Sub ListB_DblClick(Cancel As Integer)
cmdChayLai_Click
End Sub
Admin
Admin
Admin

Posts : 41
Join date : 2007-09-29

https://cntt207.forumotion.com

Back to top Go down

Chuyen các muc giua hai ListBox trong Access Empty Re: Chuyen các muc giua hai ListBox trong Access

Post  nhthong 28/12/2007, 12:47

Cho em xin ý kiến. Nếu được thì xin thầy post hình minh họa cho dễ hiểu, chứ đọc thấy toàn chữ không thật rất khó hình dung. Cám ơn thầy.

nhthong

Posts : 5
Join date : 2007-10-07

Back to top Go down

Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum