Cách tạo query để xóa các record bị trùng

Thảo luận trong 'Ứng dụng Access' bắt đầu bởi nhtong, 25 Tháng mười hai 2005.

6,213 lượt xem

  1. nhtong

    nhtong Thành viên sơ cấp

    Bài viết:
    1
    Đã được thích:
    0
    Nơi ở:
    tp HCM
    Xin chào các anh chị, cho tôi hỏi có cách nào xóa các record bị trùng trong query hoặc table .Chỉ chừa lại 1 record duy nhất
     
    #1
  2. HongViet

    HongViet Thành viên thân thiết

    Bài viết:
    286
    Đã được thích:
    10
    Nơi ở:
    Đà nẵng
    Dùng VBA, OK?!

    Dùng ~ câu lệnh duyệt hết thải các Record trong Recordset, nếu thấy trùng thì xoá đi; Nếu không có cách nào khác thì sẽ cụ thể sau; Ráng chờ đi!:dzo: :banana:
     
    #2
  3. Đào Việt Cường

    Đào Việt Cường Moderator

    Bài viết:
    400
    Đã được thích:
    3
    Giới tính:
    Nam
    Nơi ở:
    Khánh Hòa
    Dear all,
    --------
    Tôi hiểu là nhtong đang nói đến vấn đề khử trùng dưới góc độ là người thiết kế hệ thống và xây dựng ứng dụng trên MS Access.
    Theo quan điểm của tôi, để hạn chế việc ghi trùng, trước hết cần thiết kế cơ sở dữ liệu thật tốt, theo đó mỗi một bảng cần có ít nhất một khoá chính (Primary Key - PK). Ví dụ bảng danh mục khách hàng: lấy mã khách hàng làm khoá chính, bảng kê chứng từ có thể lấy cặp số chứng từ ngày chứng từ... làm cặp khoá chính.
    Ngoài ra, cần xây dựng mối quan hệ (Relationship - RL) để tạo nên những ràng buộc toàn vẹn bằng các cặp khoá ngoại (Foreign Key - FK).
    Vấn đề đề có vẻ không đúng với chủ đề mà nhtong muốn thảo luận. Nhưng thiết nghĩ, nếu hệ thống cơ sở dữ liệu được xây dựng một cách khoa học, có thể nó làm giảm đi đáng kể khối lượng công việc phải làm. Tôi cũng hiểu rằng, không phải trong mọi trường hợp chúng ta cũng có thể đáp ứng được yêu cầu bằng việc xây dựng ràng buộc toàn vẹn thông qua hệ thống PK, RL, FK. Khi đó việc xây dựng một query khử trùng thật đáng bàn.
    Chúng ta cũng có thêm khảo thêm chủ đề về Xử lý bút toán trùng trong phần mềm kế toán (Ở đấy) để có thêm cái nhìn về việc khử trùng!
     
    #3
  4. phanxuanthuong

    phanxuanthuong Thành viên sơ cấp

    Bài viết:
    10
    Đã được thích:
    0
    Nơi ở:
    Viet Nam
    Cách của anh Cường khá hay nhưng theo em không nên chọn theo cách này (có lẻ mỗi người có 1 quan điểm cũng như thiết kế CSDL) nên tạo 1 module hay 1 macro quản lý các query có tham chiếu là [SoCT] và mà nó được vào phần properties của trường [SoCT] ở phần After Update. Khi bạn nhập số CT vào trường này và nhấn Enter thì lập tức các Query kia sẽ tìm số CT mà bạn vừa nhập vào, nếu có thì nó sẽ thông báo số CT trên đã có đồng thởi mở Query để show dữ liệu cho bạn tham khảo, khi đó tự bạn quyết định là có nên tiếp tục hay thay số CT mới!
     
    #4
  5. Dang Hong Minh

    Dang Hong Minh Thành viên sơ cấp

    Bài viết:
    5
    Đã được thích:
    0
    Chào các bạn, Mình có thể hỏi thêm vân đề này không, bảng của mình có record bị trùng lặp, không phải trùng lặp hoàn toàn mà chỉ một số thông tin cột thôi, mình có thể tạo ra một query hay .. để lọc ra những dòng đó và cho nó kết hợp thành dòng mới ở query hay table mới ko?

    Không biết điều Mình hỏi các bạn có rõ không?
    Chang ban mình có bảng HD (hợp đồng) - có 2 loại - HD và Phụ lục (hợp đồng và Phục lục hợp đồng), Phu lục phát sinh sau khi da co HD, chỉ có 1 so HD moi co phu luc.
    Trong phu luc, có 1 vai thong tin chỉ có trong HD ma thoi.
    Mình có thể kết hợp du lieu hai dong nay khong?, nhung du lieu chung thi ju nguyen, du lieu nao khac thi hình thành thêm cột mới. (có the tao ra mot bảng mới)

    Mail minh la minh2minh.pmd@gmail.com, dt la 01245464789, bạn nào biết chi mình với
     
    #5
  6. vienlien87

    vienlien87 Thành viên sơ cấp

    Bài viết:
    53
    Đã được thích:
    2
    Nơi ở:
    Huế
    Tình trạng này là xử lý cái đã rồi phải không? Nếu không thì tạo primary key khi mới thiết kế
    Bạn dùng Query make tạo lai Table cũ từ Query tổng hợp với Group là field thông tin trùng.
     
    #6

Chia sẻ trang này