gaubong60kg
Thành viên mới

- Tham gia
- 23/4/12
- Bài viết
- 2
- Được thích
- 0
Dùng thử bằng ADO xem nhé.Tôi có danh sách nhân viên thuộc nhiều tổ sản xuất khác nhau. Để thuận tiện cho việc tính lương, tôi cần lọc những người thuộc cùng Tổ sản xuất ra các sheet khác nhau. Mong chỉ giúp
Public cnn As New ADODB.Connection
Sub Moketnoi()
With cnn
.ConnectionString = "Provider= Microsoft.Jet.OLEDB.4.0; data source=" & ThisWorkbook.FullName & _
";Extended Properties=Excel 8.0;"
.CursorLocation = adUseClient
.Open
End With
End Sub
Private Sub cmdOK_Click()
On Error Resume Next
Dim lsSQL As String, r As Integer
Dim lrs As New ADODB.Recordset
With Sheet2
lsSQL = "SELECT STT, HOVATEN, TOCONGTAC, THOIGIANCONGTAC, HESOLUONG, " & _
"IIf([THOIGIANCONGTAC]>365,500000,0) AS PHUCAP, TIENLUONG+PHUCAP " & _
"FROM [Sheet1$] " & _
"Where TOCONGTAC Like '" & IIf(Len(cboTo) = 0, "%", cboTo) & "'"
lrs.Open lsSQL, cnn, adOpenStatic, adLockReadOnly
.Range("A4:G6000").ClearContents
.Range("A4").CopyFromRecordset lrs
r = .Range("A65000").End(xlUp).Row + 1
.Range("D" & r) = "T" & ChrW(7893) & "ng C" & ChrW(7897) & "ng"
.Range("F" & r).FormulaR1C1 = "=SUM(R[-" & r - 4 & "]C:R[-1]C)"
.Range("G" & r).FormulaR1C1 = "=SUM(R[-" & r - 4 & "]C:R[-1]C)"
.Range("A1") = IIf(Len(cboTo) = 0, "B" & ChrW(7842) & "NG TÍNH L" & ChrW(431) & ChrW(416) & "NG T" & _
ChrW(7844) & "T C" & ChrW(7842), "B" & ChrW(7842) & "NG TÍNH L" & ChrW(431) & ChrW(416) & "NG " & cboTo)
End With
lrs.Close
Set lrs = Nothing
cnn.Close
Set cnn = Nothing
Unload Me
End Sub
Private Sub UserForm_Initialize()
Label1.Caption = "Vui lòng ch" & ChrW(7885) & "n t" & ChrW(7893) & " c" & ChrW(7847) & "n truy v" & ChrW(7845) & "n"
If cnn.State = 1 Then cnn.Close
Moketnoi
Dim lrs As New ADODB.Recordset
lsSQL = "select distinct TOCONGTAC from [Sheet1$]"
lrs.Open lsSQL, cnn, adOpenStatic, adLockReadOnly
cboTo.Clear
Do Until lrs.EOF
cboTo.AddItem lrs![TOCONGTAC]
lrs.MoveNext
Loop
lrs.Close
Set lrs = Nothing
End Sub
Tôi có danh sách nhân viên thuộc nhiều tổ sản xuất khác nhau. Để thuận tiện cho việc tính lương, tôi cần lọc những người thuộc cùng Tổ sản xuất ra các sheet khác nhau. Mong chỉ giúp
Không dùng VBA mà sao bạn post bài trong box Lập trình với Excel? Híc!...đừng dùng VBA vì tôi không biết gì về nó cả, không chỉnh sửa được đâu ạ ...
Em dùng office 2010 máy em không tìm được MS ActiveX Data Objects x.x LibraryLưu ý:
- Bạn phải click chọn References của nó là MS ActiveX Data Objects x.x Library nhé.
- Phần phụ cấp và tính lương mình chỉ ví dụ, để ứng dụng bạn phải chỉnh sửa lại cho hợp với yêu cầu nhé.
Bạn thử chép code sau vào 1 module khác riêng biệt rồi chạy nó, rồi sau đó thử chạy các code khác xem sao nhé.Em dùng office 2010 máy em không tìm được MS ActiveX Data Objects x.x Library
Sub CreateRef_MSAXDO()
Dim ID As Object
On Error Resume Next
Set ID = ThisWorkbook.VBProject.References
ID.AddFromGuid "{00000200-0000-0010-8000-00AA006D2EA4}", 2, 0
End Sub