Ash_savvy Ответов: 1

Как импортировать данные из excel в базу данных SQL server с помощью vb6?


В этом проекте я использую объект Excel.application, чтобы открыть лист excel, но когда я отлаживаю код, я получаю ошибку при выполнении ‘obj.workbooks.open(<path>)’ - и ошибка заключается в том, что “это действие не может быть завершено, потому что другое приложение занято. Выберите переключатель, чтобы активировать занятое приложение и устранить проблему”
Кто-нибудь, пожалуйста, помогите.

Что я уже пробовал:

Set objExcel= CreateObject(“Excel.Приложение”)
Установите xlWB = onjExcel.Книги.открыть(ХL)
- где xl-это переменная, которая хранит мой путь к файлу excel с расширением.

1 Ответов

Рейтинг:
9

CHill60

Предполагая, что использование onjExcel это просто опечатка здесь, а не в вашем коде, вполне вероятно, что Excel показывает какое-то диалоговое окно или сообщение.

Поставьте точку останова на

Set xlWB = objExcel.Workbooks.open(xl)
и переключитесь на приложение Excel и посмотрите.

Возможно, Excel уже открыт для чего - то другого-попробуйте закрыть эти экземпляры, если это так.

Иногда перезагрузка может помочь - или использовать Диспетчер задач, чтобы убедиться, что все экземпляры Excel действительно очищены из памяти, прежде чем пытаться запустить вашу программу снова.

Смотрите также это Статья службы поддержки Майкрософт[^]


Ash_savvy

Извините за опечатку😄 и я не могу начать, не оценив усилия и время, которые вы потратили на мой код, большое вам спасибо, мой друг 😃
Как вы сказали, я поставил точку останова на
‘Set xlWB = objExcel.Книги.открыть(ХL)’
И я также дважды проверил в Диспетчере задач, чтобы убедиться, активен ли какой-либо экземпляр excel или нет. Но я узнал, что когда эта строка кода выполняется - ‘Set xlWB = objExcel.Workbooks.open(xl)’ - я вижу приложение Microsoft Excel в диспетчере задач, в то время как сам получаю эту ошибку “это действие не может быть завершено, потому что другое приложение занято”.
Примечание: в справочниках проверяется ‘библиотека объектов Microsoft Excel 15.0’.

CHill60

Это может привести к проблеме win32 против win64. VB6 не может должным образом взаимодействовать с приложениями win64, он будет работать под управлением WOW64.
Есть ли шанс, что вы можете отказаться от использования VB6 (больше не поддерживается) и использовать VB.NET (бесплатно)?

Ash_savvy

Благодарю вас так много, мой друг, позвольте мне попробовать с Vb.net🙂