VB+Excel

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
fizik_leha
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 02.09.2004 (Чт) 14:08

VB+Excel

Сообщение fizik_leha » 01.12.2004 (Ср) 12:47

Необходимо из VB6 получить доступ к Экселевскому файлу и скопировать оттуда в массив два столбца...
Вроде все просто, но необходимо это сделать не открывая экселевский файл...
Каким образом это осуществить?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.12.2004 (Ср) 12:52

Шо, опять?
Опять открыть файл не открывая его?
Lasciate ogni speranza, voi ch'entrate.

Snussi
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 151
Зарегистрирован: 21.07.2004 (Ср) 18:08
Откуда: Москва, Россия

Сообщение Snussi » 01.12.2004 (Ср) 13:00

Может, надо просто не показывать этот файл на экране?
Если так, то просто - готов кусок кода подкинуть :)

fizik_leha
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 02.09.2004 (Чт) 14:08

Сообщение fizik_leha » 01.12.2004 (Ср) 13:16

За фрагмент кода буду благодарен...

to alibek: я просто думал, что к экселевскому файлу можно через АDO как и к Access доступ получить...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.12.2004 (Ср) 13:18

Можно, строка подключения подглядывается на www.connectionstrings.com.
Lasciate ogni speranza, voi ch'entrate.

fizik_leha
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 02.09.2004 (Чт) 14:08

Сообщение fizik_leha » 01.12.2004 (Ср) 13:28

Спасибо... только что то я не понял структуру sql запроса...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 01.12.2004 (Ср) 13:31

Работаешь абсолютно также, как с обычной БД через ADO.
Lasciate ogni speranza, voi ch'entrate.

fizik_leha
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 02.09.2004 (Чт) 14:08

Сообщение fizik_leha » 01.12.2004 (Ср) 13:41

а вместо имен полей что задавать?
если можно примерчик плиз...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.12.2004 (Ср) 14:27

Имена столбцов, коие в первой строке обретаются...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

fizik_leha
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 02.09.2004 (Чт) 14:08

Сообщение fizik_leha » 01.12.2004 (Ср) 17:08

cmd = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data source=C:\Documents and Settings\All Users\Документы\Входящее\progeck JC\product list 02.11.2004.xls;Extended Properties =""Excel8.0;HDR = Yes;IMEX = 1"""
Set cn = New ADODB.Connection
With cn
.ConnectionString = cmd
.Open
'.Execute "ALTER TABLE japan_cars ADD MyNewColumn1 String(20) NULL" ' Добавление в таблицу нового поля...

End With

Говорит, что не может найти устанавливаемый ISAM

Что я не так делаю?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 01.12.2004 (Ср) 17:30

енто батенька тебе прямая дорога на сайт мелкософта в раздел доступа к данным (MDAC) и качать тебе MSJET4.0SP8 как минимум.
и вообще почитай у них, там много чего есть интересного

fizik_leha
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 02.09.2004 (Чт) 14:08

Сообщение fizik_leha » 01.12.2004 (Ср) 17:53

Самое интересное, что он у меня установлен...
Были проблемы с доступом к ассess 2003 так я себе все поустанавливал....
Мне кажется, что ошибка где то в строке подключения, но не могу понять где именно...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 01.12.2004 (Ср) 18:10

проверь IMEX, что то мне кажется там был другой код

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 01.12.2004 (Ср) 18:28

там что-то я пробельчика у тебя не вижу в строчке ..."Excel 8.0;...

попробуй еще вот так получить доступ:


Код: Выделить всё
Cn.Open "Driver={Microsoft Excel Driver (*.xls)};" & _
                    "DriverId=790;" & _
                    "Dbq=c:\somepath\mySpreadsheet.xls;" & _
                    "DefaultDir=c:\somepath;"

fizik_leha
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 02.09.2004 (Чт) 14:08

Сообщение fizik_leha » 01.12.2004 (Ср) 18:33

Что то не могу понять за что этот Imex отвечает...
Вроде он должен указывать на имена полей в Экселе...
Короче совсем запутался....
точную ссылку на этот апдейт кинуть не можешь?
А то я в этом майкрософте закопался уже...

fizik_leha
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 02.09.2004 (Чт) 14:08

Сообщение fizik_leha » 02.12.2004 (Чт) 10:32

Ладно... не получается сделать по умному сделаю по другому...
Как открыть экселевский файл так что бы он на экран не выводился?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 02.12.2004 (Чт) 11:25

IMEX=1 нужен в том случае, когда колонка содержит разные типы данных. Тогда все они будут возвращены как строки.

Чтоб не выводился:
with createobject("excel.application")
.workbooks.open "path"
....
.quit
end with
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

fizik_leha
Обычный пользователь
Обычный пользователь
 
Сообщения: 76
Зарегистрирован: 02.09.2004 (Чт) 14:08

Сообщение fizik_leha » 02.12.2004 (Чт) 11:33

Спасибо... вроде получилось....


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

    TopList