MTNQ > 31-10-15, 08:32 AM
(30-10-15, 07:16 AM)tt1212 Đã viết: Xin hỏi mattroinguquen đoạn code này mình muốn lưu subform thì làm sao bạn?
Mã PHP:Private Sub cmdLuu_Click()
...
End Sub
Đây là nút lưu trên fom chính vậy muốn nhấn mút lưu trên fom chinh ma subfom lưu thi làm sao bạn? nhờ bạn chỉ mình mới
Minh Tiên > 31-10-15, 01:09 PM
tt1212 > 31-10-15, 09:04 PM
thucgia > 01-11-15, 02:05 AM
(31-10-15, 09:04 PM)tt1212 Đã viết: 1. Cái vụ giải quyết xung đột dữ liệu, theo mình nghỉ nên dùng Unbound trên Main, tạo table Tạm gắn và Sub khi lưu đỗ dữ liệu vào Data lưu là ồn (Ai lưu trước cấp mã trước, ai lưu sau cấp sau).
2. Mình chưa hiểu ý bạn lắm. Có phải bạn muốn dự liệu subform (hiển thị dạng Continuous) và hiển thị theo text box trên Mainform không ?
Nếu đúng thế: Sao không thay textbox bằng combobox. Khi Open Form nạp dự liệu cho Cbo. Khi thay đổi cbo thì load lại Subform theo điều kiện của Cbo.
Nói
Vấn đề vướng mắc là thế này:
Tạo form chi tiết bán hàng cdang conterniufom để hiển thị nhiều dòng
Trong đố có hai ô textbox mã hàng, tên hàng chẳng hạn tại thuộc tính Name mình để [mahang], [tenhang] nhưng thuộc tinh source nếu để [mahang], [tenhang] thì sẽ hiển thị các hàng dữ liệu như trong bảng là đúng,
Nhưng nếu thuộc tính source để trống có nghĩa là Unbound thi khi gõ vào 1 dóng là tất cả các dóng đều giống nhau! Vậy giải quyết thế nào để nhập các dòng cho đúng
tt1212 > 01-11-15, 02:23 AM
=sum(thanhtien)
thucgia > 01-11-15, 02:45 AM
(01-11-15, 02:23 AM)tt1212 Đã viết: Đang bitrong subfỏm giup mình với khong hieu sao no chăng tính choMã PHP:=sum(thanhtien)
Function sum_field(rs As ADODB.Recordset, fld As String) As Double
Dim kq As Double
Dim f As ADODB.Field
kq = 0
If rs.RecordCount <= 0 Then
sum_field = 0
Exit Function
End If
rs.MoveFirst
Do While Not rs.EOF
For Each f In rs.Fields
If f.name = fld Then
kq = kq + CDbl(f.value)
End If
Next f
rs.MoveNext
Loop
sum_field = kq
End Function
Private Sub Form_Open(Cancel As Integer)
If Not IsNull(Me.OpenArgs) Then
Me.RibbonName = Me.OpenArgs
End If
Set Me.Recordset = ado2_view.Lay_nhatky_xuatnhap
Call ado2_view.load_listbox_dongia_bq(Me.list_dgbq)
Call ado2_view.load_listbox_td_nx_tc(Me.list_td_nx_tc)
Call ado2_view.load_listbox_hang(Me.list_hang)
Me.txt_ton.value = ado2_view.sum_field(Me.Recordset, "tc")
End Sub
Minh Tiên > 02-11-15, 11:36 AM
Dim rs As New ADODB.Recordset, sql As String
sql = "SELECT sum(Thanhtien) as CongThanhtien "
sql = sql & "FROM tableName Where ..."
Set rs = fGetRecordset(sql)
If rs.RecordCount > 0 Then
myForm.txtThanhtien.Value = rs!CongThanhtien
Else
myForm.txtThanhtien.Value.Value = 0
End If
Set rs=Nothing
thucgia > 02-11-15, 12:38 PM
(02-11-15, 11:36 AM)Minh Tiên Đã viết: Nếu dùng Record Source trực tiếp thì bạn dùng Sum([Thanhtien]) Ok.
Nhưng nếu dùng ADO load Record thì bạn dùng ADO để tính và Update thành tiền. Ngoài cách của "thucgia" bạn cũng có thể dùng Code ADO:
Mã:Dim rs As New ADODB.Recordset, sql As String
sql = "SELECT sum(Thanhtien) as CongThanhtien "
sql = sql & "FROM tableName Where ..."
Set rs = fGetRecordset(sql)
If rs.RecordCount > 0 Then
myForm.txtThanhtien.Value = rs!CongThanhtien
Else
myForm.txtThanhtien.Value.Value = 0
End If
Set rs=Nothing
Thân./.
tt1212 > 03-11-15, 04:00 PM
tt1212 > 04-11-15, 09:49 AM