Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Импорт данных из одного файла excel в другой / 11 сообщений из 11, страница 1 из 1
29.09.2010, 08:38
    #36871432
evggen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из одного файла excel в другой
Добрый день!
Моя задача программно осуществить импорт из одного файла эксель в другой. Один файл является базой данных, а другой пользовательским интерфейсом для работы с данными из базы.
Импорт делаю через MsQuery.
У меня установлен excel 2007. Импорт из файла формата *.xlsx и *.xls работает без проблем.
У коллеги тоже excel 2007, но данные из файла *.xlsx не импортируются. При этом возникает следующая ошибка:

---------------------------
Сбой подключения к драйверу ODBC Excel
---------------------------
Внешняя таблица не имеет предполагаемый формат.
---------------------------
ОК Отмена
---------------------------

Подскажите, пожалуйста, как решить эту проблему. Файл базы данных обязательно должен быть в формате excel 2007

Код для импорта использую следующий:

SourceStr = "ODBC;DSN=Excel Files;DBQ=" & FullName & ";DefaultDir=" & Path & ";DriverId=1046;MaxBufferSize=2048;PageTimeout=5;"

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
SourceStr _
), Array(";")) _
, Destination:=Range("$A$2")).QueryTable
.CommandText = Array( _
"SELECT table1.`№ Позиции`, table1.`№ Материала`, table1.`Наименование материала`, table1.`№ Сметы`, table1.`Наимено" _
, _
"вание сметы`, table1.`Документ/Опросный лист`, table1.`Код оборудования, изделия, материала`, table1.`Завод-изготовитель`, table1.`Е" _
, _
"диницы измерения`, table1.Количество, table1.`Масса единицы`, table1.Примечание" & Chr(13) & "" & Chr(10) & "FROM `" & FullName & "`.table1" _
, " table1" & Chr(13) & "" & Chr(10) & WhereStr _
)
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With


WhereStr - строка, формирующаяся при выборе фильтра пользователем.
FullName -полное имя файла базы данных.
...
Рейтинг: 0 / 0
29.09.2010, 08:40
    #36871434
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из одного файла excel в другой
evggen,

юзайте поиск, тема с особенностями подключения к 2007 была
и юзайте тег SRC
...
Рейтинг: 0 / 0
29.09.2010, 09:05
    #36871462
evggen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из одного файла excel в другой
Уважаемый, Shamanus!
По своей проблеме я не нашел на форуме. Проблема то в том, что у меня все отлично, а у коллеги - нет.
Если не сложно, подскажите еще раз. Может быть не смог найти :(
...
Рейтинг: 0 / 0
29.09.2010, 09:07
    #36871466
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из одного файла excel в другой
evggen,

тут
...
Рейтинг: 0 / 0
29.09.2010, 09:28
    #36871489
evggen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из одного файла excel в другой
Shamaus,
все указанные библиотеки подключены.
Данные не хотят импортироваться даже когда я в ручную это делаю
...
Рейтинг: 0 / 0
29.09.2010, 09:40
    #36871504
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из одного файла excel в другой
evggen,

а где по моей ссылке библиотеки? Моя ссылка на конкретный пост в котором содержится connection string
...
Рейтинг: 0 / 0
29.09.2010, 12:42
    #36871975
evggen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из одного файла excel в другой
ничего не выходит...
С чем может быть связано то, что MsQuery не может импортитировать данные, при ручном импорте,
выдавая ошибку "Внешняя таблица не имеет предполагаемый формат."?
...
Рейтинг: 0 / 0
29.09.2010, 14:01
    #36872248
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из одного файла excel в другой
evggen,

штатный экстрасенс насколько я знаю в отпуске.

Но у меня есть личные подозрения, что "Внешняя таблица не имеет предполагаемый формат." поэтому нужно проверить внешнюю таблицу и уточнить какой формат таки предполагается
...
Рейтинг: 0 / 0
29.09.2010, 14:20
    #36872310
evggen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из одного файла excel в другой
Shamanus,
формат данных *xlsx. С обычным форматом *.xls работает нормально

Самый простой пример файла, с которым отказывается работать во вложении.
...
Рейтинг: 0 / 0
29.09.2010, 16:39
    #36872724
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из одного файла excel в другой
evggen,

у меня из этого файла все читается нормально.

возьмите уже готовый код и не кушайте м....
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim cn As ADODB.Connection
Dim rstTemp As ADODB.Recordset
Dim strSQL As String
Set cn = New ADODB.Connection
cn.Open "DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DriverId=790;ReadOnly=True;" & _
 "DBQ=" & strSourceFile & ";"
Set rstTemp = New ADODB.Recordset
strSQL= "SELECT * FROM `Лист1$`;"
rstTemp.Open strSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText
...
Рейтинг: 0 / 0
30.09.2010, 07:17
    #36873496
evggen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Импорт данных из одного файла excel в другой
Shamanus,
Cпасибо, уже так и переделал.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Импорт данных из одного файла excel в другой / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]