ducphu1975 > 19-11-12, 01:22 PM
trungn077 > 19-11-12, 10:25 PM
(19-11-12, 01:22 PM)ducphu1975 Đã viết: các anh ơi
trong trường hợp mình dùng append và update khi số lượng record it thì nhanh chứ như em dùng cho chương trình mạng số lượng record khoảng > 1000 ngàn record thì rất là lâu
Mong các huynh có giải pháp nào nhanh hơn không .
vì e dùng một chương trình quản lý sản phẩm nếu dùng dcount check file đã tồn tại trên máy chủ thì rất mất thời gian. nên e dùng chương trình append và update về máy con thì chạy không nối
ducphu1975 > 20-11-12, 01:12 PM
trungn077 > 20-11-12, 06:57 PM
(20-11-12, 01:12 PM)ducphu1975 Đã viết: cám ơn bạn đã đọc
chương trình mình dùng trong nội bộ cơ quan hà để quản lý số liệu có ô số code sản phẩm nếu mình nah65p vào lần đầu mà sai thi nó thông báo và nhảy con trỏ trở về ô chỉ định sau đó nnhap lại nó khong kiểm tra dữ liệu ô đó nữa
đây là đoạn code mình dùng để kiểm tra
If DCount("lacsanpham", "TNOIDULIEU1", "LACSANPHAM =Forms!Fngaynhap!Fnhaplop!LACSANPHAM") > 0 And DCount("lacsanpham", "T-nhaplop", "LACSANPHAM =Forms!Fngaynhap!Fnhaplop!LACSANPHAM") > 0 Then
MsgBox " SO LAC NAY DA NHAP - DE NGHI NHAP LAI QUY CACH LOP KHAC!"
Beep
lacsanpham = 0
quycach.SetFocus
End If
Else
MsgBox " SO LAC NAY NHAP KHONG DUNG - DE NGHI NHAP LAI!"
Beep
lacsanpham = 0
quycach.SetFocus
End If[/i][/i]
duyennguyen2008 > 29-11-12, 11:38 AM
(12-11-12, 12:40 PM)Noname Đã viết: Vấn đề đồng bộ bạn cần kết hợp linh hoạt giữa update query và append query.
1/ Đặt khóa cho cả hai bảng. Điều này đảm bảo rằng sẽ không có record nào bị trùng lại.
2/ Append từ bảng A sang bảng B để thêm các record mới. Với điều kiện là các khóa đó chưa tồn tại trong tableB.
Ví dụ:
Mã:INSERT INTO TableB ( khoa, noidung )
SELECT TableA.khoa, TableA.noidung
FROM TableA
WHERE (((TableA.khoa) Not In (select khoa from tableB)));
3/ Update dữ liệu bảng A có nguồn từ bảng B với điều kiện dữ liệu có cùng khóa nhưng khác các nội dung khác
Ví dụ:
Xem fileMã:UPDATE TableA INNER JOIN TableB ON TableA.khoa = TableB.khoa SET TableB.noidung = tableA.noidung
WHERE (((TableB.noidung)<>[tableA].[noidung]));
https://dl.dropbox.com/u/38360355/Access/dongbo.zip
Nilbo Châu > 10-01-13, 10:48 AM
jason > 26-01-16, 05:12 PM
jason > 27-01-16, 12:27 PM
(26-01-16, 05:12 PM)jason Đã viết: Chào các ace diễn đàn,
em cũng đang gặp vấn đề giống giống ở trên, và đã chạy thử demo của bác Noname thấy đúng với vấn đề em đang mắc phải, nhưng khác cái là dữ liệu của em(1 cái là dữ của query và 1 cái là table) không có khóa chính ở cả 2 bảng (Query và table) nên em chưa biết xử lý thế nào.
Em sẽ làm query append (lần thứ 1) cho tất cả record ở bảng A qua bảng B. ở bảng B em sẽ tạo thêm 1 cột PONo cho người sử dụng nhập dữ liệu và lưu lại ở cột đó.
dữ liệu ở bảng A luôn luôn có dữ liệu mới ( tức record mới hoặc record được chỉnh sửa)
em muốn có 1 nút ( khi chạy query append lần thứ 2,3,...) thì dử liệu mới hoặc chỉnh sửa ở bảng A sẽ được cập nhật vào bảng B và dữ liệu của cột PONo(bảng B) sẽ không thay đổi.(bảng B sẽ không thay đổi gì hết chỉ thêm những cái mới từ bảng A).
mong các ace hướng dẫn em cách giải quyết với ạ
em xin cảm ơn
tranthanhan1962 > 27-01-16, 04:35 PM
(13-11-12, 12:38 PM)qhuyhh117 Đã viết: Nếu vậy thì đơn giản quá.Xem qua bảng dữ liệu của bạn mình không hiểu bạn sử dụng 2 bảng để làm gì mà phải sử dụng query Append để lưu dữ liệu từng tháng mới rồi từ table A append lên table B. Trong khi đó chỉ cần 1 table A cũng đủ lưu trữ dữ liệu cho cả năm. Trường hợp lười gõ tên tất cả các học viên vẫn có thể cùng combobox để chọn hay copy record đã có rồi dán thêm sau đó sửa tháng cũng được mà.
Quan trọng là cần backup chỉ những dữ liệu đã thay đổi từ bảng A sang bảng B.
Chứ làm như bạn thì hai bảng lúc nào cũng giống nhau mất.
Các bạn hiểu cho mình nhé, mình ví dụ này:
Bảng A chứa các trường là: MHS, Ho, Ten, Thang, tienhocphi
Bảng chứa 3 records:
001 Nguyen Van A 10 100.000
002 Nguyen Van B 10+11 200.000
003 Nguyen Văn C 10 100.000
Tháng 10: Mình dùng Query để lưu trữ dữ liệu từ bảng A sang Bảng B, dễ dàng có:
Bảng B:
001 Nguyen Van A 10 100.000
002 Nguyen Van B 10+11 200.000
003 Nguyen Văn C 10 100.000
Tuy nhiên, sang tháng 11, dữ liệu của bảng A được làm lại như sau:
Bảng A:
001 Nguyen Van A 11 100.000
002 Nguyen Van B 10+11 200.000
003 Nguyen Van C 11 100.000
004 Nguyen Van D 11 100.000
Mong muốn của mình là lưu trữ các dữ liệu thay đổi từ bảng A sang bảng B.
Tức kết quả ở bảng B phải là:
Bảng B:
001 Nguyen Van A 10 100.000
002 Nguyen Van B 10, 11 200.000
003 Nguyen Văn C 10 100.000
001 Nguyen Van A 11 100.000
003 Nguyen Van C 11 100.000
004 Nguyen Van D 11 100.000
Còn nếu mình dùng Append Query (không có điều kiện gì) thì sẽ được bảng B là:
001 Nguyen Van A 10 100.000
002 Nguyen Van B 10+11 200.000
003 Nguyen Văn C 10 100.000
001 Nguyen Van A 11 100.000
002 Nguyen Van B 10+11 200.000
003 Nguyen Van C 11 100.000
004 Nguyen Van D 11 100.00
Ở đây có hai record là (002 Nguyen Van B 10, 11 200.000) trùng nhau. Mà điều này mình không muốn.
Vì ghi luôn thế này cho tiện, sợ đưa file Access lên mọi người khó hiểu.
Phải làm như thế nào, mọi người giúp mình nhé.
jason > 27-01-16, 06:49 PM
(27-01-16, 04:35 PM)tranthanhan1962 Đã viết: Xem qua bảng dữ liệu của bạn mình không hiểu bạn sử dụng 2 bảng để làm gì mà phải sử dụng query Append để lưu dữ liệu từng tháng mới rồi từ table A append lên table B. Trong khi đó chỉ cần 1 table A cũng đủ lưu trữ dữ liệu cho cả năm. Trường hợp lười gõ tên tất cả các học viên vẫn có thể cùng combobox để chọn hay copy record đã có rồi dán thêm sau đó sửa tháng cũng được mà.