Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
CẬP NHẬT DỮ LIỆU TỪ FORMS VÀO TABLE
#1
Tôi có forms dữ liệu như trong file đính kèm, nếu dùng query update thì dữ liệu tính toán, update chậm, nhưng nếu tính toán trược tiếp trên form dữ liệu tính toán nhanh. Rất Mong các bạn trong forum trợ giúp về việc update dữ liệu từ form vào table dữ liệu

Rất mong nhận được sự trợ giúp của anh em trong forum

Trân trọng
http://www.mediafire.com/download/08go68...-12-12.mdb
Chữ ký của chuvoicon Xin chào, mình là chuvoicon, Tham gia http://thuthuataccess.com/forum từ ngày 18-11 -13.
Reply
Những người đã cảm ơn
#2
(12-12-13, 11:15 AM)chuvoicon Đã viết: Tôi có forms dữ liệu như trong file đính kèm, nếu dùng query update thì dữ liệu tính toán, update chậm, nhưng nếu tính toán trược tiếp trên form dữ liệu tính toán nhanh. Rất Mong các bạn trong forum trợ giúp về việc update dữ liệu từ form vào table dữ liệu

Rất mong nhận được sự trợ giúp của anh em trong forum

Trân trọng
http://www.mediafire.com/download/08go68...-12-12.mdb

Chào bạn,

Mình chưa hình dung ra ý tưởng của bạn là gì, bạn nên nói chi tiết hơn. Nếu bạn cần gấp cho công việc thì mình trao đổi online nick yahoo của mình là dinh_trong_hoa.
Chữ ký của dinh_trong_hoa
Reply
Những người đã cảm ơn chuvoicon
#3
Cảm ơn bạn dinh_trong_hoa đã quan tâm đến chương trình của mình

Hiện nay mình đang cần chuyển dữ liệu đã tính toán từ forms (bạn xem forms) về lại table. Vì hệ thống của mình xây dựng dùng query rất phức tạp (vì các dữ kiện liên kết với nhau, công đoạn sau phụ thuộc công đoạn trước) và dùng query update được nhưng chưa thực sự thuận lợi và hiệu quả (hiện nay mình đang dùng update query - đã có queryupdate trong file)

Nếu dùng tính toán trực tiếp trên form rất thuận lợi, nhưng mình đang yếu khi cần chuyển dữ liệu đã tính toán về table để từ table dữ liệu liên kết cho các công việc khác
Chữ ký của chuvoicon Xin chào, mình là chuvoicon, Tham gia http://thuthuataccess.com/forum từ ngày 18-11 -13.
Reply
Những người đã cảm ơn
#4
Bạn cần làm 2 việc:
1. Chọn tất cả các textbox trên form chi tiết mà bạn đã có công thức tính toán, đặt thuộc tính Tag =1 (trong mục Other của bảng thuộc tính). Làm như vậy để thủ tục sau đây sẽ chỉ duyệt các điều khiển có Tag=1 để thực hiện query tính toán.
2. Mở form, chọn sự kiện AfterUpdate, đưa đoạn mã sau vào.
Mã PHP:
Private Sub Form_AfterUpdate()
    
Dim obj As ControlSql As String
    
For Each obj In Me.Controls
        
If obj.Tag 1 Then
            
' Su dung thuoc tinh Tag de dua query vaof
            If Nz(obj, 0) <> 0 Then Sql = Sql & ",a." & obj.Name & "=" & obj
        End If
    Next obj
    ' 
Chay query
    Sql 
"UPDATE chitiet as a SET " Mid(Sql2) & " WHERE a.Stt=" stt ";"
    
Debug.Print Sql
    CurrentDb
.Execute Sql
End Sub 
Mỗi khi bạn sửa, thêm số liệu, đoạn code trên sẽ chạy và thực hiện cập nhập số liệu tính toán trong bảng theo query đấy...
Mã PHP:
UPDATE chitiet as a SET a.tpxen=232,a.tpin=132,a.slphun=132,a.bhaophun=6,a.tphun=126,a.slsong=126,a.toin=126,a.slboi=126,a.bhaoboi=10,
a.tpboi=116,a.soluongbe=116,a.betay=13,a.betudong=14,a.tpbe=103,a.sldan=103,a.bhaodan=0.515 WHERE a.Stt=305
Ví dụ, khi bạn sửa số lượng đặt hàng, đoạn query trên sẽ cập nhập bản ghi có STT 305 theo công thức tính toán đã có sẵn trên form.

Vài điểm lưu ý thêm:
Thông thường, quy tắc chuẩn hóa CSDL đòi hỏi người dùng chỉ đưa số liệu gốc vào CSDL/bảng, các số liệu phát sinh từ việc tính toán các số liệu nguyên thủy (gốc/element data) chỉ nên dùng Truy vấn để thực hiện. Nếu các số liệu tính toán kia không thay đổi theo thời gian thì mới áp dụng việc tính và lưu vào CSDL.
Khi nào có thời gian, tôi sẽ viết thêm một vài bài về điều này!
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn Xuân Thanh , Noname , chuvoicon , nhannt4 , Minh Tiên
#5
(12-12-13, 02:13 PM)chuvoicon Đã viết: Cảm ơn bạn dinh_trong_hoa đã quan tâm đến chương trình của mình

Hiện nay mình đang cần chuyển dữ liệu đã tính toán từ forms (bạn xem forms) về lại table. Vì hệ thống của mình xây dựng dùng query rất phức tạp (vì các dữ kiện liên kết với nhau, công đoạn sau phụ thuộc công đoạn trước) và dùng query update được nhưng chưa thực sự thuận lợi và hiệu quả (hiện nay mình đang dùng update query - đã có queryupdate trong file)

Nếu dùng tính toán trực tiếp trên form rất thuận lợi, nhưng mình đang yếu khi cần chuyển dữ liệu đã tính toán về table để từ table dữ liệu liên kết cho các công việc khác

Chào bạn,

Form nó tiện dụng, dễ dùng nhưng không linh động bằng query, nó đòi hỏi có ý tưởng và cấu trúc dữ liệu rõ ràng. Bạn nói chung chung như thế thật khó ....Mình thích dùng form hơn query, vừa trang trí tuỳ tích, thiết kế ra ai cũng dùng được. Mình gởi bạn file mẫu tham khảo, file này thiết kế với mục đích quản lý doanh thu.

https://drive.google.com/file/d/0B_rEhoB...sp=sharing

Chúc bạn thành công.
Chữ ký của dinh_trong_hoa
Reply
Những người đã cảm ơn
#6
(12-12-13, 03:12 PM)dinh_trong_hoa Đã viết: Chào bạn,

Form nó tiện dụng, dễ dùng nhưng không linh động bằng query, nó đòi hỏi có ý tưởng và cấu trúc dữ liệu rõ ràng. Bạn nói chung chung như thế thật khó ....Mình gởi bạn file mẫu tham khảo, file này thiết kế với mục đích quản lý doanh thu.

Chúc bạn thành công.

Chương trình này của mình không phục vụ quản lý doanh thu (nếu mở rộng hệ thống thì có thể quản lý cả doanh thu, quản lý luôn công nợ, kho ... --> gộp). Chương trình của mình viết phục vụ công việc sản xuất - lập kế hoạch sản xuất cho các bộ phận sản xuất (dữ liệu sản xuất lấy chủ yếu từ cái table chi tiết của mình 015), bạn xem có thấy các thuộc tính liên hệ phụ thuộc các công đoạn sau phụ thuộc vào công đoạn trước. Mình đang cần thay thế không dùng query (đã có queryupdate - 2 đến 3 click mới cập nhật hết big green) mà tính toán trực tiếp trên form (đã làm) sau đó chuyển dữ liệu đã tính toán về table

Trân trọng
Chữ ký của chuvoicon Xin chào, mình là chuvoicon, Tham gia http://thuthuataccess.com/forum từ ngày 18-11 -13.
Reply
Những người đã cảm ơn
#7
(12-12-13, 03:25 PM)chuvoicon Đã viết:
(12-12-13, 03:12 PM)dinh_trong_hoa Đã viết: Chào bạn,

Form nó tiện dụng, dễ dùng nhưng không linh động bằng query, nó đòi hỏi có ý tưởng và cấu trúc dữ liệu rõ ràng. Bạn nói chung chung như thế thật khó ....Mình gởi bạn file mẫu tham khảo, file này thiết kế với mục đích quản lý doanh thu.

Chúc bạn thành công.

Chương trình này của mình không phục vụ quản lý doanh thu (nếu mở rộng hệ thống thì có thể quản lý cả doanh thu, quản lý luôn công nợ, kho ... --> gộp). Chương trình của mình viết phục vụ công việc sản xuất - lập kế hoạch sản xuất cho các bộ phận sản xuất (dữ liệu sản xuất lấy chủ yếu từ cái table chi tiết của mình 015), bạn xem có thấy các thuộc tính liên hệ phụ thuộc các công đoạn sau phụ thuộc vào công đoạn trước

Trân trọng

Ac...Mình không hiểu công việc của bạn như thế nào, ý bạn ra sao. Nên không thể thực hiện trên file của bạn. Mình gởi file với mục đích để bạn tham khảo giao diện và cách vận hành, để xem có gần với ý của bạn không.
Chữ ký của dinh_trong_hoa
Reply
Những người đã cảm ơn
#8
(12-12-13, 03:00 PM)paulsteigel Đã viết: Bạn cần làm 2 việc:
1. Chọn tất cả các textbox trên form chi tiết mà bạn đã có công thức tính toán, đặt thuộc tính Tag =1 (trong mục Other của bảng thuộc tính). Làm như vậy để thủ tục sau đây sẽ chỉ duyệt các điều khiển có Tag=1 để thực hiện query tính toán.
2. Mở form, chọn sự kiện AfterUpdate, đưa đoạn mã sau vào.
Mã PHP:
Private Sub Form_AfterUpdate()
    
Dim obj As ControlSql As String
    
For Each obj In Me.Controls
        
If obj.Tag 1 Then
            
' Su dung thuoc tinh Tag de dua query vaof
            If Nz(obj, 0) <> 0 Then Sql = Sql & ",a." & obj.Name & "=" & obj
        End If
    Next obj
    ' 
Chay query
    Sql 
"UPDATE chitiet as a SET " Mid(Sql2) & " WHERE a.Stt=" stt ";"
    
Debug.Print Sql
    CurrentDb
.Execute Sql
End Sub 
Mỗi khi bạn sửa, thêm số liệu, đoạn code trên sẽ chạy và thực hiện cập nhập số liệu tính toán trong bảng theo query đấy...
Mã PHP:
UPDATE chitiet as a SET a.tpxen=232,a.tpin=132,a.slphun=132,a.bhaophun=6,a.tphun=126,a.slsong=126,a.toin=126,a.slboi=126,a.bhaoboi=10,
a.tpboi=116,a.soluongbe=116,a.betay=13,a.betudong=14,a.tpbe=103,a.sldan=103,a.bhaodan=0.515 WHERE a.Stt=305
Ví dụ, khi bạn sửa số lượng đặt hàng, đoạn query trên sẽ cập nhập bản ghi có STT 305 theo công thức tính toán đã có sẵn trên form.

Vài điểm lưu ý thêm:
Thông thường, quy tắc chuẩn hóa CSDL đòi hỏi người dùng chỉ đưa số liệu gốc vào CSDL/bảng, các số liệu phát sinh từ việc tính toán các số liệu nguyên thủy (gốc/element data) chỉ nên dùng Truy vấn để thực hiện. Nếu các số liệu tính toán kia không thay đổi theo thời gian thì mới áp dụng việc tính và lưu vào CSDL.
Khi nào có thời gian, tôi sẽ viết thêm một vài bài về điều này!

Trân thành cảm ơn Paul
Với sự kiện trên của Paul đã thay thế cho query update không cần dùng đến update query nữa, vì dữ liệu tính toán trên phụ thuộc vào rất nhiều tham số nên nếu dùng update query việc xử lý dữ liệu chậm (không thực hiện được one click one query) nên tính toán trên form và trả dữ liệu sau khi đã được tính toán về csdl là biện pháp khả thi nhất của mình trong trường hợp này
Chữ ký của chuvoicon Xin chào, mình là chuvoicon, Tham gia http://thuthuataccess.com/forum từ ngày 18-11 -13.
Reply
Những người đã cảm ơn
#9
>>>Trân thành cảm ơn Paul - Trân trọng cảm ơn bạn đã chân thành>>
Trích dẫn:Với sự kiện trên của Paul đã thay thế cho query update không cần dùng đến update query nữa, vì dữ liệu tính toán trên phụ thuộc vào rất nhiều tham số nên nếu dùng update query việc xử lý dữ liệu chậm (không thực hiện được one click one query) nên tính toán trên form và trả dữ liệu sau khi đã được tính toán về csdl là biện pháp khả thi nhất của mình trong trường hợp này

Bạn nói vừa đúng mà vừa không đúng.
Đúng khi không phải chạy truy vấn cập nhập ở ngoài môi trường Form và;
Không đúng vì tôi vẫn dùng truy vấn cập nhập nhưng với 1 bản ghi hiện thời sau khi có sự điều chỉnh của người dùng.
Vài dòng võ vẽ một chút!
Thân
Chữ ký của paulsteigel ====================
Quốc gia hưng vong
Thất phu hữu trách
====================
Reply
Những người đã cảm ơn
#10
Paul cho hỏi thêm chút là với sự kiện trên chỉ thực hiện cập nhật dữ liệu có kết quả thay đổi <>0, còn các kết quả có kết quả =0 sau khi thay đổi sẽ không chuyển vào csdl đúng không?. Vậy trong trường hợp này những kết quả sau khi thay đổi sẽ không được chuyển cập nhập toàn bộ vào csdl mà chỉ chuyển kết quả thay đổi có giá trị <>0

Ví dụ khi mình thay đổi thuộc tính phụ thuộc(là một biến không phải giá trị) ở một khâu nào đó: ban đầu tính toán qua các công đoạn a-b-c nhưng sau khi thực hiện chỉ cần qua công đoạn a-c không cần qua công đoạn b khi đó kết quả của công đoạn b =0 trên form nhưng sẽ không được cập nhật vào csdl?
Chữ ký của chuvoicon Xin chào, mình là chuvoicon, Tham gia http://thuthuataccess.com/forum từ ngày 18-11 -13.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Hỏi] Cách thêm dữ liệu vào form Main_Sub NganNguyen 1 38 06-12-16, 02:23 AM
Bài mới nhất: maidinhdan
  [Help] Cập nhật combobox 2 từ combobox 1 (dữ liệu ở nhiều bảng) votinh.tq 6 209 22-11-16, 11:34 PM
Bài mới nhất: votinh.tq
  [Hỏi] Tổng hợp dữ liệu theo thời gian hoanghai902 1 140 21-10-16, 09:55 PM
Bài mới nhất: maidinhdan
  [Help] Dòng chữ chạy trên form báo đến ngày sinh nhật tronghieu9792 1 122 20-10-16, 09:30 AM
Bài mới nhất: lamvankhanh
  [Help] Áp dụng query lọc dữ liệu nhập vào form amazonvn82 8 1,351 05-10-16, 03:11 PM
Bài mới nhất: amazonvn82

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ