Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Связь VB с базами Excel, Как связать программу с базой в Excel 
:(
    Опции темы
kminas
Дата 15.5.2007, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 26.10.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Я пишу программу на VB для заполнения таблиц Word текстовой информацией. Недавно выяснил, что базу для этих таблиц можно подключить из Excel. Разобрался как можно извлекать информацию, но как заставить при этом эту информацию взаимодействовать с компонентами VB не знаю. Ведь в зависимости от вида оборудования, его марки, исполнения и других параметров должен подключаться контейнер кнопок выбора, заполняться список Combobox-ов и т.д. Как это все подсоединить? Может ли кто-нибудь дать ссылку на примеры исходников? 
PM MAIL   Вверх
Akina
Дата 15.5.2007, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Поди туда не знаю куда...

Знаешь что, давай конкретную проблему по коду, а не общее "мне бы примерчик"... а для начала рекомендую перестать называть таблицы Excel базой данных и рассмотреть возможность переноса данных из Excel в Access.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
AndreyK
Дата 15.5.2007, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 15.3.2007

Репутация: нет
Всего: нет



Есть много способов, вот как я когда-то загружал данные при помощи элемента Data :

Код

Dim DataExcel as Data
'этот Data на самом деле находится в окне формы и у него ещё надо установить свойство 
'Connect="Excel 8.0" (или какая там версия требуется) и RecordsetType=Table
Dim CopyTable As DAO.TableDef
Dim TableName as String
Dim FileName as String

DataExcel.DatabaseName = FileName ' имя Excel-файла
DataExcel.RecordSource = vbNullString

On Error GoTo err1 'если не откроется, значит это не тот файл
DataExcel.Refresh
On Error GoTo 0

'узнаю название первой таблицы-листа
For Each CopyTable In DataExcel.Database.TableDefs
   If Mid$(CopyTable.Name, 1, 4) <> "MSys" Then
'уже не помню зачем этот MSys присутствует, но почему-то он тут есть ...
      TableName = CopyTable.Name
      Exit For
   End If
Next
      
DataExcel.RecordSource = TableName
DataExcel.Refresh
Далее извлекаю данные из DataExcel.Recordset обычным способом

Сейчас наверное правильно то-же самое делать при помощи средств OLEDB


Это сообщение отредактировал(а) AndreyK - 15.5.2007, 17:35
PM MAIL   Вверх
Akina
Дата 15.5.2007, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(AndreyK @  15.5.2007,  18:05 Найти цитируемый пост)
Сейчас наверное правильно то-же самое делать при помощи средств OLEDB

DAO/OLEDB/ODBC есть смысл использовать, если требуются специальные фичи этих методов. Иначе разуммнее использовать либо ADO, либо Jet.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
AndreyK
Дата 15.5.2007, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 15.3.2007

Репутация: нет
Всего: нет



Цитата("Akina")

Иначе разуммнее использовать либо ADO, либо Jet


ADO (Jet) - прекрасный метод, работает в три раза быстрее чем OLEDB (ели там нет SQL-сервера)...

Но эти сволочи (из Microsoft) не рекомендуют его перенос в VB.NET и программа трансляции (VB -> VB.NET) все Data заменяют на Label и после этого сидишь и паришся исправляя всё в ручную на OLEDB.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0584 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.