tvn_hut > 23-08-13, 05:24 PM
truonghet > 23-08-13, 06:19 PM
(23-08-13, 05:24 PM)tvn_hut Đã viết: Hi allHi bạn theo mình thấy code bạn có vấn đề rồi, chỗ 'Me![MCode]' chuyển thành '" & Me![MCode] & "' !
Mình muốn sử dụng Dlookup để tính toán nhưng gặp rắc rối khi mã code không chạy. Mình có test trên Window Immediate thì xảy lỗi ở điều kiện. Đây là mã code mình làm
[Private Sub CboDTConvert_AfterUpdate()
Dim VarRate As Variant
If Not IsNull(Me![TotDownTime]) Then
VarRate = DLookup("[Rate]", "TblMachineLL", "[MCode] ='Me![MCode]'")
DTConvert = TotDownTime * VarRate
End If
End Sub
/php]
Mình cũng chưa tìm ra nguyên nhân vì sao mã code không chạy được. Mong các bạn chỉ giúp mình nhé
Best regards,
TVN
tvn_hut > 23-08-13, 06:39 PM
(23-08-13, 06:19 PM)truonghet Đã viết:(23-08-13, 05:24 PM)tvn_hut Đã viết: Hi allHi bạn theo mình thấy code bạn có vấn đề rồi, chỗ 'Me![MCode]' chuyển thành '" & Me![MCode] & "' !
Mình muốn sử dụng Dlookup để tính toán nhưng gặp rắc rối khi mã code không chạy. Mình có test trên Window Immediate thì xảy lỗi ở điều kiện. Đây là mã code mình làm
[Private Sub CboDTConvert_AfterUpdate()
Dim VarRate As Variant
If Not IsNull(Me![TotDownTime]) Then
VarRate = DLookup("[Rate]", "TblMachineLL", "[MCode] ='Me![MCode]'")
DTConvert = TotDownTime * VarRate
End If
End Sub
/php]
Mình cũng chưa tìm ra nguyên nhân vì sao mã code không chạy được. Mong các bạn chỉ giúp mình nhé
Best regards,
TVN
Bạn thử fix lại hàm Dlookup như vầy nhé:
VarRate = DLookup("[Rate]", "TblMachineLL", "[MCode] ='" & Me![MCode] & "'")
chúc bạn thành công
khải nguyên > 23-08-13, 11:40 PM
cpucloi > 24-08-13, 11:49 AM
tvn_hut > 24-08-13, 02:04 PM
Thanh Phương > 24-08-13, 04:29 PM
tvn_hut > 24-08-13, 05:39 PM
(24-08-13, 04:29 PM)Thanh Phương Đã viết: 1/ Hàm Dlookup bắt buộc phải có đối số thứ 3. Trong bài của bạn, tôi tìm mỏi mắt suốt cả buổi chiều cũng không thấy đối số thứ 3 cần có để dò tìm ở đâu hết. Vậy cái MCode của bạn ở đâu? Lỗi chính là tại đây
2/ Xem lại cách thiết kế CSDL, mộttable của bạn có tới...6 khóa chính thì có hợp lý không?
cpucloi > 24-08-13, 09:14 PM
tvn_hut > 24-08-13, 11:41 PM
(24-08-13, 09:14 PM)cpucloi Đã viết: Phân tích vấn đề của bạn một chút (vì bài trước trả lời bạn do bạn chưa post file lên).
Của bạn:
Private Sub CboDTConvert_AfterUpdate()
Dim VarRate As Variant
If Not IsNull(Me![TotDownTime]) Then
VarRate = DLookup("[Rate]", "TblMachineLL", "[MCode] ='Me![MCode]'")
DTConvert = TotDownTime * VarRate
End If
End Sub
1. Hiện tại mình đang thấy: TotDownTime, MCode ở trong subform FSubDown nhúng trong mainform FrmDownMain do đó khai báo như bạn là Me!TotDownTime và Me!MCode là không đúng => Me! ở đây biểu thị của FrmDownMain.
Bạn phải thay Me! bằng chỉ định đầy đủ: Forms!FrmDownMain!FSubDown.Form!TotDownTime (các cái khác ở trong subform muốn truy vấn đến làm tương tự).
2. Tớ không tìm thấy cái DTConvert ở đâu cả, vậy không thể gán gì cho nó được.
Bạn kiểm tra lại nhé!
Quên mất, Me! đúng trong trường hợp bạn chạy FSubDown độc lập, khi nhúng vào FrmDownMain thì không được đâu nhé