Mã VBA để xuất dữ liệu từ SQL sang Excel

Vì vậy, sau khi nhập dữ liệu vào SQL Server từ Excel, bây giờ là lúc áp dụng chính sách đảo ngược. Trên thực tế, phần lớn mã đã có trên trang web của Microsoft tại đây, tuy nhiên, đó không phải là tất cả những gì tôi cần. Tôi muốn làm cho nó đẹp hơn một chút, với các tiêu đề

Vì vậy, đối với các tiêu đề, đó thực sự là một thử thách trong 15 phút, cho đến khi tôi tìm ra cách lấy chúng và viết chúng vào bảng excel. Vì vậy, cuối cùng tôi đã có một cái gì đó khả thi

Hãy xem mã ở đây

mã số. vb

Ngôn ngữ lập trình

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

Tùy chọn Rõ ràng

 

'Phần chiết xuất cơ thể được lấy từ đây

'https. //hỗ trợ. Microsoft. com/en-us/kb/306125

 

Sub Nhận dữ liệu[]

    

    Làm mờ cnNhật ký              Như Mới ADODB.Kết nối

    Làm mờ rsHeaders           Mới ADODB.Tập bản ghi

    Làm mờ rsData           Như Mới ADODB.Tập bản ghi

    

    Mờ l_counter           Như Dài: l_count = 0

    Làm mờ strConn             As Chuỗi

    

    Trang tính[1].Phạm vi đã sử dụng. Xóa

    strConn = "PROVIDER=SQLOLEDB;"

    strConn = strConn & "DATA SOURCE=[local];INITIAL CATALOG=LogData;"

    strConn = strConn & " INTEGRATED SECURITY=sspi;"

    

    cnNhật ký. Mở strConn

    

   Với rsHeaders

        . Kết nối đang hoạt động = cnLog

        

        . Mở "CHỌN * TỪ cột hệ thống WHERE id=OBJECT_ID['LogTable']"

        '. Mở "CHỌN * TỪ THÔNG TIN_SCHEMA. COLUMNS WHERE TABLE_NAME = 'LogTable'"

        '. Mở "CHỌN * TỪ LogData. THÔNG TIN_SCHEMA. COLUMNS WHERE TABLE_NAME = N'LogTable'"

        '. Mở "CHỌN * TỪ SYS. CỘT Ở ĐÂU object_id = OBJECT_ID['dbo. LogTable']"

        

        Làm Trong khi Không Tiêu đề.EOF

            Ô[1, l_counter + 1] = rsHeaders[0]

            l_count = l_count + 1

            Tiêu đề. MoveNext

        Vòng lặp

        . Đóng

    Kết thúc Với

 

   Với rsData

        . Kết nối đang hoạt động = cnLog

        . Mở "CHỌN * TỪ Bảng ghi"

        Trang tính 1. Phạm vi["A2"].CopyFromRecordset rsData

        . Đóng

    Kết thúc Với

    

    cnNhật ký. Đóng

    Đặt cnNhật ký = Không có gì

    Đặt tiêu đề = Không có gì

    Đặt rsData = Không có gì

    

    Trang tính[1].Phạm vi đã sử dụng. Toàn bộ cột. Tự động điều chỉnh

 

Kết thúc Phụ

Mã làm gì? . Sau đó, nó viết bảng còn lại. Theo như tôi đang sử dụng liên kết sớm, mã sẽ không hoạt động, nếu bạn không thêm Đối tượng dữ liệu MS ActiveX 2. 8 Thư viện đến Tài liệu tham khảo từ Công cụ>Tài liệu tham khảo trong Visual Basic Editor. Sự khác biệt giữa đặt giá thầu sớm và muộn được giải thích tại đây

Chủ Đề