vba_gpe
Thành viên thường trực




- Tham gia
- 15/12/10
- Bài viết
- 296
- Được thích
- 44
- Nghề nghiệp
- Thất nghiệp
Gửi anh chị trên diễn đàn.
Em có một vấn đề nhờ anh chị xem giúp: Em thực hiện tìm kiếm dữ liệu và đưa vào DataGridView như sau:
1. Dùng hàm Filter2DArray tham khảo của thầy NDU để tìm kiếm dữ liệu, trích xuất ra được 1 mảng.
2. Em muốn set .Datasource mảng đó cho DataGridView hiểu và load dữ liệu lên.
(Nhưng ở bước 2 em không biết phải làm như thế nào để cho Gridview hiểu kết quả xuất từ hàm Filter2DArray đúng định dạng cho control này). Em nhờ anh chị hướng dẫn giúp:
Hàm Filter2DArray của thầy NDU:
Trân trọng, kính chúc anh chị sức khỏe.
Mong nhận được hồi đáp của mọi người.
Em có một vấn đề nhờ anh chị xem giúp: Em thực hiện tìm kiếm dữ liệu và đưa vào DataGridView như sau:
1. Dùng hàm Filter2DArray tham khảo của thầy NDU để tìm kiếm dữ liệu, trích xuất ra được 1 mảng.
2. Em muốn set .Datasource mảng đó cho DataGridView hiểu và load dữ liệu lên.
(Nhưng ở bước 2 em không biết phải làm như thế nào để cho Gridview hiểu kết quả xuất từ hàm Filter2DArray đúng định dạng cho control này). Em nhờ anh chị hướng dẫn giúp:
Hàm Filter2DArray của thầy NDU:
PHP:
Function Filter2DArray(ByVal sArray, ByVal ColIndex As Long, ByVal FindStr As String, ByVal HasTitle As Boolean)
Dim TmpArr, i As Long, j As Long, arr, Dic, TmpStr, Tmp, Chk As Boolean, TmpVal As Double
On Error Resume Next
Set Dic = CreateObject("Scripting.Dictionary")
TmpArr = sArray
ColIndex = ColIndex + LBound(TmpArr, 2) - 1
Chk = (InStr("><=", Left(FindStr, 1)) > 0)
For i = LBound(TmpArr, 1) - HasTitle To UBound(TmpArr, 1)
If Chk And FindStr <> "" Then
TmpVal = CDbl(TmpArr(i, ColIndex))
If Evaluate(TmpVal & FindStr) Then Dic.Add i, ""
Else
If Left(FindStr, 1) = "!" Then
If Not (UCase(TmpArr(i, ColIndex)) Like UCase(Mid(FindStr, 2, Len(FindStr)))) Then Dic.Add i, ""
Else
If UCase(TmpArr(i, ColIndex)) Like UCase(FindStr) Then Dic.Add i, ""
End If
End If
Next
If Dic.Count > 0 Then
Tmp = Dic.Keys
ReDim arr(LBound(TmpArr, 1) To UBound(Tmp) + LBound(TmpArr, 1) - HasTitle, LBound(TmpArr, 2) To UBound(TmpArr, 2))
For i = LBound(TmpArr, 1) - HasTitle To UBound(Tmp) + LBound(TmpArr, 1) - HasTitle
For j = LBound(TmpArr, 2) To UBound(TmpArr, 2)
arr(i, j) = TmpArr(Tmp(i - LBound(TmpArr, 1) + HasTitle), j)
Next
Next
If HasTitle Then
For j = LBound(TmpArr, 2) To UBound(TmpArr, 2)
arr(LBound(TmpArr, 1), j) = TmpArr(LBound(TmpArr, 1), j)
Next
End If
End If
Filter2DArray = arr
End Function
Trân trọng, kính chúc anh chị sức khỏe.
Mong nhận được hồi đáp của mọi người.