nguyenbalai > 06-07-15, 05:48 PM
(06-07-15, 05:31 PM)maidinhdan Đã viết:(06-07-15, 04:30 PM)nguyenbalai Đã viết: Mình cài lại máy và chạy bằng access 2003 vẫn không được, xem giúp mình có đặt Link Master Fields; Link Child Fields cho "F_LopHoc" gì không nhỉ?
Xem lại bản office đang chạy ( Hầu hết dùng bản cr@ck trên mạng hay lỗi lắm) kiếm mà xin ai bản trả phí ấy,..nếu cần em gửi tặng 1 bản ( Bản ISO được chép từ đĩa thằng bạn nó mua mấy triệu).
Nhưng tiếc là mạng nhà nó chậm, úp lên mất cả ngày. Có địa chỉ nhà mình chép DVD gửi cho.
maidinhdan > 06-07-15, 05:54 PM
nguyenbalai > 07-07-15, 08:22 AM
(06-07-15, 05:54 PM)maidinhdan Đã viết: anh nguyenbalai thân mến, Tối hôm trước có hứa là viết cho anh một hàm về tự điền mã sinh viên nhưng khi lên đã thấy anh tranthanhan1962 đã hoàn tất cho anh theo yêu cầu và em test cũng chạy ngon lành, nhưng đến nay trên máy anh vẫn chạy không được ( máy em đang xài gồm: WinXp, Win7, WIn8 >>Office 2003 Bản quyền mua bằng tiền không phải tải từ mạng nhé) Đều đã test hết, đều rất Ok.
Hôm nay viết vài lời để cho anh biết là em sẽ viết một hàm để cho anh sử dụng thử xem ( dự kiến tối nay), nhưng yêu cầu anh đặt lại câu hỏi lại để em dể viết,
Tương tự như thế này nè:
Mã sinh viên Ngành Luật là: CT1132X105 => Trong đó:
CT: Mã tỉnh thành ( tỉnh Cần Thơ)
11: Năm 2011
32: Mã ngành ( Cử nhân Luật)
X1: Lớp thứ 1 ( Mỗi năm có nhiều lớp 1)
05: Số thứ tự.
Rồi thêm vài Mã sinh viên nửa càng nhiều càng tốt, chứ đọc nội dung dài quá, khó nhớ mà lại phải lấy viết ra ghi mắc công quá.
Nếu đồng ý thì ...
tranthanhan1962 > 07-07-15, 09:38 AM
nguyenbalai > 07-07-15, 11:05 AM
(07-07-15, 09:38 AM)tranthanhan1962 Đã viết: Mình cũng không hiểu tại sau có tình trạng này. Nhất là khi bạn đã cài lại win. Code của mình rất đơn giản. Mấy hôm nay bận quá. Khoảng vài hôm nữa mình sẽ quay lại giúp bạn có thể mình sẽ nghiên cứu code khác. Có nhiều cách để xử lý cho một công việc mà.Cảm ơn tranthanhan1962 nhiều lắm. Mình cũng không hiểu vì sao, mình cũng đã thử chạy trên một máy mới hoàn toàn có Off. 2003 bản quyền của bạn mình nhưng vẫn bị vậy, mình đã xem xét rất kỹ trong references của VBA vẫn đầy đủ các khai báo ....., các file demo khác mình lấy về tại diễn đàn để thử đều chạy rất tốt kể cả trên off. 2013.
MTNQ > 07-07-15, 11:48 AM
Private Sub TimMaLop_AfterUpdate()
Dim rs As DAO.Recordset
If Nz(Me.TimMaLop, "") = "" Then Exit Sub
Set rs = Me.Recordset.Clone
rs.FindFirst "[MaLop] = '" & Nz(Me.TimMaLop, "") & "'"
If rs.NoMatch Then
MsgBox "Khong tim thay: " & Me.TimMaLop
Else
Me.Loclop = Me.TimMaLop.Column(0)
Me.Bookmark = rs.Bookmark
End If
Set rs = Nothing
End Sub
Private Sub Loclop_AfterUpdate()
If Nz(Me.TimMaLop, "") <> Loclop.Column(0) Then
TimMaLop.Value = Loclop.Column(0)
Call TimMaLop_AfterUpdate
End If
End Sub
nguyenbalai > 07-07-15, 03:48 PM
(07-07-15, 11:48 AM)MatTroiNguQuen Đã viết: Chào các tiền bối cùng các bạn!
Cho phép MTNQ tham gia với
Thấy các bác tham gia nhiệt tình quá nên hum nay tải file của bác tranthanhan1962 về xem thử:
-Lỗi trùng khóa chính( Chắc bác Ân làm vội nên chưa kiểm tra lại):
Do Combo Box MaLop có Control Source là MaLop nên khi chọn mã lớp khác thì mã ban đầu cũng bị sửa theo, như vậy sẽ phát sinh hai mã lớp trùng nhau
MTNQ xin mạn phép sửa thêm file này một chút, bác Lai tải về xem thử nhé:
LayMSHocSinhDemo - SuaTextdulieu.rar
MTNQ tách MaLop riêng ra Text box khác đổi Combo Box thành TimMaLop và code như sau:
Mã:Private Sub TimMaLop_AfterUpdate()
Dim rs As DAO.Recordset
If Nz(Me.TimMaLop, "") = "" Then Exit Sub
Set rs = Me.Recordset.Clone
rs.FindFirst "[MaLop] = '" & Nz(Me.TimMaLop, "") & "'"
If rs.NoMatch Then
MsgBox "Khong tim thay: " & Me.TimMaLop
Else
Me.Loclop = Me.TimMaLop.Column(0)
Me.Bookmark = rs.Bookmark
End If
Set rs = Nothing
End Sub
Ở form con (F_LopHoc) MTNQ sửa thuộc tính của các điều khiển Stt,MaHs,MaLop:
Locked: Yes
Tab Stop: No
Mục đích không cho người dùng tự tiện thay đổi cũng nhằm tránh lỗi trùng khóa chính
Bổ sung thêm code Loclop:
Mã:Private Sub Loclop_AfterUpdate()
If Nz(Me.TimMaLop, "") <> Loclop.Column(0) Then
TimMaLop.Value = Loclop.Column(0)
Call TimMaLop_AfterUpdate
End If
End Sub
Vài ý mạo muội, nếu có gì mạo phạm xin các bác thứ lỗi!
maidinhdan > 07-07-15, 05:16 PM
MTNQ > 09-07-15, 08:45 AM
(07-07-15, 03:48 PM)nguyenbalai Đã viết: Cảm ơn MatTroiNguQuen ...Bác Lai thân mến!
Có lẽ mình sẽ còn nhiều vướng víu khi thực hiện, mong các bạn cũng sẽ nhiệt tình giúp đỡ.
Private Sub Form_AfterDelConfirm(Status As Integer)
Form_F00_NhapTrichNgang.F_TTHS.Requery
End Sub
Private Sub HoTen_AfterUpdate()
If Stt.Value = 0 Then
Stt.Value = STTMOI.Value
End If
MaHs.Value = Mid(Form_F00_NhapTrichNgang.NienKhoa.Value, 3, 2) & Right(Form_F00_NhapTrichNgang.NienKhoa.Value, 2) & Format(Form_F00_NhapTrichNgang.MaNganh.Value, "00") & Format(Stt.Value, "0000")
DoCmd.RunCommand acCmdSaveRecord
Form_F00_NhapTrichNgang.F_TTHS.Requery
End Sub
nguyenbalai > 10-07-15, 03:58 PM
(09-07-15, 08:45 AM)MatTroiNguQuen Đã viết:(07-07-15, 03:48 PM)nguyenbalai Đã viết: Cảm ơn MatTroiNguQuen ...Bác Lai thân mến!
Có lẽ mình sẽ còn nhiều vướng víu khi thực hiện, mong các bạn cũng sẽ nhiệt tình giúp đỡ.
Vì các file hỗ trợ chỉ là Demo nên chắc chắn chưa kiểm soát hết các lỗi.
Ví dụ trong file trên bác có thể phải thêm vào các code sau:
Trong SubForm
Thủ tục sau khi xóa các record trong SubForm:
Mã:Private Sub Form_AfterDelConfirm(Status As Integer)
Form_F00_NhapTrichNgang.F_TTHS.Requery
End Sub
Thủ tục của điiều khiển HoTen phải thêm vào dòng sau:
DoCmd.RunCommand acCmdSaveRecord
Mã:Private Sub HoTen_AfterUpdate()
If Stt.Value = 0 Then
Stt.Value = STTMOI.Value
End If
MaHs.Value = Mid(Form_F00_NhapTrichNgang.NienKhoa.Value, 3, 2) & Right(Form_F00_NhapTrichNgang.NienKhoa.Value, 2) & Format(Form_F00_NhapTrichNgang.MaNganh.Value, "00") & Format(Stt.Value, "0000")
DoCmd.RunCommand acCmdSaveRecord
Form_F00_NhapTrichNgang.F_TTHS.Requery
End Sub
Có một chỗ MTNQ hơi thắc mắc là trong trường hợp học sinh chuyển lớp thì mã số sẽ bị thay đổi. như vậy ta sẽ phải dùng một mã khác để quản lý học sinh xuyên suốt quá trình học?