Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Переполнение числового поля при копировании из Excel
 
 автор: Scorpi   (07.06.2008 в 09:52)   личное сообщение
 
 

Access из пакета 2003

Хочу скопировать из Excel (в файле 73 столбца с названиями как в табл import2, строк около 4000 или чуть больше

k = xlBook.ActiveSheet.Cells.SpecialCells(xlLastCell).Row
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "import", nm, True, "A1:BU" & k - 1

На выделенной строке выдает ошибку, что "Переполнение числового поля"
если вместо "A1:BU" & k - 1 ставлю "A1:BU9" все отрабатывает, а вот меняя 9 на 10 опять вылетает ошибка... почему?

неужели загонять в цикл и вставлять по 8 строк??? так ведь не должно быть

  Ответить  
 
 автор: Bellerofont   (07.06.2008 в 10:20)   личное сообщение
 
 

Дык, может проблема в том, какие значения хранятся в этом столбце (BU10) и какой тип соответствующего поля в Access? Отдельно этот столбец удается импортировать?

  Ответить  
 
 автор: Scorpi   (07.06.2008 в 10:33)   личное сообщение
 
 

в столбце BU хранится или нет слово "критично"
а "A1:BU9" насколько я поимаю выделяет диапазон из 9 строк и по столбцам от А до BU данные в этом диапазоне разные и числа и текст

  Ответить  
 
 автор: Bellerofont   (07.06.2008 в 11:53)   личное сообщение
 
 

Да, конечно, про столбец я сглупил из-за невнимательности, ошибка происходит, при добавлении 10-й строки. Так? Но смысл моего вопроса не меняется, позволит ли Access импортировать только одну эту строку?

  Ответить  
 
 автор: Scorpi   (07.06.2008 в 12:18)   личное сообщение
 
 

можно импортировать эту строку, но предварительно нужно удалить то что уже импортировалось из файла, иначе ругается что столбцов нет (название указано в первой строке, а диапазон задается строки с 9)...
в общем победила изменением строки на
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "import2", nm, False, "A2:BU" ' & k - 1 и обозвав столбцы в табличке как f1, f2 и т.д (все равно промежуточная)
Но все-таки интересно из-за чего не работал 1 вариант...

  Ответить  
 
 автор: Scorpi   (20.06.2008 в 06:09)   личное сообщение
 
 

выяснилась новая деталь данной ошибки...
если табличка в которую втавляются данные не присоединенная, то все отрабатывает хорошо, если же присоединенная, то выдает ошибу... (По одной строчке вставляет без проблем)

Еще выяснила глюк... во времен табличке куда копируется из excel не все числовые поля копируются ((( часть копируется, а часть нет. копирую с помощью:
sql = "INSERT INTO импорт4 (f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26, f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47, f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f60, f61, f62, f63, f64, f65, f66, f67, f68, f69, f70, f71) "
sql = sql & " SELECT * FROM [$A6:BS" & k - 1 & "] IN '" & nm & "'[Excel 8.0;HDR=No]; "
CurrentDb.Execute (sql)

SELECT * FROM [$A6:BS" & k - 1 & "] IN '" & nm & "'[Excel 8.0;HDR=No]; почему-то совсем не выбирает данные из некоторых столбцов, хотя данные есть и столбцы включены в интервал :(((

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList