MTNQ > 26-02-16, 10:28 AM
(20-02-16, 10:39 AM)jason Đã viết: Chào các ace ở diễn đàn !
năm mới chúc mọi người thật nhiều sức khỏe và vạn sự như ý
Em có một vấn đề muốn hỏi. Như vầy:
khi em thêm mới 1 record từ form vào table .em muốn khi save lại record đó sẽ được chọn (hoặc được nhuộm đen) trong sub form.
ACE nào biết xin giúp em với ạ
chân thành cảm ơn.
Me.subform.Form.Recordset.FindFirst "Makhachhang = '" & Me.txtMakhachhang & "'"
MTNQ > 26-02-16, 10:38 AM
Function AddFormatConditions(frm As Form, strExpression As String, _
Optional lngBackColor As Long = vbRed, Optional lngForeColor As Long = vbWhite) As Boolean
On Error GoTo HandleError
Dim ctl As Control
For Each ctl In frm.Section(acDetail).Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then
ctl.FormatConditions.Delete
With ctl.FormatConditions.Add(acExpression, , strExpression)
.BackColor = lngBackColor
.ForeColor = lngForeColor
End With
End If
Next ctl
Err_Exit:
Set ctl = Nothing
Exit Function
HandleError:
MsgBox Err.Description, vbCritical, "Err: AddFormatConditions"
Resume Err_Exit
End Function
jason > 26-02-16, 11:52 AM
(26-02-16, 10:28 AM)MatTroiNguQuen Đã viết:(20-02-16, 10:39 AM)jason Đã viết: Chào các ace ở diễn đàn !
năm mới chúc mọi người thật nhiều sức khỏe và vạn sự như ý
Em có một vấn đề muốn hỏi. Như vầy:
khi em thêm mới 1 record từ form vào table .em muốn khi save lại record đó sẽ được chọn (hoặc được nhuộm đen) trong sub form.
ACE nào biết xin giúp em với ạ
chân thành cảm ơn.
Chưa xem file của bạn nhưng thấy yêu cầu cũng khá đơn giản. Có nhiều cách thực hiện. Bạn có thể thêm lệnh sau vào thủ tục của nút lưu :
Mã:Me.subform.Form.Recordset.FindFirst "Makhachhang = '" & Me.txtMakhachhang & "'"
Thay subform bằng tên của điều khiển chứa subform của bạn(Nó thường trùng với tên subform), Makhachhang là tên trường có trong subform, Me.txtMakhachhang là textbox trên mainform có nguồn là Makhachhang
Me.FTERP_sub.Form.Recordset.FindFirst "OrderNumber = '" & Me.txtPO & "'"
MTNQ > 26-02-16, 02:16 PM
(26-02-16, 11:52 AM)jason Đã viết:em thử cách của anh , thêm code trên vào nút save bài của em nhưng không được. anh xem giúp em vớiMã:Me.FTERP_sub.Form.Recordset.FindFirst "OrderNumber = '" & Me.txtPO & "'"
Private Sub cmdSave_Click()
Dim strSalseInfoID As String
strSalseInfoID = Me.txtSalseInfoID
DoCmd.SetWarnings 0
'...
DoCmd.SetWarnings -1
Me.FTERP_sub.Form.Recordset.FindFirst "[SalseInfoID] = '" & strSalseInfoID & "'"
End Sub
Private Sub cmdSave_Click()
Dim strSalseInfoID As String
strSalseInfoID = Me.txtSalseInfoID
DoCmd.SetWarnings 0
'...
DoCmd.SetWarnings -1
AddFormatConditions Me.FTERP_sub.Form, "[SalseInfoID] = '" & strSalseInfoID & "'"
End Sub
MTNQ > 26-02-16, 02:22 PM
Private Sub cmdSave_Click()
Dim strSalseInfoID As String
strSalseInfoID = Me.txtSalseInfoID
DoCmd.SetWarnings 0
'...
DoCmd.SetWarnings -1
Me.FTERP_sub.Form.Recordset.FindFirst "[SalseInfoID] = '" & strSalseInfoID & "'"
AddFormatConditions Me.FTERP_sub.Form, "[SalseInfoID] = '" & strSalseInfoID & "'"
End Sub
jason > 29-02-16, 09:42 AM
jason > 29-02-16, 03:45 PM
MTNQ > 29-02-16, 05:16 PM
(29-02-16, 03:45 PM)jason Đã viết: em đã thử theo anh hướng dẫn và áp dụng bằng cách kết hợp cả 2 ý của anh.
nếu như không tìm kiếm bằng textbox BuyerPONo -> chọn 1 record ngẫu nhiên -> thêm số OrderNumber -> khi save lại thì ok.
nhưng khi tìm 1 số BuyerPONo -> chọn record tìm được -> thêm số OrderNumber thì không được. (trường hợp anh nói "Form của bạn sau khi Requery thì data trên form chính cũng bị thay đổi do đó bạn phải dùng một biến để lưu giá trị hiện tại trước khi Requery và dùng nó để tìm lại bản ghi vừa được lưu") em chưa biết xử lý thế nào,em bứt tóc gần hết rồi mà chưa giải quyết được . anh trót giúp em phát luôn nha
cảm ơn anh !
jason > 01-03-16, 10:33 AM
(29-02-16, 05:16 PM)MatTroiNguQuen Đã viết:(29-02-16, 03:45 PM)jason Đã viết: em đã thử theo anh hướng dẫn và áp dụng bằng cách kết hợp cả 2 ý của anh.
nếu như không tìm kiếm bằng textbox BuyerPONo -> chọn 1 record ngẫu nhiên -> thêm số OrderNumber -> khi save lại thì ok.
nhưng khi tìm 1 số BuyerPONo -> chọn record tìm được -> thêm số OrderNumber thì không được. (trường hợp anh nói "Form của bạn sau khi Requery thì data trên form chính cũng bị thay đổi do đó bạn phải dùng một biến để lưu giá trị hiện tại trước khi Requery và dùng nó để tìm lại bản ghi vừa được lưu") em chưa biết xử lý thế nào,em bứt tóc gần hết rồi mà chưa giải quyết được . anh trót giúp em phát luôn nha
cảm ơn anh !
Mình test thấy bình thường mà bạn. Bạn up cái file đã làm lên mình xem thử
MTNQ > 01-03-16, 02:24 PM
If (DCount("SalseInfoID", "TPO", "SalseInfoID='" & strSalseInfoID & "'") > 0) Then
IsNull(Me.txtPO) Or Me.txtPO = ""
Nz(Me.txtPO, "") = ""
' Khai báo tường minh:
Dim DB As DAO.Database
Dim RS As DAO.Recordset
'...các lệnh khác...
' Hủy biến đối tượng:
Set DB = Nothing
Set RS = Nothing
Private Sub cmdSave_Click()
Dim strSalseInfoID As String
strSalseInfoID = Me.txtSalseInfoID
If (DCount("SalseInfoID", "TPO", "SalseInfoID='" & strSalseInfoID & "'") > 0) Then
MsgBox "Please check Order Number again!", vbOKOnly, "Thong bao"
Me.txtPO = ""
Me.txtPO.SetFocus
Exit Sub
Else
If Nz(Me.txtPO, "") = "" Then
MsgBox "Order Number is null, Please input again !", vbOKOnly
Me.txtPO.SetFocus
Exit Sub
Else
If DCount("SalseInfoID", "TERP", "SalseInfoID='" & strSalseInfoID & "'") > 0 Then
If MsgBox("Do you want save ?", vbYesNo, "Thong Bao") = vbYes Then
Dim strSQL As String
strSQL = "INSERT INTO TPO (SalseInfoID,OrderNumber,[Date]) VALUES " _
& "(" & Me.txtSalseInfoID & "," _
& "'" & Me.txtPO & "'," _
& Me.txtdate & ")"
CurrentDb.Execute strSQL
MsgBox "Saved!", vbOKOnly
Me.cmdloadDBPO.Enabled = True
End If
Me.txtBuyerPONo = ""
Me.txtPO = ""
Me.txtBuyerPONo.SetFocus
Me.txtPO.Enabled = False
Me.cmdSave.Enabled = False
'Lenh nay phai thuc thi truoc:
Forms!FPO!FTERP_sub.Requery
'Lenh nay chay sau:
Me.FTERP_sub.Form.Recordset.FindFirst "[SalseInfoID] = '" & strSalseInfoID & "'"
AddFormatConditions Me.FTERP_sub.Form, "[SalseInfoID] = '" & strSalseInfoID & "'"
End If
End If
End If
End Sub