Cmd Next record (7 người xem)

  • Thread starter Thread starter hoaipnb
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

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.
 
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.
Ghi biến đó vào bảng, xác nhận thay đổi khi mở form.

Bạn xem ví dụ nhé.
 

File đính kèm

Lần chỉnh sửa cuối:
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]
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...
Thanks
 
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)
 

File đính kèm

Lần chỉnh sửa cuối:
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?
 
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.
 
Lần chỉnh sửa cuối:
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.
 
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.
 
Lần chỉnh sửa cuối:
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.

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!

Tôi căn cứ vào tình hình của Form4 làm cho bạn 4 nút: Next, Previous, Top, Bottom và 2 nút Nhập Chỉnh sửa và Xóa Dữ liệu:

Thay vì họ tên bằng TextBox, tôi đổi thành Combobox và nạp nguồn cho nó:

PHP:
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

Các nút di chuyển record:

PHP:
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

Nút Xóa Record:

PHP:
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

Nút Nhập Chỉnh Sửa:

PHP:
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
 

File đính kèm

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.
 
Lần chỉnh sửa cuố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?
 
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.
 
Lần chỉnh sửa cuối:
Đú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.

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.

Trong UserForm4 mà tôi làm cho bạn, thay vì:

PHP:
Private Sub UserForm_Initialize()
  CboHoTen.List() = Range(Sheets("DSHS").[B4], Sheets("DSHS").[B65536].End(xlUp)).Resize(, 11).Value
End Sub

Thì bạn chỉ việc thêm 1 tí xíu nữa là xong!

Mã:
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

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.
 
Lần chỉnh sửa cuối:
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.

Cám ơn bạn đã giúp. Từ lúc đầu mình đã nói chỉ là amateur về VBA thôi ( học lóm qua sách, GPE, học qua các form đã được các bạn Up lên GPE) nên có những form mình "mày mò" mình hiểu và tự làm, có form là do các bạn trên GPE làm giúp (bạn xem thì sẽ rõ, mình đều ghi GPE trên code). Đúng là mình phải hiểu mình phải hiểu rõ về chương trình của mình. Code thì thiên hình vạn trạng, trong sách chỉ hướng dẫn phần nào đó thôi (tác giả chỉ có thể giải thích những gì tác giả nghĩ đến hoặc có người đặt câu hỏi), nhiều người nhiều thì có nhiều câu hỏi câu hỏi mà bạn.

Cám ơn bạn rất nhiều về sự góp ý của bạn. Rất vui được trò chuyện với bạn. Chúc bạn sức khỏe.
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom