Chuyen cc muc giua hai ListBox trong Access

Go down

Chuyen cc muc giua hai ListBox trong Access

Post  Admin on 4/12/2007, 10:11

Chuyển cc mục giữa hai ListBox trong Access
Hỏi: Ti c hai ListBox trn cng một form. Ti muốn chọn một mục trong ListA v nhấn nt > th mục ny được chuyển qua ListB, cn nhấn nt >> th chuyển tất cả mục của ListA qua ListB v ngược lại.

Trả lời: Bạn hy tạo form mới, vẽ hai ListBox c tn ListA v ListB, gn thuộc tnh Row Source Type cho cả hai ListBox l Value List, v chỉ c kiểu row source ny mới cho php thm mục (AddItem) mới hoặc xa mục (RemoveItem) cũ. Vẽ thm 4 CommandButton lần lượt c tn cmdChayQua, cmdChayQuaHet, cmdChayLai v cmdChayLaiHet tương ứng lần lượt với nt >, >>, < v <<. Bạn g đoạn m 1 vo form.
Khi mở form, ListA nhận focus, cc nt <, << bị mờ đi. Người dng c thể chọn một mục trong ListA, rồi bấm nt > để chuyển sang ListB. C thể chỉ cần bấm kp (double-click) vo một mục trong ListA cần chuyển sang ListB. Khi chuyển hết cc mục trong ListA sang ListB, danh sch ListB sẽ nhận focus, cc nt >, >> bị mờ đi. Khi đ, người dng c thể thực hiện tiến trnh 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
avatar
Admin
Admin

Posts : 41
Join date : 2007-09-29

View user profile http://cntt207.forumotion.com

Back to top Go down

Re: Chuyen cc muc giua hai ListBox trong Access

Post  nhthong on 28/12/2007, 12:47

Cho em xin kiến. Nếu được th xin thầy post hnh minh họa cho dễ hiểu, chứ đọc thấy ton chữ khng thật rất kh hnh dung. Cm ơn thầy.

nhthong

Posts : 5
Join date : 2007-10-07

View user profile

Back to top Go down

Back to top

- Similar topics

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