Thực hiện make table query từ Excel

Thảo luận trong 'Ứng dụng Access' bắt đầu bởi Longlv, 8 Tháng hai 2006.

5,917 lượt xem

  1. Longlv

    Longlv Thành viên hoạt động

    Bài viết:
    44
    Đã được thích:
    1
    Nơi ở:
    Hanoi
    Các bác làm ơn giúp với:
    Tôi có một file Excel lấy dữ liệu từ một table của file Access khác, table này được tạo từ một make table query. Mỗi khi muốn refresh dữ liệu trong file Excel lại phải chuyển sang file Access để chạy make table query. Các bác có cách nào chạy Make table querry đó từ Excel không?

    Cảm ơn các bác rất nhiều.
     
    #1
  2. Đà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 Longlv,
    ------------
    Câu hỏi này rất hay, nhưng mà em kiểm tra lại lại không thấy hiện tượng như bác nói: Khi em refresh trên Excel sau khi thay đổi dữ liệu trong Table nguồn (không phải query) dữ liệu vẫn được cập nhật! Bác kiểm tra lại hoặc gửi cho em file của bác xem thế nào!
     
    #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
    Ái dà,
    -----
    Em hiểu ý rồi, hoá ra bác sử dụng Query Make table! Cái này buộc phải động đến VBA rồi.
    Trong MSE VBA Project, bác tham chiếu thư viện Microsoft Access Object Library. Thư viện này cho phép ta làm việc với đối tượng MS Access ngay trên dự án của MS Excell (các đối tượng, phương thức và thuộc tính có đầy đủ như trong module của MSA).
    Em cũng sẽ nghiên cứu cùng bác!
     
    #3
  4. Longlv

    Longlv Thành viên hoạt động

    Bài viết:
    44
    Đã được thích:
    1
    Nơi ở:
    Hanoi
    Cảm ơn Bác Đào Việt Cường nhé

    Theo chỉ dẫn của bác em đã mở được Database bằng OpenCurrentDatabase, chạy được Make table querry bằng DoCmd.RunSQL.
    Bác cho em hỏi thêm một chút nhé: Em có biến khai báo bằng khóa Public ở Module của Access, làm thế nào để truy cập được đến nó từ VBA của Excel.
     
    #4
  5. hai2hai

    hai2hai VNUNI Makes a difference

    Bài viết:
    2,012
    Đã được thích:
    128
    Nơi ở:
    Hà nội
    Thế gọi hàm của Acess trong VBA của Excel có được ko? Nếu được thì viết 1 cái hàm bên Access dạng GetXValue, sau đó gọi hàm đó trong Access để trả lại giá trị của X (Trong đó X là cái tên của biến Public đó).

    Public Function GetXValue()
    '// Return X's Value
    GetXValue = X
    End Function

    Thường thì phải xây dựng object với việc viết class, rồi get property... Tóm lại là phải tìm cách "chấm" 1 cái thì nó lên properties or methods, muốn thế thì phải nghĩ đến cách viết hướng đối tượng.
     
    #5
  6. Longlv

    Longlv Thành viên hoạt động

    Bài viết:
    44
    Đã được thích:
    1
    Nơi ở:
    Hanoi
    Cảm ơn bác hai2hai, theo cách bác hướng dẫn em đã làm được rồi. Còn cách viết class module hay hướng đối tượng thì em chịu, vì em cũng chỉ biết đôi chút về Excel, Access thôi. Một lần nữa xin cảm ơn bác hai2hai và Đào Việt Cường.
     
    #6
  7. QDuc

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

    Bài viết:
    254
    Đã được thích:
    18
    Nơi ở:
    Biển khơi
    Còn cách nào khác nữa không các bác, ví dụ viết hàm truy xuất dữ liệu nguồn (của make table query luôn) tại excel để hiện lên 1 table con (tại excel) như kết quả 1 Make Table Query? Xin các cao thủ cho í kiến với VD cụ thể để tham khảo!
    ý tôi là để khỏi liên kết thư viện gì đó, thì lôi CSDL từ access qua luôn excel; Và từ đây ta "Query tạo bảng" để có 1 CSDL con như là kết quả của query bên access; Nếu được điều này thì accees sẽ chỉ thành nơi chứa CSDL đơn thuần mà thôi
    Cám ơn nhiều lắm!
     
    Last edited: 6 Tháng sáu 2006
    #7
  8. HongViet

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

    Bài viết:
    286
    Đã được thích:
    10
    Nơi ở:
    Đà nẵng
    #8

Chia sẻ trang này