Microsoft Excel là một ứng dụng quản lý cơ sở dữ
liệu trên bảng tính rất mạnh mẽ. Nếu đang sử dụng ứng dụng Word để thu thập dữ
liệu người dùng thì việc chuyển toàn bộ dữ liệu này sang bảng tính Excel để
quản lý là rất cần thiết. Bên cạnh đó, chuyển đổi dữ liệu là một công việc với
nhiều bản ghi (Record) và trường (Field) dữ liệu. Nhưng đôi khi, bạn chỉ
cần chuyển một bản ghi tại một thời điểm nào đó. Ví dụ, bạn cần chuyển một form
dữ liệu đơn hàng vào một cơ sở dữ liệu mua hàng lớn hơn. Bài viết này sẽ hướng
dẫn cách chuyển dữ liệu từ Word sang Excel.
Bước đầu tiên trong quá trình chuyển đổi là
phải xác định bốn thành phần: các dữ liệu cần chuyển, tập tin nguồn chứa dữ
liệu, tập tin đích mà bạn muốn chuyển giao dữ liệu, công cụ thực hiện chuyển
đổi (mã VBA). Đối với dữ liệu, bạn có thể sử dụng một form dạng Word để thu thập
dữ liệu (dữ liệu đầu vào) hoặc có thể là form dạng Web, một số định dạng khác.
Khi công việc chuẩn bị hoàn tất, bạn xác định
các yếu tố động trong định dạng đích. Trong bài viết này sử dụng hai yếu tố,
tên và số điện thoại của một công ty, hồ sơ được ghi vào bảng ghi, bạn có thể
xem một ví dụ đơn giản trong hình sau:
Khi
đã xác định định dạng dữ liệu đích đến thì bạn cần loại dữ liệu của tập tin
nguồn, có thể đổi kiểu dữ liệu trước khi chuyển giao dữ liệu. Cả hai trường
trong sheet dữ liệu này đều là text sử dụng định dạng General. Tiếp theo, bạn
cần lưu ý về đường dẫn đến tập tin đích. Trong ví dụ này, cả hai tập tin được
lưu trên một ổ đĩa nhưng trong hai thư mục khác nhau.
Kế
đến, bạn cần tạo ra form nguồn để thu thập dữ liệu. Form Word là một tài liệu
chứa các ô trống được gọi là trường để bạn có thể nhập dữ liệu. Trường là một ô
được xác định trước có chức năng lưu trữ và chấp nhận dữ liệu nhập vào. Ví dụ này
sử dụng biểu mẫu đơn giản gồm có hai trường Shipping
Company và Phone. Để tạo ra form
trong Word, bạn chèn hai trường văn bản vào trong tài liệu Word như sau: bấm
vào thẻ Developer rồi chọn trường ab trong menu Legacy Forms xổ xuống (trong nhóm Controls). Trong Word 2003, bạn chọn Toolbar từ menu View và
chọn Forms, xuất hiện thanh công cụ
chứa công cụ Text Form Field. Sau đó,
bạn bấm vào Properties trong nhóm Controls hoặc bấm đôi chuột vào trường
đang hiển thị để mở thuộc tính của nó. Trong hộp thoại Text Form Field Options, bạn nhập txtCompanyName
vào ô thuộc tính Bookmark, bấm OK. Bạn thực hiện tương tự đối với txtPhone, rồi lưu biểu mẫu.
Để
thêm vào mã chuyển đổi một bản ghi từ các trường vào bảng tính, bạn mở biểu mẫu
Word rồi bấm tổ hợp phím Alt + F11 để
khởi động Visual Basic Editor (VBE).
Từ menu Insert, bạn chọn Module rồi nhập vào đoạn mã sau, rồi lưu
lại và trở về biểu mẫu Word.
Sub
TransferToExcel()
'Transfer a
single record from the form fields to an Excel workbook.
Dim doc As Document
Dim strCompanyName As String
Dim strPhone As String
Dim strSQL As String
Dim cnn As ADODB.Connection
'Get data.
Set doc = ThisDocument
On Error GoTo ErrHandler
strCompanyName = Chr(39) &
doc.FormFields("txtCompanyName").Result & Chr(39)
strPhone = Chr(39) &
doc.FormFields("txtPhone").Result & Chr(39)
'Define sql string used to insert each record
in the destination workbook.
'Don't omit the $ in the sheet identifier.
strSQL = "INSERT INTO [PhoneList$]"
_
& " (CompanyName, Phone)" _
& " VALUES (" _
& strCompanyName & ", " _
& strPhone _
& ")"
Debug.Print strSQL
'Define connection string and open connection
to destination workbook file.
Set cnn = New ADODB.Connection
With cnn
.Provider =
"Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data
Source=E:\Examples\Sales.xlsx;" & _
"Extended Properties=Excel
8.0;"
.Open
'Transfer data.
.Execute strSQL
End With
Set doc = Nothing
Set cnn = Nothing
Exit Sub
ErrHandler:
MsgBox Err.Number & ": " &
Err.Description, _
vbOKOnly, "Error"
On Error GoTo 0
On Error Resume Next
cnn.Close
Set doc = Nothing
Set cnn = Nothing
End Sub
Bạn
có thể thêm một nút macro vào thanh Ribbon
hoặc một nút lệnh nào đó vào tài liệu. Tuy nhiên, bằng cách sử dụng trường
trong biểu mẫu, bạn có thể bỏ qua các công cụ trên giao diện và thực thi các
trường trong macro như sau: bấm đôi chuột vào trường Phone (txtPhone) để mở trang thuộc tính của sheet.
Từ danh sách xổ xuống của mục Exit, bạn
chọn macro chuyển đổi từ đoạn mã trên (TransferToExcel),
bấm OK. Bạn bấm phím Tab thì trường Phone sẽ được thực thi,
nó sẽ sao chép văn bản từ trường Company name và Phone đến tập tin Sales.xlsx. Lưu ý, khi áp dụng đoạn mã
trên vào công việc thực tế của bạn thì bạn hãy cập nhật đường dẫn một cách
thích hợp.
Trước
khi sử dụng biểu mẫu Word, bạn nên hạn chế việc thay đổi các trường trong biểu
mẫu, bằng cách vào thẻ Developer rồi
bấm vào Restrict Editing trong nhóm Protect. Trong Word 2003, bạn bấm vào Protect trên thanh công cụ Form. Ở bảng tác vụ hiện ra, bạn đánh
dấu chọn vào Allow only this type of
editing in this document, chọn Filling
In Forms trong danh sách xổ xuống, bấm Yes,
Start Enforcing Protection rồi nhập vào hai lần mật khẩu và bấm OK.
BÙI THANH LIÊM
theo xahoithongtin.com.vn
Đăng nhận xét