excel2access(продолжение)...

Программирование на Visual Basic for Applications
eXRay
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 09.05.2004 (Вс) 0:58
Откуда: Россия, Москва

excel2access(продолжение)...

Сообщение eXRay » 10.01.2005 (Пн) 3:29

есть код в экселе:

Код: Выделить всё
For Each c In Worksheets("...").Range(Cells(1, 1), Cells(10, 10))
   .......
Next c


как сделать тоже самое в акцессе?

делаю так:

Код: Выделить всё
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlBook = GetObject("...\....xls", "Excel.Sheet")
Set xlSheet = xlBook.ActiveSheet
For Each c In xlSheet.Range(Cells(1, 1), Cells(10, 10))


в последней строке ошибка "Method 'Cells' of object '_Global' failed"...

как быть?

eXRay
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 09.05.2004 (Вс) 0:58
Откуда: Россия, Москва

Сообщение eXRay » 10.01.2005 (Пн) 3:41

еще странно, когда выполняется
Код: Выделить всё
Set xlBook = GetObject("...", "Excel.Sheet")
, то, естественно, запускается сам эксель, а когда доходит до
Код: Выделить всё
str = xlSheet.Range(Cells(1, 1), Cells(10, 10))
, то запускается вторая копия экселя... почему :?:

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 10.01.2005 (Пн) 12:21

А зачем было сощдавать две темы, когда вполне можно обойтись одной?
I don't understand. Sorry.

eXRay
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 09.05.2004 (Вс) 0:58
Откуда: Россия, Москва

Сообщение eXRay » 10.01.2005 (Пн) 12:35

RayShade писал(а):А зачем было сощдавать две темы, когда вполне можно обойтись одной?


ладно, прошу прошения, действительно, можно было бы обойтись одной...

SergeySV2
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 06.01.2005 (Чт) 22:06

Re: excel2access(продолжение)...

Сообщение SergeySV2 » 10.01.2005 (Пн) 13:54

eXRay писал(а):есть код в экселе:

Код: Выделить всё
For Each c In Worksheets("...").Range(Cells(1, 1), Cells(10, 10))
   .......
Next c


как сделать тоже самое в акцессе?


Что-то ты запутался от обилия информации и вариантов :roll:
Если ты пишешь уже в самом Excel'е, то тебе не нужно использовать GetObject/CreateObject для подключения к Excel'ю, ты уже и так в нем.... или ты все переиграл и уже передумал писать в Excel'е

Что касается твоего кода
Код: Выделить всё
For Each c In xlSheet.Range(Cells(1, 1), Cells(10, 10))

Ошибка в том, что ты забываешь писать кому принадлежит Cells(1,1) - и Excel'ю приходится додумывать за тебя, он пытается когда текущий лист не совпадает с активным, получается разночтения, проще говоря - ты направляешь письмо бабушке в г.Иваново, но указываешь в письме только улицу и дом "Строителей, д.6", на почте берут твое письмо и не находя названия города, предполагают что это Москва и уже в ней пытаются найти эту улицу Строителей - и получают облом..... мораль, лучше всегда указывать полный путь к объекту, т.е.
For Each c In xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(10, 10))


ну и про:
как сделать тоже самое в акцессе?

Ответ - никак! Access это база данных и устройство у нее другое. Тут нахрапом не проедешь.Тебе нужно хорошенько прочитать как устроены базы данных вообще, а для решения твоей задачи, еще дополнительно изучить универсальную библиотеку доступа к базам данных - ADO

eXRay
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 09.05.2004 (Вс) 0:58
Откуда: Россия, Москва

Re: excel2access(продолжение)...

Сообщение eXRay » 10.01.2005 (Пн) 15:16

SergeySV2 писал(а):
как сделать тоже самое в акцессе?

Ответ - никак! Access это база данных и устройство у нее другое. Тут нахрапом не проедешь.Тебе нужно хорошенько прочитать как устроены базы данных вообще, а для решения твоей задачи, еще дополнительно изучить универсальную библиотеку доступа к базам данных - ADO


я хотел сделать так, чтобы при открытии из акцесса экселя можно было работать с экселем(из акцесса) и передавать из него значения в БД...

eXRay
Новичок
Новичок
 
Сообщения: 32
Зарегистрирован: 09.05.2004 (Вс) 0:58
Откуда: Россия, Москва

Сообщение eXRay » 10.01.2005 (Пн) 15:42

все, на данный момент все проблемы решены, спасибо SergeySV2, Вы мне очень помогли!!!


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 61

    TopList