Làm sao để ghi dữ liệu vào record?

vuthuanbkvn

Member
Hội viên mới
Mình có 1 form nhập với các textbox như sau: nguồn dữ liệu lấy từ 1 table trong đó gồm các field sau: thoigianvao (định dạng là date),tgtieutu(định dạng number),tghethan(định dạng text) . Mình tạo 1 subform sao cho sau khi nhập dữ liệu xong thì mở subform này nó sẽ tính toán thời gian như sau?
code:
If ((tgtieutu - Abs(DateDiff("d", Now, thoigianvao ))) < 0) Then
tgconlai = "Đã hết hạn tiểu tu"
Else
tghethan =tgtieutu - Abs(DateDiff("d", Now, thoigianvao ))

Sao mà mình không thể làm đc? báo lỗi không thể gán giá trị cho tghethan ? Có cách nào báo đc và ghi đc không? trước đây có lần mình làm đc mà không có lỗi gì? nhưng giờ không lam đc nữa,không biết do đâu?
 
Ðề: Làm sao để ghi dữ liệu vào record?

tghethan có kiểu dữ liệu là Text. Trong khi đó kết quả trả về của tgtieutu - Abs(DateDiff("d", Now, thoigianvao )) lại là kiểu số! Làm sao mà gán được!
Bạn thử thay đổi kiểu dữ liệu của từng cái lại xem!
Mình chỉ biết vậy thôi:tinhtuong:
 
Ðề: Làm sao để ghi dữ liệu vào record?

có thể không phải nguyên nhân do đó đâu.
Nói chung cái mình muốn làm mình mô tả như sau:
Mình muốn so sánh thời gian giữa các mốc thời điểm với nhau:
Thời điểm nhập vào bảo dưỡng kiểu dữ liệu date như 12/12/2008
Thời gian cho phép bảo dưỡng là kiểu number như 12 (tháng).
Thời gian hiện tại (theo giờ của mày tính) ví dự như hôm nay là : 10/3/2009
Mình dùng hàm DateDiff để tính thời gian hôm nay - thời gian ngày vào bảo dưỡng . Sau đó so sánh với thời gian cho phép ( 12 tháng) nếu < 12 tháng thì ghi vào record kiểu "Đã hết hạn bảo dưỡng" , nếu >12 tháng thì tính số tháng còn lại.
Các bạn giúp mình cách ghi dữ liệu vào table với? có cách để thời gian tính toán và ghi vào table đc và chính xác nhỉ?
 
Ðề: Làm sao để ghi dữ liệu vào record?

Muốn ghi vào table thì bắt cái control source của text box đó vào field đó. Thế thôi. Sao còn hỏi?

Nguyên tắc toàn vẹn dữ liệu: không tạo 1 field mà nó có thể tính toán được từ những field khác.
Tốt hơn thì bạn không nên ghi kết quả vào table. Khi nào cần dùng thì tính toán từ các field kia.
 
Ðề: Làm sao để ghi dữ liệu vào record?

Muốn ghi vào table thì bắt cái control source của text box đó vào field đó. Thế thôi. Sao còn hỏi?

Nguyên tắc toàn vẹn dữ liệu: không tạo 1 field mà nó có thể tính toán được từ những field khác.
Tốt hơn thì bạn không nên ghi kết quả vào table. Khi nào cần dùng thì tính toán từ các field kia.

Mình cũng bắt cái control source đó chứ,nhưng nó báo ko thể gán giá trị đc? ở các sự kiện khác,riêng sự kiện Activate thì gán được nhưng nó chỉ gán đc cho record đầu tiên,còn các record khác không thể gán đc? có cách nào ko nhỉ?

Nếu ko làm theo nguyên tắc toàn vẹn dữ liệu thì có cách nào tự động cập nhập theo ngày ,tháng ko nhỉ? đến thời điểm thì nó tự cảnh báo cho mình rồi tự động cập nhập để đến lúc mình lọc ra giữ liệu cần tìm(Ví dụ tìm nhưng loại xe đã quá hạn rồi) mà không phải tự tính toán và tự cập nhật vào từng record hay Field nào đó?
 
Ðề: Làm sao để ghi dữ liệu vào record?

Mình cũng bắt cái control source đó chứ,nhưng nó báo ko thể gán giá trị đc? ở các sự kiện khác,riêng sự kiện Activate thì gán được nhưng nó chỉ gán đc cho record đầu tiên,còn các record khác không thể gán đc? có cách nào ko nhỉ?

Nếu ko làm theo nguyên tắc toàn vẹn dữ liệu thì có cách nào tự động cập nhập theo ngày ,tháng ko nhỉ? đến thời điểm thì nó tự cảnh báo cho mình rồi tự động cập nhập để đến lúc mình lọc ra giữ liệu cần tìm(Ví dụ tìm nhưng loại xe đã quá hạn rồi) mà không phải tự tính toán và tự cập nhật vào từng record hay Field nào đó?

Muốn gán cho record khác thì bạn phải di chuyển sang record khác chứ sao nữa.

Nếu bạn vẫn muốn ghi vào field thì dùng lệnh SQL để update lại.
Có thể gán vào 1 cái nút nào đó hoặc vào form_load để khỏi tốn công nhấn nút.
 
Ðề: Làm sao để ghi dữ liệu vào record?

Muốn gán cho record khác thì bạn phải di chuyển sang record khác chứ sao nữa.

Nếu bạn vẫn muốn ghi vào field thì dùng lệnh SQL để update lại.
Có thể gán vào 1 cái nút nào đó hoặc vào form_load để khỏi tốn công nhấn nút.

theo bác nói đúng,em cũng làm như thế nhưng cũng không được, hì sau 1 ngày làm đi làm lại nhiều lần sửa đi sửa lại em cũng làm đc như sau:
' Nếu như đã hết hạn
If (tglammo < Abs(DateDiff("m", tgbaoduong, Date))) Then
tgconlai = "Đã quá hạn làm mỡ"
ElseIf (tgtieutu < Abs(DateDiff("m", tgbaoduong, Date))) Then
tgconlai = "Đã quá hạn tiểu tu"
ElseIf (tgtrungtu < Abs(DateDiff("y", tgbaoduong, Date))) Then
tgconlai = "Đã quá hạn trung tu"
' Nếu chưa hết hạn thì tính ngày
ElseIf (tglammo > Abs(DateDiff("m", tgbaoduong, Date))) Then
tgconlai = tglammo - DateDiff("m", tgbaoduong, Date)
ElseIf (tgtieutu > Abs(DateDiff("m", tgbaoduong, Date))) Then
tgconlai = tgtieutu - DateDiff("m", tgbaoduong, Date)
ElseIf (tgtrungtu > Abs(DateDiff("m", tgbaoduong, Date))) Then
tgconlai = tgtrungtu - DateDiff("y", tgbaoduong, Date)
End If

và tại form đó tạo sự kiện làm tươi form bằng lệnh Me.Refresh thì nó tự động cập nhập và ghi vào tgconlai :hi:

Ah. Bác nào có cách nào nhét cách tính thời gian vào tgconlai nếu như thời gian hết hạn đã hết ví dụ như "Đã hết hạn làm mỡ (12 tháng)"
 
Sửa lần cuối:

CẨM NANG KẾ TOÁN TRƯỞNG


Liên hệ: 090.6969.247

KÊNH YOUTUBE DKT

Cách làm file Excel quản lý lãi vay

Đăng ký kênh nhé cả nhà

SÁCH QUYẾT TOÁN THUẾ


Liên hệ: 090.6969.247

Top