Ghi biến đó vào bảng, xác nhận thay đổi khi mở form.dạ, nhưng ý mình là có cách nào là sau khi set thì thoát chương trình và vào lại thì vẫn tồn tại giá trị mình đã chọn làm mặc định.
Chào bạn, mình áp dụng đoạn code trên vào cmd next có lúc thì sử dụng bình thường nhưng thường là khi ấn cmd next là hiện msgbox thông báo và dừng luôn không chuyển tới record kê tiếp. Mình kiểm tra nhưng ko biết nguyên nhân ở đâu, nhờ bạn trợ giúp...Bạn thử code sau cho nút next:
Mã:Private Sub cmdNext_Click() If CurrentRecord >= RecordsetClone.RecordCount Then MsgBox "Khong the di chuyen duoc nua" Exit Sub Else DoCmd.GoToRecord , , acNext End If End Sub
[/CODE]
Xin chào các bạn GPE. Các bạn vui lòng giúp mình tạo cmd Next, Previous và Delete record (form4) dùm mình. Cám ơn các bạn. Chúc các bạn sức khỏe.
(mình post nhầm khu vực rồi, file của mình là xls. Admin vui lòng chuyển dùm mình, thanks)
Bạn phải nói rõ là thực hiện trên Form nào (form chính thôi, từ đó tự làm các form khác) và Delete record ở sheet nào? hơn nữa trong sheet có protectsheet thì làm sao mà xóa đây?
Ah, Bạn thực hiện dùm mình ở UserForm4 (Chỉnh sửa dữ liệu) thôi, Delete record từng HS một ở Sheet "DSHS" pass: 1. Cám ơn bạn.
Vì là chỉnh sửa dữ liệu nên đương nhiên là mã số học sinh phải có đúng không bạn? Và chắc chắn nó không trùng với cái nào đúng không? Nếu là như vậy tôi sẽ căn cứ vào đó để chỉnh sửa/ xóa... cho bạn.
Cám ơn bạn trước. file đó hiện nay đã có gần như hoàn chỉnh, chỉ thiếu những phần mình đã nêu. Bạn xem có gì phải chỉnh sửa và góp ý cho mình. Mình chỉ amateur về VBA thôi.
Private Sub UserForm_Initialize()
CboHoTen.List() = Range(Sheets("DSHS").[B4], Sheets("DSHS").[B65536].End(xlUp)).Resize(, 11).Value
End Sub
''=====================================
Private Sub CboHoTen_Change()
On Error Resume Next
Dim i As Byte
For i = 1 To 10
Controls("TextBox" & i).Value = CboHoTen.Column(i)
Next
End Sub
Private Sub CmdTop_Click()
With CboHoTen
.Value = .List(0)
End With
End Sub
''=====================================
Private Sub CmdPrevious_Click()
Dim LstIndex As Long
With CboHoTen
LstIndex = WorksheetFunction.Max(0, .ListIndex - 1)
.Value = .List(LstIndex)
End With
End Sub
''=====================================
Private Sub CmdNext_Click()
Dim LstIndex As Long, LstCount As Long
With CboHoTen
LstCount = .ListCount - 1
LstIndex = WorksheetFunction.Min(LstCount, .ListIndex + 1)
.Value = .List(LstIndex)
End With
End Sub
''=====================================
Private Sub CmdBottom_Click()
Dim LstCount As Long
With CboHoTen
LstCount = .ListCount - 1
.Value = .List(LstCount)
End With
End Sub
Private Sub CmdDelete_Click()
Dim MyMsg As Long, MyRng As Range
If TextBox10.Value <> vbNullString Then
MyMsg = MsgBox("Ban co chac chan xoa toan bo du lieu cua Ma HS: " & TextBox10, vbQuestion + vbYesNo, "Thông Báo")
If MyMsg = vbYes Then
With Range(Sheets("DSHS").[L4], Sheets("DSHS").[L65536].End(xlUp))
Set MyRng = .Find(TextBox10.Value, LookIn:=xlValues, LookAt:=xlWhole)
End With
If Not MyRng Is Nothing Then MyRng.Offset(, -10).Resize(, 11).Delete 2
CboHoTen.List() = Range(Sheets("DSHS").[B4], Sheets("DSHS").[B65536].End(xlUp)).Resize(, 11).Value
MsgBox "toan bo du lieu cua Ma HS: " & TextBox10 & " da duoc xoa!"
Call CmdClear_Click
End If
End If
End Sub
Private Sub CmdEdit_Click()
Dim MyMsg As Long, MyRng As Range, i As Byte
If TextBox10.Value <> vbNullString Then
MyMsg = MsgBox("Ban co chac chan nhap chinh sua toan bo du lieu cua Ma HS: " & TextBox10, vbQuestion + vbYesNo, "Thông Báo")
If MyMsg = vbYes Then
With Range(Sheets("DSHS").[L4], Sheets("DSHS").[L65536].End(xlUp))
Set MyRng = .Find(TextBox10.Value, LookIn:=xlValues, LookAt:=xlWhole)
End With
If Not MyRng Is Nothing Then
With MyRng
.Offset(, -10) = CboHoTen
For i = 1 To 10
.Offset(, i - 10) = Controls("TextBox" & i).Value
Next
End With
End If
CboHoTen.List() = Range(Sheets("DSHS").[B4], Sheets("DSHS").[B65536].End(xlUp)).Resize(, 11).Value
MsgBox "toan bo du lieu cua Ma HS: " & TextBox10 & " da duoc chinh sua!"
Call CmdClear_Click
End If
End If
End Sub
Nếu bạn nói là hoàn chỉnh thì tôi bó tay luôn! Code thì lủng củng đặt tên các object thiếu khoa học, nói chung đối với bạn vậy cũng tạm ổn rồi
Cám ơn bạn đã góp ý, hoàn chỉnh theo nhu cầu và khả năng của mình thôi.
Bạn giúp mình cho Thông tin HS hiện lên form4 luôn, hiên giờ thì chỉ hiện lên form trắng chưa có dữ liệu. thanks.
Hiện lên cái gì bạn? Bạn chỉ việc bấm combobox CboHoTen là nó xổ xuống và chỉ cần chọn tên thôi, chứ cần chi mà hiện? Chẳng lẽ hiện tên đầu tiên?
Đúng đó bạn, vì mình làm cho người khác sử dụng nữa mà, nhiều khi họ mở lên mà không biết, "Tiện lợi" đặt lên hàng đầu.
Private Sub UserForm_Initialize()
CboHoTen.List() = Range(Sheets("DSHS").[B4], Sheets("DSHS").[B65536].End(xlUp)).Resize(, 11).Value
End Sub
Private Sub UserForm_Initialize()
CboHoTen.List() = Range(Sheets("DSHS").[B4], Sheets("DSHS").[B65536].End(xlUp)).Resize(, 11).Value
[COLOR=#ff0000][B]CboHoTen = CboHoTen.List(0)[/B][/COLOR]
End Sub
Chắc File của bạn không phải do bạn làm nên có những điều quá căn bản mà bạn cũng không làm được.
Khi bạn muốn ai hiểu về chương trình của bạn, đương nhiên bạn phải làm cho người đó hiểu rõ về nó, và đôi khi cũng tập cho họ biết cách khai thác tốt chương trình của mình, chứ không phải mọi thứ đều phải dọn sẳn.