Hiển thị kết quả từ 1 đến 9 / 9
  1. #1
    Tham gia
    16-11-2009
    Bài viết
    46
    Like
    0
    Thanked 0 Times in 0 Posts

    Lấy dữ liệu từ DBF này sang DBF khác.

    Nhờ các Pác giúp (mặc dù biết đây là những điều cơ bản của Fox, nhưng do học mót, nên không biết)
    Tôi có 2 file DBF (DBF1 và DBF2). Tôi lọc từ DBF1 các bản ghi bị lỗi để tạo DBF2. Sau đó, tôi chỉnh sửa trên DBF2. Bây giờ muốn update từ DBF2 vào DBF1 các bản ghi bị lỗi đã được chỉnh sửa nhưng không biết làm thế nào. Mong các Pro chỉ giúp (DBF1 có index)
    Quote Quote

  2. #2
    Tham gia
    29-12-2007
    Bài viết
    30
    Like
    0
    Thanked 0 Times in 0 Posts
    Nhờ các Pác giúp (mặc dù biết đây là những điều cơ bản của Fox, nhưng do học mót, nên không biết)
    Tôi có 2 file DBF (DBF1 và DBF2). Tôi lọc từ DBF1 các bản ghi bị lỗi để tạo DBF2. Sau đó, tôi chỉnh sửa trên DBF2. Bây giờ muốn update từ DBF2 vào DBF1 các bản ghi bị lỗi đã được chỉnh sửa nhưng không biết làm thế nào. Mong các Pro chỉ giúp (DBF1 có index)
    1. Khi bạn lọc từ DBF1 các bản ghi bị lỗi để tạo DBF2 chắc chắn bạn đã có 1 biểu thức điều kiện, tôi tạm gọi đó là [BIEU_THUC_A].
    2. Sau khi chỉnh sửa trên DBF2. Bây giờ muốn update từ DBF2 vào DBF1 các bản ghi bị lỗi đã được chỉnh sửa. Trước tiên bạn phải dùng thứ tự lệnh sau.
    Code:
    USE DBF1 EXCL ORDER [INDEX_CUA_BAN]
    SELECT DBF1
    DELETE FOR &[BIEU_THUC_A]
    APPEND FROM DBF2
    SELECT DBF1
    REINDEX
    Nhưng lưu ý bạn, trước tiên nên sao lưu lại 2 file gốc DBF1 & DBF2, để trong quá trình thực hiện nếu chưa thành công như ý thì làm lại được. (Cẩn tắc vô áy náy mà)
    Chúc vui.

  3. #3
    Tham gia
    16-11-2009
    Bài viết
    46
    Like
    0
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi dukich75 View Post
    1. Khi bạn lọc từ DBF1 các bản ghi bị lỗi để tạo DBF2 chắc chắn bạn đã có 1 biểu thức điều kiện, tôi tạm gọi đó là [BIEU_THUC_A].
    2. Sau khi chỉnh sửa trên DBF2. Bây giờ muốn update từ DBF2 vào DBF1 các bản ghi bị lỗi đã được chỉnh sửa. Trước tiên bạn phải dùng thứ tự lệnh sau.
    Code:
    USE DBF1 EXCL ORDER [INDEX_CUA_BAN]
    SELECT DBF1
    DELETE FOR &[BIEU_THUC_A]
    APPEND FROM DBF2
    SELECT DBF1
    REINDEX
    Nhưng lưu ý bạn, trước tiên nên sao lưu lại 2 file gốc DBF1 & DBF2, để trong quá trình thực hiện nếu chưa thành công như ý thì làm lại được. (Cẩn tắc vô áy náy mà)
    Chúc vui.
    Cám ơn bạn rất nhiều. Xin lỗi nhé, thực ra câu hỏi của mình cũng chưa thực sự rõ ràng vì mình chưa nghĩ hỏi thế nào.
    Cụ thể như thế này nhé (hơi dài dòng):
    Mình có:
    - DBF1 có các trường SOHD, MAKH, SOTIEN, NGAYMUA, NGAYTRA, NGUOITHEODOI
    - DBF2: có các trường MAKH, TENKH, DIACHI, TINH
    và DBF3: NGUOITHEODOI, HOTEN, TINH
    Mình muốn: khi mình thay đổi người theo dõi tỉnh nào đó thì NGUOITHEODOI sẽ update vào DBF1.
    Ví dụ: NGUOITHEODOIA đang theo dõi các hợp đồng ở tỉnh B, mình thay đổi NGUOITHEODOIB sang theo dõi các hợp đồng ở tỉnh B. Trường NGUOITHEODOI sẽ được update vào DBF1 đối với các khách hàng có TINH là B với NGUOITHEOIDOIB
    Các Pác chỉ mình với nhé.

  4. #4
    Tham gia
    29-12-2007
    Bài viết
    30
    Like
    0
    Thanked 0 Times in 0 Posts
    Cám ơn bạn rất nhiều. Xin lỗi nhé, thực ra câu hỏi của mình cũng chưa thực sự rõ ràng vì mình chưa nghĩ hỏi thế nào.
    Cụ thể như thế này nhé (hơi dài dòng):
    Mình có:
    - DBF1 có các trường SOHD, MAKH, SOTIEN, NGAYMUA, NGAYTRA, NGUOITHEODOI
    - DBF2: có các trường MAKH, TENKH, DIACHI, TINH
    và DBF3: NGUOITHEODOI, HOTEN, TINH
    Mình muốn: khi mình thay đổi người theo dõi tỉnh nào đó thì NGUOITHEODOI sẽ update vào DBF1.
    Ví dụ: NGUOITHEODOIA đang theo dõi các hợp đồng ở tỉnh B, mình thay đổi NGUOITHEODOIB sang theo dõi các hợp đồng ở tỉnh B. Trường NGUOITHEODOI sẽ được update vào DBF1 đối với các khách hàng có TINH là B với NGUOITHEOIDOIB
    Ý này hoàn toàn khác với ý khi bạn lập topic.
    1. OK, bây giờ khảo sát sơ lược qua các DBF bạn thiết kế.
    Có tất cả 2 thông tin vể tỉnh thành (FIELD TINH) bạn lưu trong 2 DBF (DBF2 và DBF3)
    2. Mình thử tách DBF2.TINH > DBF2.TINH_KHACH và DBF3.TINH > DBF3.TINH_NTD (NGUOITHEODOI)
    3. Ý bạn là khi thay đổi nội dung DBF3.TINH_NTD thì trong DBF2 chỉ lọc các TINH_KHACH = TINH_NTD. đúng không?
    ==>Nếu vậy bạn thiết kế lại database đi vì làm như thế là sai rồi.
    Xét quan hệ trong các DBF của bạn như sau:
    DBF1.MAKH->DBF2.MAKH
    DBF1.NGUOITHEODOI->DBF3.NGUOITHEODOI
    DBF3.TINH_NTD->DBF2.TINH_KHACH
    Như vậy riêng DBF2 phải chịu đến 2 thông tin quan hệ vậy DBF2 biết lấy thông tin nào để hiển thị thông tin bạn cần? phải không?
    Khi tự bạn khắc phục là bạn tiến bộ thêm 1 bước.
    Chúc vui.

  5. #5
    Tham gia
    16-11-2009
    Bài viết
    46
    Like
    0
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi dukich75 View Post
    Ý này hoàn toàn khác với ý khi bạn lập topic.
    1. OK, bây giờ khảo sát sơ lược qua các DBF bạn thiết kế.
    Có tất cả 2 thông tin vể tỉnh thành (FIELD TINH) bạn lưu trong 2 DBF (DBF2 và DBF3)
    2. Mình thử tách DBF2.TINH > DBF2.TINH_KHACH và DBF3.TINH > DBF3.TINH_NTD (NGUOITHEODOI)
    3. Ý bạn là khi thay đổi nội dung DBF3.TINH_NTD thì trong DBF2 chỉ lọc các TINH_KHACH = TINH_NTD. đúng không?
    ==>Nếu vậy bạn thiết kế lại database đi vì làm như thế là sai rồi.
    Xét quan hệ trong các DBF của bạn như sau:
    DBF1.MAKH->DBF2.MAKH
    DBF1.NGUOITHEODOI->DBF3.NGUOITHEODOI
    DBF3.TINH_NTD->DBF2.TINH_KHACH
    Như vậy riêng DBF2 phải chịu đến 2 thông tin quan hệ vậy DBF2 biết lấy thông tin nào để hiển thị thông tin bạn cần? phải không?
    Khi tự bạn khắc phục là bạn tiến bộ thêm 1 bước.
    Chúc vui.
    Cám ơn DUKICH75. Qua bạn phân tích, mình lại thấy mình đặt câu hỏi chưa chuẩn xác. Xin lỗi nhé.
    Vẫn làm trên ACCESS, thiết lập các quan hệ và update vào table cũ. Trong fox, mình không biết nên không biết cách đặt đề bài.
    Mình xin đặt lại vấn đề như mình làm trong ACCESS:
    Mình có file DBF1(SOHD, MASO, SOTIEN, TINH, NGUOITHEODOI)
    File: DBF2(TINH, NTDMOI) là các thông tin cập nhật (những thay đổi) về Người theoi dõi mới được phân công về TINH
    Mình muốn:
    - Thiết lập quan hệ giữa DBF1 và DBF2 theo field TINH.
    - Dùng lệnh để lọc dữ liệu: Nếu DBF2.NTDMOI <>"" thì DBF1.NGUOITHEOIDOI = DBF2.NTDMOI
    Xin chân thành cảm ơn.

  6. #6
    Tham gia
    22-03-2007
    Bài viết
    62
    Like
    1
    Thanked 3 Times in 3 Posts
    Bác haquocquan hỏi không hiểu gì hết. Không biết VFp hay Access.

  7. #7
    Tham gia
    16-11-2009
    Bài viết
    46
    Like
    0
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi tuan_tvkg View Post
    Bác haquocquan hỏi không hiểu gì hết. Không biết VFp hay Access.
    Đang hỏi về VFP mà. Có nghĩa là mình làm trên ACCESS thì tạo query và làm được nhưng trong VFP phải dùng lệnh, mình không biết dùng lệnh trong VFP như thế nào với một mục đích Update thông tin mới vào một DBF (thông tin mới lấy từ DBF khác).
    Nhờ các Pác giúp nhé.

  8. #8
    Tham gia
    24-10-2008
    Bài viết
    126
    Like
    0
    Thanked 4 Times in 4 Posts
    Quote Được gửi bởi haquocquan View Post
    Đang hỏi về VFP mà. Có nghĩa là mình làm trên ACCESS thì tạo query và làm được nhưng trong VFP phải dùng lệnh, mình không biết dùng lệnh trong VFP như thế nào với một mục đích Update thông tin mới vào một DBF (thông tin mới lấy từ DBF khác).
    Nhờ các Pác giúp nhé.
    dủng đọan này thử xem
    use <file1> in 1 alia ttchinh
    use <file2> in 2 alia ttphu
    SELECT ttchinh
    INDEX ON <field1> TO SYS(2015)
    SELECT ttphu
    INDEX ON <field2> TO SYS(2015)
    SET RELATION TO <field2> INTO ttchinh
    DO WHILE !EOF()
    SELECT ttchinh
    IF EOF()
    APPEND BLANK
    REPLACE <field> WITH ttphu.<solieu>,....
    ENDIF
    SELECT ttphu
    SKIP
    ENDDO
    SET RELATION TO
    SELECT ttchinh

  9. #9
    Tham gia
    16-11-2009
    Bài viết
    46
    Like
    0
    Thanked 0 Times in 0 Posts
    Quote Được gửi bởi luu_luu View Post
    dủng đọan này thử xem
    use <file1> in 1 alia ttchinh
    use <file2> in 2 alia ttphu
    SELECT ttchinh
    INDEX ON <field1> TO SYS(2015)
    SELECT ttphu
    INDEX ON <field2> TO SYS(2015)
    SET RELATION TO <field2> INTO ttchinh
    DO WHILE !EOF()
    SELECT ttchinh
    IF EOF()
    APPEND BLANK
    REPLACE <field> WITH ttphu.<solieu>,....
    ENDIF
    SELECT ttphu
    SKIP
    ENDDO
    SET RELATION TO
    SELECT ttchinh
    Vẫn chưa đúng ý tưởng. Các Pác giúp với. Cụ thể như ở #5

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •