Mình làm chương trình quản lý thiết bị có một bảng tblThietbi chứa dữ liệu, 2 form như sau:
Form2 này là form lọc dữ liệu theo các tham số từ các combobox và textbox như đã thấy (bằng query qryLoc), nhấn nút "Truy nhập dữ liệu" thì sẽ hiện Form1 như sau:
Form1 này sẽ chứa toàn các record đã được lọc từ Form2, người dùng có thể chỉnh sửa dữ liệu và in luôn thông qua Report vì vậy mình để chung thuộc tính recordsource của cả 2 form là qryLoc.
Trên Form1 khi nhấn nút Copy thì chương trình sẽ sao chép ra một record mới có giá trị các Field y hệt với record hiện hành trên Form1, save vào CSDL luôn và mình có thể dùng mà in luôn. Bằng code như này:
Private Sub cmdSaochep_Click()
'On Error GoTo Err_Handler
Dim strSql As String 'SQL statement.
Dim lngID As Long 'Primary key value of the new record.
If Me.NewRecord Then
MsgBox "Select the record to duplicate."
Else
With Me.RecordsetClone
.AddNew
!tenTB = Me.cbbTenTB
........
'va nhieu truong khac nua
.Update
Me.Bookmark = .LastModified
End With
End If
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Me.Requery
Exit_Handler:
Exit Sub
Err_Handler:
MsgBox "Error " & Err.Number & " - " & Err.Description, , "cmdSaochep_Click"
Resume Exit_Handler
End Sub
Vấn đề ở chỗ mình muốn làm một nút New tạo mới record với các Field hoàn toàn trắng để người dùng có thể nhập dữ liệu, được sao lưu luôn và in ngay nhưng mình thử nhiều phương pháp mà không được:
1. Mình áp dụng code giống như nút Copy như trên nhưng chưa làm được việc gán giá trị các field của record mới là "trắng"
2. Sử dụng
DoCmd.GoToRecord , , acNewRec
thì nó sẽ không lưu và in luôn được mà phải khi tắt chương trình mở lại mới thấy record mới
Rất mong được sự giúp đỡ của các bạn, cám ơn rất nhiều !