SlideShare a Scribd company logo
1 of 6
Download to read offline
Xây dựng macro Visual Basic để nhập dữ liệu tự động
Trong thực tế, dù ở môi trường lập trình Chuyên nghiệp hay ứng dụng văn phòng, chúng ta
đều thường xuyên thao tác trên các dạng cơ sở dữ liệu. Việc ghi dữ liệu ra các định dạng dữ liệu đã
có là một công việc khá thường xuyên và tương đối nhàm chán. Trong bài viết này tôi xin giới thiệu
một phương pháp tương đối đặc biệt cho phép chúng ta nhanh chóng nhập dữ liệu vào các định
dạng của các ứng dụng có hỗ trợ ngôn ngữ macro VBA của Microsoft như Excel, Access, Word...
Có rất nhiều kỹ thuật để ghi dữ liệu vào các định dạng dữ liệu chuẩn, với định dạng MDB
của Access có thể sử dụng DAO đi kèm với bất kì bộ phát triển nào của Microsoft; với các định
dạng chuẩn cơ sở dữ liệu như DBF (DBase, FoxPro), MDB (Access), DB (Paradox)... chúng ta có
thể sử dụng giao tiếp ODBC hoặc hiện đại hơn là OLE-DB; ngoài ra có thể sử dụng các kĩ thuật
khác kém phổ biến hơn như OLE Automation hoặc tự xây dựng thư viện xuất dữ liệu. Mỗi phương
pháp đều có những điểm mạnh yếu riêng, không có phương pháp nào tốt cho mỗi nhu cầu của các
lập trình viên. Việc sử dụng các thư viện tự viết chỉ thích hợp với các loại cơ sở dữ liệu đã quá cổ
điển, không còn được hỗ trợ trong môi trường hiện tại; đối nghịch với nó, nếu bạn sử dụng thư viện
CSDL đã có, ứng dụng của bạn sẽ "nở" to đến độ không ngờ, bạn sẽ phải đối phó những vấn đề
nhức đầu có thể có trong quá trình cài đặt và vận hành ứng dụng, từ việc sai hỏng version trong quá
trình cài đặt, đến các lỗi bất ngờ xảy ra do tranh chấp file dữ liệu, vân vân và vân vân. Đứng trên tất
cả các vấn đề đó là việc bạn phải bỏ ra khá nhiều thời gian quý báu của mình để cài đặt các thủ tục
đọc ghi/xử lý lỗi khi xuất dữ liệu.
Tôi muốn giới thiệu với các bạn một cách đơn giản, tương đối hiệu quả và đặc biệt là tốn rất
ít thời gian để cài đặt việc nhập dữ liệu tự động vào các file cơ sở dữ liệu. Đó là việc sử dụng các
Macro VBA được bạn viết sẵn ngay trong các file cơ sở dữ liệu. Với cách này bạn không cần quan
tâm đến các cơ chế giao tiếp của ngôn ngữ lập trình với các cơ sở dữ liệu. Hơn nữa, đây lại là một
cách đảm bảo tính độc lập dữ liệu cao đồng thời nó không phụ thuộc vào các Version của cơ sở dữ
liệu. Bây giờ, chúng ta hãy xem xét cách thức tiến hành của phương pháp này.
Vấn đề: Chúng ta tưởng tượng một lập trình viên A đã có một chương trình xử lý dữ liệu
viết trong Visual C++, dữ liệu do chương trình tạo ra cần được xuất ra nhiều dạng để nhiều chương
trình khác xử lý, chẳng hạn cần xuất ra 3 dạng Access, Word và Excel, vấn đề ở đây là A cần phải
hoàn thành công việc trong thời gian ngắn, chẳng hạn 1 ngày. Thay vì viết các hàm xuất dữ liệu
trong Visual C++, công việc mà không chắc có thể 1 ngày làm xong được. A bèn làm như sau:
1. Xuất dữ liệu của chương trình ra file text theo một định dạng tự quy ước.
2. Viết các hàm bằng macro VBA trong Access, Word và Excel để khi các file này mở ra thì các
macro tự động chạy và nạp dữ liệu từ file text đã có vào chính bản thân nó. Cơ chế này tương tự các
virus macro trong Word.
3. Mỗi lần người sử dụng xuất dữ liệu, chương trình sẽ xuất ra một file dữ liệu trống chứa sẵn các
macro mà A đã xây dựng, kèm theo một file text trùng tên. Khi người dùng mở file dữ liệu, dữ liệu
từ file text sẽ được nhập vào trong quá trình mở file.
Như các bạn có thể thấy, thay vì phải viết/kiểm tra các hàm xuất dữ liệu cho từng loại CSDL, A chỉ
phải xuất ra dạng text và viết vài macro VBA đơn giản.
Chúng ta hãy xem xét việc tạo một macro chạy tự động trong Microsoft Excel.
Trước tiên, nếu bạn đang làm việc với Office 97 hay Office 2000, bạn tìm đến và click vào biểu
tượng của Visual Basic Editor trên Toolbar (biểu tượng này nằm trên Toolbar "Visual Basic" hoặc
chọn mục "Tools.Macro.Visual Basic Editor" trên menu chính, lúc này bạn sẽ có một cửa sổ làm
việc.
ở đây, bạn có thể viết các macro cho workbook hay các sheet. Trong phần này tôi sẽ giới thiệu cách
cài đặt macro cho một workbook. Macro nhập dữ liệu tự động từ một file Text vào trong file Excel
khi file này được mở. Để đơn giản, ta nên đặt tên file text trùng với tên file excel và định dạng file
text này, chẳng hạn file text của tôi được định dạng như sau:
Dòng đầu tiên là số cột cần xuất vào file.
Dòng thứ 2 đến dòng thứ n+ 1 là tên của n cột.
Dòng thứ n + 2 là số dòng sẽ được xuất vào file.
Dòng thứ n+3 trở đi là nội dung của các Ô (nội dung mỗi Ô ghi trên 1 dòng), lần lượt theo các dòng
từ trên xuống dưới và các cột từ trái sang phải.
Ví dụ cụ thể, tôi có một file example.txt được định dạng như sau:
4
Họ và tên
ngày sinh
Quê quán
Nghề nghiệp
2
Nguyễn Văn A
01-01-1970
Hà Nội
Kế toán
Nguyễn Thị B
30-10-1976
Hà Tây
Giáo viên
Bây giờ bạn bắt đầu viết Macro để thực hiện công việc nhập dữ liệu tự động. Để đảm bảo là dữ liệu
được nhập vào ngay khi file được mở, chúng ta phải xử lý ở sự kiện Open workbook.
Trước tiên, ta đưa các khai báo sau vào sau phần Option Explicit: Option Explicit
Public NumCol As Integer
Public Numrow As Integer
Dim Columns (1 To 300 ) As String
Chúng ta đưa vào sự kiện Workbook- Open() đoạn mã sau đây:
Private Sub workbook-open ( )
On Error Goto FALL
Dim fileNum As Integer, I As Integer, J As Integer
Dim str As String, fileName As String
Dim wb As Workbook
Dim index As Integer
Set wb = Thisworkbook
fileName - Left (wb.FullName,
Len(wb . FullName) - 3)' & "txt"
fileNum = FreeFile
Open fileName For Input AB #fileNum
Input #fileNum, NumCo1
index = 1
For I = 1 To NumCo1
Line Input#fileMum, str
Woksheets ("Sheet1"), Range (Columns (I) &CStr (index)). Value = str
Next I
Input#fileNum, NumRow
For J = 1 To NumRow
index = index + 1
For I = 1 To NumCol
Line Input #fileNum, str
If (str <>"") Then
Worksheets ("Sheet1"). Range (Columns (I) & CStr (index). Value=str
End If
Next I
Next J
Close #fileNum
Kill fileName
wb.Save
End
FALL:
End
End Sub
Trong đoạn mã trên, columns là một mảng ký hiệu các cột của Excel (A...Z, AA...). Ta có thể tạo ra
mảng một cách đơn giản bằng thủ tục sau đây:
Sub SetNameColumn()
Dim I As Integer
Columns (1) = "A"
For I = 2 To 26
Columns (I) = NextColumn (Columns (I-1))
Next I
Columns (27) = "AA"
For I = 28 To 300
Columns (I) = NextColumn (Columns (I-1))
Next I
End Sub
Trong đó NextColumn (Columns (i)) là hàm trả về tên cột tiếp theo cột i. Hàm này được viết như
sau:
Function NextColumn (s As String) As String
If Len (s)=1 Then
NextColumn=Chr (Asc(s)+1)
Else
If Asc (Mid(s, Len(s)))=90 Then
NextColumn=Chr(Asc(s)+1)&"A"
Else
NextColumn=Chr(Asc(s) & Chr (Asc(Mid(s, Len(s))) +1)
End If
End If
End Function
Hoạt động của macro rất đơn giản, đầu tiên nó đọc dữ liệu từ file, đọc được số cột và đặt tên
cho các cột của sheet, sau đó nó đọc xem dữ liệu xuất có bao nhiều hàng và lần lượt đọc/ghi thông
tin vào các ô của sheet.
Việc viết macro cho Word và Access cũng không khác là bao, nắm được ý tưởng trên cộng
với một chút kiến thức về VB là các bạn có thể dễ dàng thành công. Sau đây chúng ta hãy thử đánh
giá phương pháp này một chút.
Nhược điểm
- Đôi khi có thể mất dữ liệu do người dùng đã có thao tác với file được xuất ra (chẳng hạn: move nó
sang thư mục khác). Nhưng vấn đề này có thể được giải quyết trọn vẹn bằng một vài kỹ thuật VB
tinh tế hơn.
- Chỉ chạy được với các ứng dụng hỗ trợ VBA, vấn đề này tương tự như việc các trang web có java
script chỉ chạy được trên các trình duyệt hỗ trợ js vậy.
- Các macro có thể bị nhận lầm là virus (nhất là với các chương trình diệt virus của Việt Nam), vì
kỹ thuật của chương trình sử dụng tương tự các kỹ thuật của virus.
Ưu điểm:
- Chương trình nhỏ gọn, chẳng dính dáng gì đến cơ sở dữ liệu (Cũng có nghĩa là không phải lo lắng
gì về xử lý lỗi cài đặt, lỗi đọc dữ liệu...).
- Các macro được viết bằng VBA, dễ dàng bảo trì và phát triển hơn các đoạn mã viết bằng ngôn
ngữ khác.
- Có thể xuất dữ liệu vào các ứng dụng rất đặc thù, không thể làm bằng các phương pháp xuất dữ
liệu thông thường, ví dụ: xuất dữ liệu vào các file định dạng của Word, của PowerPoint, của
Microsoft Project, của Visio... Đây là lợi thế độc nhất vô nhị của phương pháp này.
- Thời gian chi phí cho việc phát triển phần xuất dữ liệu là rất ngắn so với các phương pháp khác.
Trên đây là một cách sử dụng macro tự động nhập dữ liệu vào các file cơ sở dữ liệu. Việc
viết macro rất đơn giản mà nhiều khi lại rất hiệu quả. Hy vọng các nhập dữ liệu này sẽ giúp bạn
cảm thấy thú vị hơn khi làm việc với các cơ sở dữ liệu.

More Related Content

What's hot

Báo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụngBáo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụngVượng Đặng
 
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chốngĐồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chốngnataliej4
 
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...MasterCode.vn
 
Bai 3: Giới Thiêu Microsoft Access (Tiếp theo)
Bai 3: Giới Thiêu Microsoft Access (Tiếp theo)Bai 3: Giới Thiêu Microsoft Access (Tiếp theo)
Bai 3: Giới Thiêu Microsoft Access (Tiếp theo)Heo_Con049
 
Bai3 gioi thieu access t9
Bai3 gioi thieu access t9Bai3 gioi thieu access t9
Bai3 gioi thieu access t9Dao van Ty
 
Bài giảng ACCESS - VBA
Bài giảng ACCESS - VBABài giảng ACCESS - VBA
Bài giảng ACCESS - VBAhg4ever
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...MasterCode.vn
 
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...MasterCode.vn
 
Gt bt access
Gt bt accessGt bt access
Gt bt accesslam04dt
 
Csdl tlth-huong dan su dung sql server 2000
Csdl tlth-huong dan su dung sql server 2000Csdl tlth-huong dan su dung sql server 2000
Csdl tlth-huong dan su dung sql server 2000Thinh Nguyen
 
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư việnSlide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư việnThe Nguyen Manh
 

What's hot (18)

Access toan tap
Access toan tapAccess toan tap
Access toan tap
 
Mô hình 3 lớp trong C#
Mô hình 3 lớp trong C#Mô hình 3 lớp trong C#
Mô hình 3 lớp trong C#
 
Báo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụngBáo cáo kĩ thuật phần mềm và ứng dụng
Báo cáo kĩ thuật phần mềm và ứng dụng
 
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chốngĐồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
Đồ án thực tập cơ sở các kĩ thuật tấn công SQL injection và cách phòng chống
 
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
Pdf bai 6 làm việc với truy vấn cơ bản-slide 06-quan tri csdl voi access-mast...
 
Bai 3: Giới Thiêu Microsoft Access (Tiếp theo)
Bai 3: Giới Thiêu Microsoft Access (Tiếp theo)Bai 3: Giới Thiêu Microsoft Access (Tiếp theo)
Bai 3: Giới Thiêu Microsoft Access (Tiếp theo)
 
Bai3 gioi thieu access t9
Bai3 gioi thieu access t9Bai3 gioi thieu access t9
Bai3 gioi thieu access t9
 
Bài giảng ACCESS - VBA
Bài giảng ACCESS - VBABài giảng ACCESS - VBA
Bài giảng ACCESS - VBA
 
90727266 baitap-access
90727266 baitap-access90727266 baitap-access
90727266 baitap-access
 
01 tong-quan-ado
01 tong-quan-ado01 tong-quan-ado
01 tong-quan-ado
 
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
Bài 4: Lập trình với CSDL ADO.NET & Kiến trúc không kết nối & Lập trình giao ...
 
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
 
Bài tập thực hành C#
Bài tập thực hành C#Bài tập thực hành C#
Bài tập thực hành C#
 
Access Toan Tap
Access Toan TapAccess Toan Tap
Access Toan Tap
 
Gt bt access
Gt bt accessGt bt access
Gt bt access
 
Giáo trình access2010
Giáo trình access2010Giáo trình access2010
Giáo trình access2010
 
Csdl tlth-huong dan su dung sql server 2000
Csdl tlth-huong dan su dung sql server 2000Csdl tlth-huong dan su dung sql server 2000
Csdl tlth-huong dan su dung sql server 2000
 
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư việnSlide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
Slide bài tập lớn ngôn ngữ lập trình - phần mềm quản lý thư viện
 

Similar to Xay dung macro_visual_basic

Giao trinh access2000
Giao trinh access2000Giao trinh access2000
Giao trinh access2000Quoc Nguyen
 
Tailieu.vncty.com giao-trinh-sql-2000
Tailieu.vncty.com   giao-trinh-sql-2000Tailieu.vncty.com   giao-trinh-sql-2000
Tailieu.vncty.com giao-trinh-sql-2000Trần Đức Anh
 
Giao trinh-microsoft-access2000[bookbooming.com]
Giao trinh-microsoft-access2000[bookbooming.com]Giao trinh-microsoft-access2000[bookbooming.com]
Giao trinh-microsoft-access2000[bookbooming.com]bookbooming1
 
Giao trinh access nguyen son hai
Giao trinh access nguyen son haiGiao trinh access nguyen son hai
Giao trinh access nguyen son haiHung Pham Thai
 
Lap trinhcosodulieuvoi c-sharp_phan-1
Lap trinhcosodulieuvoi c-sharp_phan-1Lap trinhcosodulieuvoi c-sharp_phan-1
Lap trinhcosodulieuvoi c-sharp_phan-1Hiển Phùng
 
Thương mại điện tử
Thương  mại điện tửThương  mại điện tử
Thương mại điện tửgacon2009
 
TL huong dan su dung MS Excel 2013
TL huong dan su dung MS Excel 2013TL huong dan su dung MS Excel 2013
TL huong dan su dung MS Excel 2013Trinh Hung
 
Bai giangvb.net
Bai giangvb.netBai giangvb.net
Bai giangvb.netvvpcdsptin
 
Introduction to data statistics with r - Part I (in Vietnamese)
Introduction to data statistics with r - Part I (in Vietnamese)Introduction to data statistics with r - Part I (in Vietnamese)
Introduction to data statistics with r - Part I (in Vietnamese)Quang Nguyen
 

Similar to Xay dung macro_visual_basic (20)

Open office
Open officeOpen office
Open office
 
Access
AccessAccess
Access
 
Giao trinh access2000
Giao trinh access2000Giao trinh access2000
Giao trinh access2000
 
Access2000
Access2000Access2000
Access2000
 
Tailieu.vncty.com giao-trinh-sql-2000
Tailieu.vncty.com   giao-trinh-sql-2000Tailieu.vncty.com   giao-trinh-sql-2000
Tailieu.vncty.com giao-trinh-sql-2000
 
access
accessaccess
access
 
Giao trinh access2000
Giao trinh access2000Giao trinh access2000
Giao trinh access2000
 
Access Nguyen Son Hai
Access Nguyen Son HaiAccess Nguyen Son Hai
Access Nguyen Son Hai
 
Giao trinh-microsoft-access2000[bookbooming.com]
Giao trinh-microsoft-access2000[bookbooming.com]Giao trinh-microsoft-access2000[bookbooming.com]
Giao trinh-microsoft-access2000[bookbooming.com]
 
Access2000
Access2000Access2000
Access2000
 
Giao trinh access nguyen son hai
Giao trinh access nguyen son haiGiao trinh access nguyen son hai
Giao trinh access nguyen son hai
 
Mo hinh-3-lop
Mo hinh-3-lopMo hinh-3-lop
Mo hinh-3-lop
 
Lap trinhcosodulieuvoi c-sharp_phan-1
Lap trinhcosodulieuvoi c-sharp_phan-1Lap trinhcosodulieuvoi c-sharp_phan-1
Lap trinhcosodulieuvoi c-sharp_phan-1
 
Thương mại điện tử
Thương  mại điện tửThương  mại điện tử
Thương mại điện tử
 
TL huong dan su dung MS Excel 2013
TL huong dan su dung MS Excel 2013TL huong dan su dung MS Excel 2013
TL huong dan su dung MS Excel 2013
 
Vb6 16 (1)
Vb6 16 (1)Vb6 16 (1)
Vb6 16 (1)
 
Asp control
Asp controlAsp control
Asp control
 
Bai giangvb.net
Bai giangvb.netBai giangvb.net
Bai giangvb.net
 
Bai giangvb.net
Bai giangvb.netBai giangvb.net
Bai giangvb.net
 
Introduction to data statistics with r - Part I (in Vietnamese)
Introduction to data statistics with r - Part I (in Vietnamese)Introduction to data statistics with r - Part I (in Vietnamese)
Introduction to data statistics with r - Part I (in Vietnamese)
 

Recently uploaded

ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...PhcTrn274398
 
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...Xem Số Mệnh
 
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiNhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiTruongThiDiemQuynhQP
 
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập PLDC.pdfdong92356
 
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 pha
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 phaThiết kế hệ thống điều khiển chỉnh lưu tích cực 1 pha
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 phaAnhDngBi4
 
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...Xem Số Mệnh
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...Nguyen Thanh Tu Collection
 
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Học viện Kstudy
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...Nguyen Thanh Tu Collection
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )lamdapoet123
 
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Xem Số Mệnh
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx22146042
 
kỳ thi bác sĩ nội trú khóa 48, hướng dẫn
kỳ thi bác sĩ nội trú khóa 48, hướng dẫnkỳ thi bác sĩ nội trú khóa 48, hướng dẫn
kỳ thi bác sĩ nội trú khóa 48, hướng dẫnVitHong183894
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocVnPhan58
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếngTonH1
 
vat li 10 Chuyen de bai 4 Xac dinh phuong huong.pptx
vat li 10  Chuyen de bai 4 Xac dinh phuong huong.pptxvat li 10  Chuyen de bai 4 Xac dinh phuong huong.pptx
vat li 10 Chuyen de bai 4 Xac dinh phuong huong.pptxlephuongvu2019
 
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfMạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfXem Số Mệnh
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...Nguyen Thanh Tu Collection
 
đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21nguyenthao2003bd
 

Recently uploaded (20)

ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
ĐẢNG LÃNH ĐẠO HAI CUỘC KHÁNG CHIẾN GIÀNH ĐỘC LẬP HOÀN TOÀN, THỐNG NHẤT ĐẤT NƯ...
 
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
 
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mạiNhóm 10-Xác suất và thống kê toán-đại học thương mại
Nhóm 10-Xác suất và thống kê toán-đại học thương mại
 
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf200 câu hỏi trắc nghiệm ôn tập  PLDC.pdf
200 câu hỏi trắc nghiệm ôn tập PLDC.pdf
 
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 pha
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 phaThiết kế hệ thống điều khiển chỉnh lưu tích cực 1 pha
Thiết kế hệ thống điều khiển chỉnh lưu tích cực 1 pha
 
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
Xem tử vi miễn phí trực tuyến cho kết quả chính xác cùng luậ...
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA GIỮA HỌC KÌ + CUỐI HỌC KÌ 2 NĂ...
 
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
 
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
 
kỳ thi bác sĩ nội trú khóa 48, hướng dẫn
kỳ thi bác sĩ nội trú khóa 48, hướng dẫnkỳ thi bác sĩ nội trú khóa 48, hướng dẫn
kỳ thi bác sĩ nội trú khóa 48, hướng dẫn
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hocBai 1 cong bo mot cong trinh nghien cuu khoa hoc
Bai 1 cong bo mot cong trinh nghien cuu khoa hoc
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tế
 
vat li 10 Chuyen de bai 4 Xac dinh phuong huong.pptx
vat li 10  Chuyen de bai 4 Xac dinh phuong huong.pptxvat li 10  Chuyen de bai 4 Xac dinh phuong huong.pptx
vat li 10 Chuyen de bai 4 Xac dinh phuong huong.pptx
 
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdfMạch điện tử - Điện tử số sáng tạo VN-new.pdf
Mạch điện tử - Điện tử số sáng tạo VN-new.pdf
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
 
đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21
 

Xay dung macro_visual_basic

  • 1. Xây dựng macro Visual Basic để nhập dữ liệu tự động Trong thực tế, dù ở môi trường lập trình Chuyên nghiệp hay ứng dụng văn phòng, chúng ta đều thường xuyên thao tác trên các dạng cơ sở dữ liệu. Việc ghi dữ liệu ra các định dạng dữ liệu đã có là một công việc khá thường xuyên và tương đối nhàm chán. Trong bài viết này tôi xin giới thiệu một phương pháp tương đối đặc biệt cho phép chúng ta nhanh chóng nhập dữ liệu vào các định dạng của các ứng dụng có hỗ trợ ngôn ngữ macro VBA của Microsoft như Excel, Access, Word... Có rất nhiều kỹ thuật để ghi dữ liệu vào các định dạng dữ liệu chuẩn, với định dạng MDB của Access có thể sử dụng DAO đi kèm với bất kì bộ phát triển nào của Microsoft; với các định dạng chuẩn cơ sở dữ liệu như DBF (DBase, FoxPro), MDB (Access), DB (Paradox)... chúng ta có thể sử dụng giao tiếp ODBC hoặc hiện đại hơn là OLE-DB; ngoài ra có thể sử dụng các kĩ thuật khác kém phổ biến hơn như OLE Automation hoặc tự xây dựng thư viện xuất dữ liệu. Mỗi phương pháp đều có những điểm mạnh yếu riêng, không có phương pháp nào tốt cho mỗi nhu cầu của các lập trình viên. Việc sử dụng các thư viện tự viết chỉ thích hợp với các loại cơ sở dữ liệu đã quá cổ điển, không còn được hỗ trợ trong môi trường hiện tại; đối nghịch với nó, nếu bạn sử dụng thư viện CSDL đã có, ứng dụng của bạn sẽ "nở" to đến độ không ngờ, bạn sẽ phải đối phó những vấn đề nhức đầu có thể có trong quá trình cài đặt và vận hành ứng dụng, từ việc sai hỏng version trong quá trình cài đặt, đến các lỗi bất ngờ xảy ra do tranh chấp file dữ liệu, vân vân và vân vân. Đứng trên tất cả các vấn đề đó là việc bạn phải bỏ ra khá nhiều thời gian quý báu của mình để cài đặt các thủ tục đọc ghi/xử lý lỗi khi xuất dữ liệu. Tôi muốn giới thiệu với các bạn một cách đơn giản, tương đối hiệu quả và đặc biệt là tốn rất ít thời gian để cài đặt việc nhập dữ liệu tự động vào các file cơ sở dữ liệu. Đó là việc sử dụng các Macro VBA được bạn viết sẵn ngay trong các file cơ sở dữ liệu. Với cách này bạn không cần quan tâm đến các cơ chế giao tiếp của ngôn ngữ lập trình với các cơ sở dữ liệu. Hơn nữa, đây lại là một cách đảm bảo tính độc lập dữ liệu cao đồng thời nó không phụ thuộc vào các Version của cơ sở dữ liệu. Bây giờ, chúng ta hãy xem xét cách thức tiến hành của phương pháp này. Vấn đề: Chúng ta tưởng tượng một lập trình viên A đã có một chương trình xử lý dữ liệu viết trong Visual C++, dữ liệu do chương trình tạo ra cần được xuất ra nhiều dạng để nhiều chương trình khác xử lý, chẳng hạn cần xuất ra 3 dạng Access, Word và Excel, vấn đề ở đây là A cần phải hoàn thành công việc trong thời gian ngắn, chẳng hạn 1 ngày. Thay vì viết các hàm xuất dữ liệu trong Visual C++, công việc mà không chắc có thể 1 ngày làm xong được. A bèn làm như sau:
  • 2. 1. Xuất dữ liệu của chương trình ra file text theo một định dạng tự quy ước. 2. Viết các hàm bằng macro VBA trong Access, Word và Excel để khi các file này mở ra thì các macro tự động chạy và nạp dữ liệu từ file text đã có vào chính bản thân nó. Cơ chế này tương tự các virus macro trong Word. 3. Mỗi lần người sử dụng xuất dữ liệu, chương trình sẽ xuất ra một file dữ liệu trống chứa sẵn các macro mà A đã xây dựng, kèm theo một file text trùng tên. Khi người dùng mở file dữ liệu, dữ liệu từ file text sẽ được nhập vào trong quá trình mở file. Như các bạn có thể thấy, thay vì phải viết/kiểm tra các hàm xuất dữ liệu cho từng loại CSDL, A chỉ phải xuất ra dạng text và viết vài macro VBA đơn giản. Chúng ta hãy xem xét việc tạo một macro chạy tự động trong Microsoft Excel. Trước tiên, nếu bạn đang làm việc với Office 97 hay Office 2000, bạn tìm đến và click vào biểu tượng của Visual Basic Editor trên Toolbar (biểu tượng này nằm trên Toolbar "Visual Basic" hoặc chọn mục "Tools.Macro.Visual Basic Editor" trên menu chính, lúc này bạn sẽ có một cửa sổ làm việc. ở đây, bạn có thể viết các macro cho workbook hay các sheet. Trong phần này tôi sẽ giới thiệu cách cài đặt macro cho một workbook. Macro nhập dữ liệu tự động từ một file Text vào trong file Excel khi file này được mở. Để đơn giản, ta nên đặt tên file text trùng với tên file excel và định dạng file text này, chẳng hạn file text của tôi được định dạng như sau: Dòng đầu tiên là số cột cần xuất vào file. Dòng thứ 2 đến dòng thứ n+ 1 là tên của n cột. Dòng thứ n + 2 là số dòng sẽ được xuất vào file. Dòng thứ n+3 trở đi là nội dung của các Ô (nội dung mỗi Ô ghi trên 1 dòng), lần lượt theo các dòng từ trên xuống dưới và các cột từ trái sang phải. Ví dụ cụ thể, tôi có một file example.txt được định dạng như sau:
  • 3. 4 Họ và tên ngày sinh Quê quán Nghề nghiệp 2 Nguyễn Văn A 01-01-1970 Hà Nội Kế toán Nguyễn Thị B 30-10-1976 Hà Tây Giáo viên Bây giờ bạn bắt đầu viết Macro để thực hiện công việc nhập dữ liệu tự động. Để đảm bảo là dữ liệu được nhập vào ngay khi file được mở, chúng ta phải xử lý ở sự kiện Open workbook. Trước tiên, ta đưa các khai báo sau vào sau phần Option Explicit: Option Explicit Public NumCol As Integer Public Numrow As Integer Dim Columns (1 To 300 ) As String Chúng ta đưa vào sự kiện Workbook- Open() đoạn mã sau đây: Private Sub workbook-open ( ) On Error Goto FALL Dim fileNum As Integer, I As Integer, J As Integer Dim str As String, fileName As String Dim wb As Workbook Dim index As Integer Set wb = Thisworkbook
  • 4. fileName - Left (wb.FullName, Len(wb . FullName) - 3)' & "txt" fileNum = FreeFile Open fileName For Input AB #fileNum Input #fileNum, NumCo1 index = 1 For I = 1 To NumCo1 Line Input#fileMum, str Woksheets ("Sheet1"), Range (Columns (I) &CStr (index)). Value = str Next I Input#fileNum, NumRow For J = 1 To NumRow index = index + 1 For I = 1 To NumCol Line Input #fileNum, str If (str <>"") Then Worksheets ("Sheet1"). Range (Columns (I) & CStr (index). Value=str End If Next I Next J Close #fileNum Kill fileName wb.Save End FALL: End End Sub Trong đoạn mã trên, columns là một mảng ký hiệu các cột của Excel (A...Z, AA...). Ta có thể tạo ra mảng một cách đơn giản bằng thủ tục sau đây: Sub SetNameColumn() Dim I As Integer Columns (1) = "A" For I = 2 To 26
  • 5. Columns (I) = NextColumn (Columns (I-1)) Next I Columns (27) = "AA" For I = 28 To 300 Columns (I) = NextColumn (Columns (I-1)) Next I End Sub Trong đó NextColumn (Columns (i)) là hàm trả về tên cột tiếp theo cột i. Hàm này được viết như sau: Function NextColumn (s As String) As String If Len (s)=1 Then NextColumn=Chr (Asc(s)+1) Else If Asc (Mid(s, Len(s)))=90 Then NextColumn=Chr(Asc(s)+1)&"A" Else NextColumn=Chr(Asc(s) & Chr (Asc(Mid(s, Len(s))) +1) End If End If End Function Hoạt động của macro rất đơn giản, đầu tiên nó đọc dữ liệu từ file, đọc được số cột và đặt tên cho các cột của sheet, sau đó nó đọc xem dữ liệu xuất có bao nhiều hàng và lần lượt đọc/ghi thông tin vào các ô của sheet. Việc viết macro cho Word và Access cũng không khác là bao, nắm được ý tưởng trên cộng với một chút kiến thức về VB là các bạn có thể dễ dàng thành công. Sau đây chúng ta hãy thử đánh giá phương pháp này một chút. Nhược điểm - Đôi khi có thể mất dữ liệu do người dùng đã có thao tác với file được xuất ra (chẳng hạn: move nó sang thư mục khác). Nhưng vấn đề này có thể được giải quyết trọn vẹn bằng một vài kỹ thuật VB tinh tế hơn.
  • 6. - Chỉ chạy được với các ứng dụng hỗ trợ VBA, vấn đề này tương tự như việc các trang web có java script chỉ chạy được trên các trình duyệt hỗ trợ js vậy. - Các macro có thể bị nhận lầm là virus (nhất là với các chương trình diệt virus của Việt Nam), vì kỹ thuật của chương trình sử dụng tương tự các kỹ thuật của virus. Ưu điểm: - Chương trình nhỏ gọn, chẳng dính dáng gì đến cơ sở dữ liệu (Cũng có nghĩa là không phải lo lắng gì về xử lý lỗi cài đặt, lỗi đọc dữ liệu...). - Các macro được viết bằng VBA, dễ dàng bảo trì và phát triển hơn các đoạn mã viết bằng ngôn ngữ khác. - Có thể xuất dữ liệu vào các ứng dụng rất đặc thù, không thể làm bằng các phương pháp xuất dữ liệu thông thường, ví dụ: xuất dữ liệu vào các file định dạng của Word, của PowerPoint, của Microsoft Project, của Visio... Đây là lợi thế độc nhất vô nhị của phương pháp này. - Thời gian chi phí cho việc phát triển phần xuất dữ liệu là rất ngắn so với các phương pháp khác. Trên đây là một cách sử dụng macro tự động nhập dữ liệu vào các file cơ sở dữ liệu. Việc viết macro rất đơn giản mà nhiều khi lại rất hiệu quả. Hy vọng các nhập dữ liệu này sẽ giúp bạn cảm thấy thú vị hơn khi làm việc với các cơ sở dữ liệu.