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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ms Access + MS Excel, Работа из excel в access 
:(
    Опции темы
kall1sto
Дата 19.10.2007, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Народ облазил все, читал хелпы ваш форум проштудировал так и не нашел. Конкртенее:

Программа должна брать данные из access и заносить на лист excel. Два документа должны быть открыты вручную. Скрипт пишется только в excel, причем без использования sql, просто VBA. Типа ActiveProject и так далее. Спасибо.

З.Ы. Точно такое уже сделал для project и excel если кому интересно могу выложить. (для project не много примеров вообще в нете найти можно)
PM MAIL   Вверх
Akina
Дата 19.10.2007, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(kall1sto @  19.10.2007,  10:11 Найти цитируемый пост)
Программа должна брать данные из access и заносить на лист excel.

Ну и в чем проблема? Jet, ADO, DAO - все что хочешь используй. Или СОМ...

Цитата(kall1sto @  19.10.2007,  10:11 Найти цитируемый пост)
Два документа должны быть открыты вручную.

Это-то тут при чем? 

Цитата(kall1sto @  19.10.2007,  10:11 Найти цитируемый пост)
Скрипт пишется только в excel, причем без использования sql, просто VBA.

да-а-а? а как Вы собираетесь данные получать? самостоятельно БД парсить? Через буфер обмена кидать?


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

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


Новичок



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

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



Возможно я не прав так как в VBA я не работал с access'om , просто думал скрипт если вдруг кто возьмется написать, то что бы не утруждали себя открытиями файлов. и если можно просто пример скрипта который берет название и заносит в excel
PM MAIL   Вверх
kapbepucm
Дата 19.10.2007, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ADO
Код
Sub MainProcedure()
  Const MDBFileName As String = ""
  Const MDBTableName As String = ""
  Dim X As Long, MaxX As Long, Y As Long
  Dim CON As Object, RST As Object
  Set CON = CreateObject("ADODB.Connection")
  Set RST = CreateObject("ADODB.Recordset")
  CON.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & MDBFileName & ";Uid=Admin;Pwd=;"
  RST.Open MDBTableName, CON, 2, 1
  MaxX = RST.Fields.Count - 1
  For X = 0 To MaxX
    Sheets(1).Cells(1, X + 1) = RST.Fields(X).Name
  Next X
  Y = 2
  Do Until RST.EOF
    For X = 0 To MaxX
      Sheets(1).Cells(Y, X + 1) = RST.Fields(X)
    Next X
    RST.MoveNext
    Y = Y + 1
  Loop
  RST.Close
  CON.Close
End Sub



--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
kall1sto
Дата 19.10.2007, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо большое, сча буду разбирать...
PM MAIL   Вверх
kall1sto
Дата 19.10.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Возникла проблема для работы Con и RST какие библиотеки надо?

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


Новичок



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

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



Все спасибо разобрался... 
PM MAIL   Вверх
kall1sto
Дата 19.10.2007, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



При написании в office 2007 возникает ошибка, имя файла писал сдругим расширением, но не прокатывает. 
выдает ошибку и пишет неопознаннаяошибка. Че делать?
PM MAIL   Вверх
kall1sto
Дата 22.10.2007, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Народ подскажите, нужно вставить вышеизложенный од в 2007 офис, возникает ошибка в строке:

Код

CON.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & MDBFileName & ";Uid=Admin;Pwd=;"

Ошибка  я так понимаю, в том что нет такого драйвера в 2007 офисе, из этого два вопроса:
1. Какую библиотеку подключить.
2. Какой драйвер?
Спасибо.

Это сообщение отредактировал(а) kall1sto - 22.10.2007, 09:17
PM MAIL   Вверх
kapbepucm
Дата 22.10.2007, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Интересно, но в 2000, где я писал, неопознанная ошибка иногда вылетает иногда нет. Искал где, нашёл во 2 цикле For сама среда VBA глючит: делает второе повторение, но X присваивает 10 smile Странно то, что иногда код проходит без проблем: любопытно, это от чего зависит?
kall1sto, попробуй иную технологию, например:
Код
Sub MainProcedure()
'предварительно подключив DAO
  Const MDBFileName As String = ""
  Const MDBTableName As String = ""
  Dim wrkJet As DAO.Workspace
  Dim DBS As DAO.Database
  Dim RST As DAO.Recordset
  Set wrkJet = CreateWorkspace("wrkJet000", "Admin", "", dbUseJet)
  Set DBS = wrkJet.OpenDatabase(MDBFileName, False, True)
  Set RST = DBS.OpenRecordset(MDBTableName)
  Dim X As Long, MaxX As Long, Y As Long
  MaxX = RST.Fields.Count - 1
  For X = 0 To MaxX
    Sheets(1).Cells(1, X + 1) = RST.Fields(X).Name
  Next X
  Y = 2
  Do Until RST.EOF
    For X = 0 To MaxX
      Sheets(1).Cells(Y, X + 1) = RST.Fields(X)
    Next X
    RST.MoveNext
    Y = Y + 1
  Loop
  RST.Close
  DBS.Close
  wrkJet.Close
End Sub


Это сообщение отредактировал(а) kapbepucm - 22.10.2007, 09:53


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
kall1sto
Дата 22.10.2007, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Отлично, сначало выскачило пару ошибок, подключил Dao и access либрари, выскачило ошибка на имени базы и таблицы, пробовал по разному, прописал вручную прокатило. Единственный нюанс, если база формата accdb то не пашет, при mdb нормально


Это сообщение отредактировал(а) kall1sto - 22.10.2007, 10:32
PM MAIL   Вверх
kapbepucm
Дата 22.10.2007, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В смысле *.mdb не открывает?


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
kall1sto
Дата 22.10.2007, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Нет *.mdb открывает, вот accdb (2007 access), и прописываю accdb в коде, то не открывает... но по тестил, если стоит в коде mdb, то работает и с открытым файлом accdb... вообщем все в норме спасибо, поставил бы тебе + к репутации, но не могу ... (пишет мало сообщений чтобы добавлять репутацию), моно закрывать топ... Спасибо
PM MAIL   Вверх
kall1sto
Дата 22.10.2007, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



По вышеизложенному почти все понятно... перепробывал все у меня не получается следующее.... мне надо методом пербора (for) найти в первом столбце (вообщем у которого название ID) найти заданный номер (он берется с excel).
PM MAIL   Вверх
kapbepucm
Дата 22.10.2007, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Надо найти заданный номер на Excel'овском листе или в Access'овской таблице?

Это сообщение отредактировал(а) kapbepucm - 22.10.2007, 14:52


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

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

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

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



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


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

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


 




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


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

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