Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Help] Xin hỏi cách copy nội dung trong form và điền lại form đó...
#1
Em có một form mang tên nhapcongvan trong đó có field : macongvan là khóa chính....và form này ứng với việc điền dữ liệu của table mang tên nhapcongvan1...
Do việc nhập dữ liệu có nhiều record giống nhau chỉ thay đổi chút đỉnh về ngày tháng còn nội dung giống nhau...cho em hỏi có thể copy các filed trong form và điền lại một record khác được không ạ ?
Em có mày mò làm thử nhưng nếu mà bỏ khóa chính thì copy được..còn để khóa (bắt buộc) thì copy không được...

Xin cám ơn các anh !
Chữ ký của daiphong1979 Này gió ơi cho ta nhờ chút việc,
Việc nhỏ thôi nhưng là cả tấm lòng,
Khi gió về nép bên cạnh người ấy,
Gió thì thầm ta nhớ ấy biết bao.

Reply
Những người đã cảm ơn
#2
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! 015
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn daiphong1979 , thucgia
#3
(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! 015

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!
Chữ ký của danhxetnghiem Đừng bao giờ so sánh đoạn đầu của bạn với đoạn giữa của người khác
Reply
Những người đã cảm ơn daiphong1979
#4
(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! 015

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
Chữ ký của minhtien1991 Xin chào, mình là minhtien1991, Tham gia http://thuthuataccess.com/forum từ ngày 09-02 -14.
Reply
Những người đã cảm ơn daiphong1979
#5
(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!

Vài lưu ý khi chạy lệnh DoCmd.RunCommand acCmdPaste:
-form phải ở chế độ sẵn sàng nhập dữ liệu (các control liên quan đến dữ liệu cần paste không khóa hay Enabled = False)
-Nếu có Sub form thì trước khi sao chép cần đặt focus vào form cần sao chép (VD: main form) nhằm tránh sao chép nhầm dữ liệu .
VD: nếu con trỏ đang nằm trong sub form mà bấm copy thì record được sao chép sẽ là của sub form chứ không phải của main form

Mình làm ví dụ trên file Demo Lock Record2.mdb nhé
Download

P/s: Trong Demo, Vì dữ liệu sao chép nhỏ nên ta hông cần hàm EmptyClipboard
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn daiphong1979 , danhxetnghiem
#6
(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

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)
Code nút "XOA TAT CA CHI TIET (Click to View)
File của bạn đây

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!015
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn
#7
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...
Chữ ký của daiphong1979 Này gió ơi cho ta nhờ chút việc,
Việc nhỏ thôi nhưng là cả tấm lòng,
Khi gió về nép bên cạnh người ấy,
Gió thì thầm ta nhớ ấy biết bao.

Reply
Những người đã cảm ơn
#8
(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 
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn daiphong1979
#9
(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)
Code nút "XOA TAT CA CHI TIET (Click to View)
File của bạn đây

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!015

Sorry bạn minhtien1991 code cho nut "XOA TAT CA CHI TIET" sửa lại như sau:

Mã:
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
Chữ ký của MatTroiNguQuen Thời gian nước chảy... da mòn
Ngủ quên một chốc thấy còn bộ xương!
Reply
Những người đã cảm ơn Noname
#10
(25-02-14, 03:58 PM)MatTroiNguQuen Đã viết:
(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 
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 đỡ !
http://www.mediafire.com/download/7hfwqx...014fix.rar
1/ Trong file khi nhấp vào nhập ông văn sẽ mở form nhapdulieu(theodoinhapxuat1)...đó là form mà mình cần khi nhập nhiều công văn đến có nội dung giống nhau mình chỉ cần copy nội dung cũ điền vào form và thay đổi macongvan...
2/ Săn đây bạn cho mình hỏi ..phần report mình
Thí dụ : xem điện kế thì có nhiều mã điện kế như : DK1040, DK520, DK2080...em muốn xem tổng tức là chỉ đếm vật tư có mã là DK thôi thì phải làm thế nào...em đã thử làm hàm left, right nhưng vẫn lại không thành công..

Rất tmong được bạn giúp đỡ...Xin chân thành cám ơn !
Chữ ký của daiphong1979 Này gió ơi cho ta nhờ chút việc,
Việc nhỏ thôi nhưng là cả tấm lòng,
Khi gió về nép bên cạnh người ấy,
Gió thì thầm ta nhớ ấy biết bao.

Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Tự động hiện Form khi loading hết thời gian ChiMai 1 20 11 Giờ trước
Bài mới nhất: ongke0711
Photo [Hỏi] Mở Form trên access 2007 báo lỗi jason 5 186 22-11-16, 09:23 AM
Bài mới nhất: jason
  [Hỏi] Làm sao để ấn định Null cho trường Date khi sử dụng Class Module Minh Tiên 8 612 18-11-16, 09:29 AM
Bài mới nhất: MinhnHang
  Query hiện lên trên form? feeling 4 160 09-11-16, 09:49 PM
Bài mới nhất: toancvp
  [Help] Chỉnh giúp Form thống kê hoanghai902 2 122 28-10-16, 06:15 PM
Bài mới nhất: hoanghai902

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ