VicoTas
Câu hỏi
vietnamconnection vnconnection
25/05/2013 20:26

vướng mắc trong visual

Tôi có viết một phần Mềm trên "Microsoft Visual Basic 6.0" và được liên kết với "Microsoft Office Excel 2003" tuy nhiên khi chạy quá lâu thì xuât hiện thông báo Lỗi như sau : "Microsoft Office Excel is Waiting for another application to complete an OLE action" và mã lênh trên "Microsoft Visual Basic 6.0" bị lỗi lúc đó tôi phải lick OK trong trong hộp thông báo của "Microsoft Office Excel" thi khi đó "Microsoft Visual Basic 6.0" tiếp tục chạy vây xin hỏi làm sao để giải quyết vấn đề này
Tôi xin trân thành cảm ơn

Danh sách câu trả lời (1)
avatar duc_tam379 25/05/2013 20:26
Thực sự bây giờ bạn nói thế này thì tớ không biết được đâu bạn ạ. Tớ chỉ có thể hướng dẫn bạn kết nối với Excel từ Visual Basic thôi bạn ạ.

Trích dẫn:
Đây là những kiến thức cơ bản trong việc điều khiển Excel từ VB6 thông qua thư viện liên kết động DLL và EXE. Đây là hướng phát triển rất hay khi bạn đã đạt được những kiến thức nhất định về VBA và cần phải bảo vệ thành quả của mình không bị bẻ khoá. Nội dung này tôi dịch từ "Professional Excel Development: The Definitive Guide to Developing Applications Using Microsoft® Excel and VBA®
By Stephen Bullen, Rob Bovey, John Green". Tôi cũng đã test lại cẩn thận rồi! , chúng ta sẽ tìm hiểu dần dần... Nắm được nội dung này bạn sẽ hiểu hơn một số ví dụ do anh Tuân đã post lên diễn đàn.

Trước khi tìm hiểu công việc này, bạn biết rằng Visual Basic 6.0 (VB 6.0) được xây dựng bởi tập đoàn Microsoft. Hiện này VB 6.0 đã được thay thế bởi VB.NET, tuy nhiên VB 6.0 vẫn là phần mềm được nhiều nhà lập trình sử dụng rộng rãi nhất trên thế giới. VB 6.0 mạnh mẽ hơn người anh em VBA vì VB 6.0 là ngôn ngữ lập trình hoạt động mang tính độc độc lập. Nhìn chung nội dung, cấu trúc, mã lệnh trong thủ tục của VB 6.0 và VBA rất giống nhau. Vì vậy, đối với những người am hiểu về VBA thì có thể nhanh chóng tiếp cận và sử dụng VB 6.0.
Chương này sẽ chỉ dẫn bước đầu tạo mối liên kết giữa Excel với VB 6.0 và những lý do tại sao sử dụng VB 6.0 cho các dự án VBA của bạn. VB 6.0 có thể tạo ra hơn 6 kiểu ứng dụng, nhưng chỉ có hai kiểu liên kết được với Excel là ActiveX DLL và Standard EXE. Mục này sẽ hướng dẫn bạn cách sử dụng ActiveX DLL và Standard EXE trong VB 6.0 cho Excel với ứng dụng đơn giản “Hello World”. Chúng ta sẽ khám phá sự liên kết giữa Excel và Standard EXE trong mục tiếp theo.
Như vậy bạn sẽ thắc mắc tại sao cần phải sử dụng VB 6.0 trong khi đó VBA sẵn có trong Excel?! VB 6.0 có một số khả năng mà VBA không có như khả năng biên dịch code trong form của DLL (Dynamic Link Library - Thư viện liên kết động), tạo file hoạt động một cách độc lập, đóng gói form, khả năng lập trình hướng đối tượng cao hơn, hỗ trợ các thư viện tài nguyên,... Ngoài ra khả năng điều khiển mảng dữ liệu liên liên kết được tăng cường hơn so với VBA. Dưới đây là những nét chính để bạn quyết định có nên sử dụng VB 6.0 để liên kết với Excel hay không?!
- Khả năng bảo mật code: VBA có khả năng bảo mật code để chống người khác có thể xem bằng cách sử dụng mã khoá cho dự án VBA của bạn. Điều đó là cần thiết khi bạn đã bỏ công sức để xây dựng sản phẩm của mình. Tuy nhiên hiện nay có rất nhiều chương trình có thể dò tìm và phá được khóa, khi đó code sẽ được hiện ra. Dự án của bạn lúc đó rất dễ bị phân tán để mọi người sử dụng. Nguyên nhân là do VBA không biên dịch được code, điều đó không thể ngăn chặn được người khác truy cập vào.
- Sử dụng VB 6.0 Form nâng cao: Form được đóng gói trong VB 6.0 so với sử dụng trong VBA. Đối tượng Form được tạo trong ứng dụng Excel được gọi là MSForm, còn trong VB 6.0 thì được hiểu là Ruby Form. Sự giống nhau về bên ngoài giữa chúng là Form ban đầu đều trống rỗng để bạn có thể xây dựng, di chuyển các điều khiển trong Form. Ngoài ra các điều khiển trong cả hai kiểu đều sử dụng các sự kiện xả ra với nó để thi hành thủ tục. Đương nhiên giữa chúng có sự khác nhau, ví dụ như thuộc tính, phương thức, sự kiện và kể cả các điều khiển của VB 6.0 rộng hơn...
- Hỗ trợ điều khiển ActiveX tốt hơn: Không chỉ mỗi VB 6.0 Form cung cấp khả năng hỗ trợ tốt hơn so với UserForm của các điều khiển đa dạng xây dựng trong Window. Chúng còn có hàng trăm điều khiển ActiveX nhóm 3 mà không có đầy đủ cho UserForm. Lý do như trên là hầu hết điều khiển ActiveX nhóm 3 trở thành phiên bản 2. Khi bạn xây dựng dự án thì phiên bản bạn sử dụng được gọi là design-time version của điều khiển. Khi dự án của bạn được phân phối (distributed) và chạy trong trạng thái biên dịch thì được gọi là runtime version của điều khiển. Khi bạn có được điều khiển ActiveX nhóm 3, có nghĩa là bạn đã mua bản quyền để xây dựng VB 6.0 Form bằng cách sử dụng design-time version của điều khiển. Runtime version của điều khiển, là kết quả của VB 6.0 Form sau khi được biên dịch, có thể phân phối lại không bị hạn chế trong phần lớn các trường hợp. Đây là lý do không thể sử dụng trong tài nguyên design-time và việc đó không thể sử dụng để xây dựng dự án mới.
Ngược lại UserForm trong VBA được thiết kế ở dạng mở, như vậy runtime version của điều khiển ActiveX không hoạt động với chúng. Nếu bạn đã phân phối design-time version của điều khiển để chạy trong VBA UserForm không biên dịch, về cơ bản là bạn sẽ gửi điều khiển đó cho người khác một cách miễn phí. Ai đó mà có design-time version của điều khiển được cài đặt trong máy tính thì có thể sử dụng những dự án đó, ngoài ra họ phải mua hoặc không sử dụng được.Ứng dụng Active DLL “Hello World” sẽ giải thích cho bạn cách một cách tạo liên kết từ Excel tới DLL. Chúng ta sẽ mở rộng ví dụ trên theo cách thứ hai. Excel sẽ liên kết với DLL và DLL sẽ liên kết trở lại với Excel. Tiếp theo chúng ta sẽ nghiên cứu cách sử dụng Form của VB 6.0 như là UserForm sẵn có trong Excel.


Bạn tham khảo tiếp trong link này nhé! http://www.giaiphapexcel.com/forum/showthread.php?t=6815
Trả lời câu hỏi
Tải lại mã
Câu hỏi lĩnh vực Lập trình
nophoto Lệnh xem thư mục trong DOS là gì?

Đăng lúc: 20:25 - 25/05/2013 trong Lập trình

nophoto Lập trình windown form có khác web form không?

Đăng lúc: 20:25 - 25/05/2013 trong Lập trình

nophoto Làm sao để kết nối dữ liệu từ Access sang VB ?????

Đăng lúc: 20:25 - 25/05/2013 trong Lập trình

nophoto Cho mình hỏi chút

Đăng lúc: 20:25 - 25/05/2013 trong Lập trình

nophoto Tạo bản Ghost.exe bằng cách nào?????????

Đăng lúc: 20:25 - 25/05/2013 trong Lập trình

nophoto Làm thế nào để lập trình VB giỏi?

Đăng lúc: 19:25 - 11/07/2013 trong Lập trình

nophoto Lập trình vi điều khiển có khó không?

Đăng lúc: 20:25 - 25/05/2013 trong Lập trình

nophoto em mới cài Java nhưng ko biết chạy = file nào giúp em với

Đăng lúc: 20:25 - 25/05/2013 trong Lập trình

nophoto Trong linux có dùng giao diện sử dụng như windows không?

Đăng lúc: 20:25 - 25/05/2013 trong Lập trình

nophoto Trong HĐH linux lệnh sort là lệnh gì?

Đăng lúc: 20:25 - 25/05/2013 trong Lập trình

lê văn nguyên Làm thế nào để chèn nhạc vào visual basic ,bác nào biết giúp mình nha .Cảm ơn

Đăng lúc: 20:25 - 25/05/2013 trong Lập trình

nophoto Lệnh phân quyền trong linux là gì?

Đăng lúc: 20:25 - 25/05/2013 trong Lập trình

nophoto Hàm biến chữ thường thành chữ hoa và ngược lại là gì vậy hả các bạn?

Đăng lúc: 20:25 - 25/05/2013 trong Lập trình

nophoto Trong HDH linux lệnh set date là lệnh gì?

Đăng lúc: 20:25 - 25/05/2013 trong Lập trình

Hoài Nam (Nam Tước) Mình đang định học quản trị mạng nhưng đang không biết nên học CCNA cua cisco hay học MCSA cua Microsoft nữa?

Đăng lúc: 22:17 - 26/04/2013 trong Lập trình

Đức Vân Mọi người dùng công cụ thiết kế web nào?

Đăng lúc: 22:17 - 26/04/2013 trong Lập trình

Lê Văn Tùng Cách đưa trang web lên top google?

Đăng lúc: 22:17 - 26/04/2013 trong Lập trình

Đức Cảnh SEO onpage như thế nào để từ khóa lên TOP google?

Đăng lúc: 22:17 - 26/04/2013 trong Lập trình

Vinh Đồ án aspx.net

Đăng lúc: 22:17 - 26/04/2013 trong Lập trình

nophoto Giúp mình làm bài tiểu luận môn đồ họa máy tính về đề tài Thiệp Giáng Sinh????

Đăng lúc: 22:17 - 26/04/2013 trong Lập trình

Rao vặt Siêu Vip