powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ФАК: работа с Экселем
9 сообщений из 34, страница 2 из 2
ФАК: работа с Экселем
    #35271144
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот так приспособился открывать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Dim xls As String:      xls = CurrentProject.Path & "\Книга1.xls"
Dim lst As String:      lst = "Лист1"

Dim XL As Excel.Application
Dim WB As Excel.Workbook
Dim SH As Excel.Worksheet

Set XL = CreateObject("Excel.Application")

Set WB = XL.Workbooks.Open(xls)
If Err.Number <>  0  Then         'если такой проверки я не делаю, то excel остаётся в памяти, в случае ошибки открытия
    XL.Quit
    Set XL = Nothing
End If

Set SH = WB.Worksheets(lst)
If Err.Number <>  0  Then
    WB.Close
    XL.Quit
    Set XL = Nothing
End If

здесь цикл или что-то ещё

'   WB.Save
    WB.Close
    
    XL.Quit
    Set XL = Nothing
а вот свойство MultiUserEditing и метод ExclusiveAccess ещё ни разу не использовал
...
Рейтинг: 0 / 0
ФАК: работа с Экселем
    #35272633
Уважающий ВсехВас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To klen
"Когда в одной колонке есть значения и текстовые и числовые и т.д., запросы ADO работает неправильно."
Если не трудно,если под рукой, НЕ СПЕША ,отбросив лишнее из своей программы,... пример к вышесказанному.(Максимум комментариев, если не трудно).
Не в коем случае не из чувства неверия к Вам. (Из личных соображений.)
Заранее благодарен.
...
Рейтинг: 0 / 0
ФАК: работа с Экселем
    #35272655
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Уважающий ВсехВасTo klen
"Когда в одной колонке есть значения и текстовые и числовые и т.д., запросы ADO работает неправильно."
Если не трудно,если под рукой, НЕ СПЕША ,отбросив лишнее из своей программы,... пример к вышесказанному.(Максимум комментариев, если не трудно).
Видимо, речь о том, что Аксесс распознаёт тип полей Экселя сам на основании данных в первой строке. И иногда делает это не так, как хотелось бы.
...
Рейтинг: 0 / 0
ФАК: работа с Экселем
    #35272676
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
How To Use ADO with Excel Data from Visual Basic or VBA


A Caution about Mixed Data Types

As stated previously, ADO must guess at the data type for each column in your Excel worksheet or range. (This is not affected by Excel cell formatting settings.) A serious problem can arise if you have numeric values mixed with text values in the same column. Both the Jet and the ODBC Provider return the data of the majority type, but return NULL (empty) values for the minority data type . If the two types are equally mixed in the column, the provider chooses numeric over text .

For example:

• In your eight (8) scanned rows, if the column contains five (5) numeric values and three (3) text values, the provider returns five (5) numbers and three (3) null values.

• In your eight (8) scanned rows, if the column contains three (3) numeric values and five (5) text values, the provider returns three (3) null values and five (5) text values.

• In your eight (8) scanned rows, if the column contains four (4) numeric values and four (4) text values, the provider returns four (4) numbers and four (4) null values.

As a result, if your column contains mixed values, your only recourse is to store numeric values in that column as text, and to convert them back to numbers when needed in the client application by using the Visual Basic VAL function or an equivalent.

To work around this problem for read-only data, enable Import Mode by using the setting "IMEX=1" in the Extended Properties section of the connection string. This enforces the ImportMixedTypes=Text registry setting. However, note that updates may give unexpected results in this mode. For additional information about this setting, click the article number below to view the article in the Microsoft Knowledge Base:
194124 (http://support.microsoft.com/kb/194124/EN-US/) PRB: Excel Values Returned as NULL Using DAO OpenRecordset
...
Рейтинг: 0 / 0
ФАК: работа с Экселем
    #35272826
Уважающий ВсехВас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.zmey.1977.ru/Access_To_Excel_Ru.htm
...
Рейтинг: 0 / 0
ФАК: работа с Экселем
    #35272916
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч Уважающий ВсехВасTo klen
"Когда в одной колонке есть значения и текстовые и числовые и т.д., запросы ADO работает неправильно."
Если не трудно,если под рукой, НЕ СПЕША ,отбросив лишнее из своей программы,... пример к вышесказанному.(Максимум комментариев, если не трудно).
Видимо, речь о том, что Аксесс распознаёт тип полей Экселя сам на основании данных в первой строке. И иногда делает это не так, как хотелось бы.Да, именно про этот случай, когда ADO возвращает, в некоторых записях/полях, пустые значения
а на самом-то деле значения в excel-е есть, только другого типа
...
Рейтинг: 0 / 0
ФАК: работа с Экселем
    #35273107
Уважающий ВсехВас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приношу извинения.Поздно было,устал, думал Access ->Excel
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ФАК: работа с Экселем
    #39365133
VitAks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А тут вот, в нашем же факе, 5579496
есть такое, но тоже не работает

klen_вот так приспособился открывать
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Dim xls As String:      xls = CurrentProject.Path & "\Книга1.xls"
Dim lst As String:      lst = "Лист1"

Dim XL As Excel.Application
Dim WB As Excel.Workbook
Dim SH As Excel.Worksheet

Set XL = CreateObject("Excel.Application")

Set WB = XL.Workbooks.Open(xls)
If Err.Number <> 0 Then         'если такой проверки я не делаю, то excel остаётся в памяти, в случае ошибки открытия
    XL.Quit
    Set XL = Nothing
End If

Set SH = WB.Worksheets(lst)
If Err.Number <> 0 Then
    WB.Close
    XL.Quit
    Set XL = Nothing
End If

здесь цикл или что-то ещё

'   WB.Save
    WB.Close
    
    XL.Quit
    Set XL = Nothing


а вот свойство MultiUserEditing и метод ExclusiveAccess ещё ни разу не использовал
...
Рейтинг: 0 / 0
ФАК: работа с Экселем
    #39365365
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VitAks,

А что не работает-то конкретно? Код правильный. Проверьте наличие файла, листа в нем и то, что не открыт другой программой.

А вообще код, конечно, атас. Обычно используют On Error GoTo, а не проверяют на наличие ошибки после каждой команды.
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ФАК: работа с Экселем
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (2): Анонимы (1), Yandex Bot 4 мин.
Пользователи онлайн (7): Анонимы (5), Yandex Bot 4 мин., Bing Bot 8 мин.
x
x
Закрыть


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