daiphong1979 > 19-02-14, 05:23 PM
MTNQ > 19-02-14, 07:21 PM
Private Sub Command10_Click()
On Error GoTo Err_Command10_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append
Exit_Command10_Click:
Exit Sub
Err_Command10_Click:
MsgBox Err.Description
Resume Exit_Command10_Click
End Sub
Private Sub cmdDuplicate_Click()
On Error GoTo Err_cmdDuplicate_Click
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.RunCommand acCmdRecordsGoToNew
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdPaste
Exit_cmdDuplicate_Click:
Exit Sub
Err_cmdDuplicate_Click:
MsgBox Err.Description
Resume Exit_cmdDuplicate_Click
End Sub
Option Compare Database
Private Declare Function apiOpenClipboard Lib "user32" _
Alias "OpenClipboard" _
(ByVal hwnd As Long) _
As Long
Private Declare Function apiEmptyClipboard Lib "user32" _
Alias "EmptyClipboard" _
() As Long
Private Declare Function apiCloseClipboard Lib "user32" _
Alias "CloseClipboard" _
() As Long
Function EmptyClipboard()
If apiOpenClipboard(0&) <> 0 Then
Call apiEmptyClipboard
Call apiCloseClipboard
End If
End Function
danhxetnghiem > 22-02-14, 07:52 PM
(19-02-14, 07:21 PM)MatTroiNguQuen Đã viết: Bạn dùng command button wizard, chọn record Operations, khung bên trái chọn duplicate record
VD:
Mã:Private Sub Command10_Click()
On Error GoTo Err_Command10_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append
Exit_Command10_Click:
Exit Sub
Err_Command10_Click:
MsgBox Err.Description
Resume Exit_Command10_Click
End Sub
Hoặc dùng code sau:
Mã:Private Sub cmdDuplicate_Click()
On Error GoTo Err_cmdDuplicate_Click
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.RunCommand acCmdRecordsGoToNew
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdPaste
Exit_cmdDuplicate_Click:
Exit Sub
Err_cmdDuplicate_Click:
MsgBox Err.Description
Resume Exit_cmdDuplicate_Click
End Sub
Tuy nhiên nếu bạn không xóa Clipboard trước khi đóng form thì sẽ luôn nhận được một thông báo của Ac
Để xóa Clipboard bạn tạo mới một module và copy code sau vào . Gọi hàm EmptyClipboard trước khi đóng form:
Mã:Option Compare Database
Private Declare Function apiOpenClipboard Lib "user32" _
Alias "OpenClipboard" _
(ByVal hwnd As Long) _
As Long
Private Declare Function apiEmptyClipboard Lib "user32" _
Alias "EmptyClipboard" _
() As Long
Private Declare Function apiCloseClipboard Lib "user32" _
Alias "CloseClipboard" _
() As Long
Function EmptyClipboard()
If apiOpenClipboard(0&) <> 0 Then
Call apiEmptyClipboard
Call apiCloseClipboard
End If
End Function
Chúc bạn thành công!
minhtien1991 > 23-02-14, 11:54 PM
(19-02-14, 07:21 PM)MatTroiNguQuen Đã viết: Bạn dùng command button wizard, chọn record Operations, khung bên trái chọn duplicate record
VD:
Mã:Private Sub Command10_Click()
On Error GoTo Err_Command10_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append
Exit_Command10_Click:
Exit Sub
Err_Command10_Click:
MsgBox Err.Description
Resume Exit_Command10_Click
End Sub
Hoặc dùng code sau:
Mã:Private Sub cmdDuplicate_Click()
On Error GoTo Err_cmdDuplicate_Click
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.RunCommand acCmdRecordsGoToNew
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdPaste
Exit_cmdDuplicate_Click:
Exit Sub
Err_cmdDuplicate_Click:
MsgBox Err.Description
Resume Exit_cmdDuplicate_Click
End Sub
Tuy nhiên nếu bạn không xóa Clipboard trước khi đóng form thì sẽ luôn nhận được một thông báo của Ac
Để xóa Clipboard bạn tạo mới một module và copy code sau vào . Gọi hàm EmptyClipboard trước khi đóng form:
Mã:Option Compare Database
Private Declare Function apiOpenClipboard Lib "user32" _
Alias "OpenClipboard" _
(ByVal hwnd As Long) _
As Long
Private Declare Function apiEmptyClipboard Lib "user32" _
Alias "EmptyClipboard" _
() As Long
Private Declare Function apiCloseClipboard Lib "user32" _
Alias "CloseClipboard" _
() As Long
Function EmptyClipboard()
If apiOpenClipboard(0&) <> 0 Then
Call apiEmptyClipboard
Call apiCloseClipboard
End If
End Function
Chúc bạn thành công!
MTNQ > 24-02-14, 03:04 AM
(22-02-14, 07:52 PM)danhxetnghiem Đã viết: Cái này rất đúng với ý mình, mình cũng đang cần, nhưng mình làm như bạn mà không được, bạn có thể cho mình cái ví dụ đơn giản để mình dể hiểu và mài mò tiếp được không? mình cảm ơn nhiều!
MTNQ > 25-02-14, 02:08 AM
(23-02-14, 11:54 PM)minhtien1991 Đã viết: bạn cho mình hỏi là mình có 1 bài tập như sau: tạo các nút lệnh xóa trong sub form, xóa hết form và xóa từng mục trong sub form vậy mình làm thế nào?thanks bạn.
các bạn xem bài tập của mình giúp với.
https://dl.dropboxusercontent.com/u/47029625/DE%207.rar
daiphong1979 > 25-02-14, 03:04 PM
MTNQ > 25-02-14, 03:58 PM
(25-02-14, 03:04 PM)daiphong1979 Đã viết: Cám ơn các bạn ! Trong việc copy nội dung các field trong một form theo các code của bạn mattroinguquen chỉ thực hiện được nếu trên form đó không có một filed là khóa chính ...
Trong trường hợp của mình ..thì không thể nào copy được ..nó luôn báo không cho duplicate field có khóa chính !
các bạn xem lại giúp mình trường hợp này nhé ...xin cám ơn các bạn...
Private Sub cmdDuplicate_Click()
On Error GoTo Err_cmdDuplicate_Click
Dim lngID As Long
If Me.NewRecord And Not Me.Dirty Then
MsgBox "Chua co du lieu de Sao chep", , "luu Y!"
Exit Sub
End If
lngID = DMax("[ID]", "[tblName]") 'thay truong ID va tblName bang khoa chinh va ten table cua ban
'Call cmdSUA_Click
Me.txtID.SetFocus 'thay txtID bang ten text box chua khoa chinh cua ban
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.RunCommand acCmdRecordsGoToNew
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdPaste
Me.txtID = lngID + 1 'thay txtID bang ten text box chua khoa chinh cua ban
Exit_cmdDuplicate_Click:
Exit Sub
Err_cmdDuplicate_Click:
MsgBox Err.Description
Resume Exit_cmdDuplicate_Click
End Sub
MTNQ > 25-02-14, 06:46 PM
(25-02-14, 02:08 AM)MatTroiNguQuen Đã viết: Chào bạn!
1/Mình thấy bạn thiết lập mối quan hệ giữa các bảng chưa hợp lý
2/ Mình không học trường lớp nên có thể cách làm của mình không đúng như bài vở, chỉ đưa ra tham khảo thui nha:
Code nút "XOA DDH (Click to View)Code nút "XOA CHI TIET (Click to View)File của bạn đâyCode nút "XOA TAT CA CHI TIET (Click to View)
P/s: Bạn post câu hỏi không đúng chủ đề, lần sau nhớ hỏi đúng nơi đúng chỗ hoặc lập chủ đề mới nha!
Private Sub Command20_Click()
DoCmd.GoToControl "DH"
DoCmd.GoToRecord , , acFirst
DoCmd.SetWarnings False
Do Until IsNull(Me!DH.Form!MDDH) = True
DoCmd.RunCommand acCmdDeleteRecord
Loop
DoCmd.SetWarnings True
End Sub
daiphong1979 > 28-02-14, 09:42 AM
(25-02-14, 03:58 PM)MatTroiNguQuen Đã viết:Cám ơn bạn đã giúp đỡ....Mình cũng đã thử ...nhưng vẫn không thực hiện được lệnh copy và vẫn báo lỗi ..duplicate...Mình gửi file bạn xem giúp mình nhé ! Mình chỉ là tay ngang chưa học lớp Access lần nào chỉ xem trên diễn đàn và tự học nên ...rất là chicken ...chỉ viết cái CT nhỏ để phục vụ cho công việc...Mong bạn giúp đỡ !(25-02-14, 03:04 PM)daiphong1979 Đã viết: Cám ơn các bạn ! Trong việc copy nội dung các field trong một form theo các code của bạn mattroinguquen chỉ thực hiện được nếu trên form đó không có một filed là khóa chính ...
Trong trường hợp của mình ..thì không thể nào copy được ..nó luôn báo không cho duplicate field có khóa chính !
các bạn xem lại giúp mình trường hợp này nhé ...xin cám ơn các bạn...
Bạn thử cách sau:
Mã PHP:Private Sub cmdDuplicate_Click()
On Error GoTo Err_cmdDuplicate_Click
Dim lngID As Long
If Me.NewRecord And Not Me.Dirty Then
MsgBox "Chua co du lieu de Sao chep", , "luu Y!"
Exit Sub
End If
lngID = DMax("[ID]", "[tblName]") 'thay truong ID va tblName bang khoa chinh va ten table cua ban
'Call cmdSUA_Click
Me.txtID.SetFocus 'thay txtID bang ten text box chua khoa chinh cua ban
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.RunCommand acCmdRecordsGoToNew
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdPaste
Me.txtID = lngID + 1 'thay txtID bang ten text box chua khoa chinh cua ban
Exit_cmdDuplicate_Click:
Exit Sub
Err_cmdDuplicate_Click:
MsgBox Err.Description
Resume Exit_cmdDuplicate_Click
End Sub