Chào các Bạn,
Theo dõi các bài viết trên diễn đàn tôi thấy có một số Bạn đã có nhầm lẫn các cột dữ liệu có kiểu dữ liệu là OLE Object với cột dữ liệu có kiểu Text, nên khi viết mã VBA đã viết tương tự như sau, với cột Lv có kiểu OLE Object:
Mã:
...
tbRec!Lv.Value = "Long binary data"
...
Dĩ nhiên khi chạy, đoạn code VBA trên sẽ nhận được thông báo lỗi hệ thống.
Trong một Microsoft Access Database, OLE Object (
Object Linking and Embedding) là một kiểu dữ liệu đặc biệt, kiểu dữ liệu này không phải là Text, mà chính là 1 đối tượng (Object) của ứng dụng bên ngoài MS. Access mà nội dung là nội dung vật lý của file nhị phân (binary file), chẳng hạn như nội dung nhị phân (binary) của 1 ảnh, nội dung nhị phân của 1 file nhạc, nội dung nhị phân của 1 file video ...
Với các cột dữ liệu có kiểu OLE Object, khi ta mở bảng ra theo dạng trình bày cột và hàng, sẽ thấy hiện nội dung là một đoạn text với nội dung là "Long binary data". Đoạn text này chỉ là nội dung chỉ dẫn của MS. Access cho ta biết đó là kiểu dữ liệu OLE Object và chưa được nạp nội dung vào, chứ hoàn toàn không phải là nội dung dữ liệu của cột dữ liệu này. Nếu cột OLE Object đã được nạp nội dung, khi xem ở dạng bảng như trên thì sẽ hiển thị dòng text chỉ rõ OLE Object đó là gì, thí dụ như nếu đó là 1 ảnh thì đoạn text hiển thị là "Bitmap image"
Các Bạn xem các ảnh sau đây để hiểu rõ hơn về nội dung tôi trình bày ở trên:
Cấu trúc bảng Categories (trong dữ liệu mẫu Northwind):
Và bảng Categories được mở dưới dạng hàng + cột:
Cấu trúc bảng hệ thống MSysObjects:
Và bảng MSysObjects được mở dưới dạng hàng + cột:
Trong bài kế tiếp, tôi sẽ trình bày cách thức để cho hiển thị nội dung biểu kiến của cột OLE Object này trong MS. Access.
"Nội dung biểu kiến" nghĩa là nội dung ta có thể nhìn thấy được theo đặc trưng và tính chất của OLE Object. Ví dụ như thấy được ảnh của 1 Bitmap Image, ... Tôi phải dài dòng như vậy để các Bạn phân biệt với nội dung nhị phân của 1 OLE Object.