Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Access to Excel (Срочно!!!) / 7 сообщений из 7, страница 1 из 1
06.05.2005, 11:53:11
    #33052309
xax_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access to Excel (Срочно!!!)
Помогите кто может!
Формирую в Access на основе шаблона xls доумент. Все работает пркрасно, но при определенной длине текста, вставляемого в ячейку Excel, возникает Error 2015. Причем это зависит именно от длины текста, а не от количества знаков.
При ручной вставке этого же текста - все OK. Формат ячейки - текстовый. Данные из Access тоже.
Фрагмент кода:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
..................Dim xl As Excel.Application
Dim wb As Workbook, ws As Worksheet
Set rs_1=db.OpenRecordset(....)    
Set xl = CreateObject("Excel.Application")
Set wb = xl.Workbooks.Add("D:\Шаблон.xlt")
Set ws = wb.ActiveSheet
Set db = CurrentDb
.............................

ws.Cells( 10 ,  8 ) = rs_1![Бла-бла-бла]

...........................
...
Рейтинг: 0 / 0
06.05.2005, 12:14:31
    #33052368
Access to Excel (Срочно!!!)
Ты пишешь сначала:

Код: plaintext
Set rs_1=db.OpenRecordset(....)

А потом:

Код: plaintext
Set db = CurrentDb

А надо вообще-то наоборот.

Попробуй так, может поможет:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    Dim rst As DAO.Recordset

    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet

    Set xlApp = New Excel.Application
    Set xlBook = xlApp.Workbooks.Add("D:\Шаблон.xlt")

    Set xlSheet = xlBook.ActiveSheet

    Set rst = CurrentDb.OpenRecordset("Query1", dbOpenDynaset)

    With xlSheet
        .Range("B1") = rst.Fields( 0 )
        ' Или .Range("B1") = rst.Fields("Bla-bla")
    End With
...
Рейтинг: 0 / 0
06.05.2005, 13:03:59
    #33052526
xax_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access to Excel (Срочно!!!)
На счет Set db и Set rs_1 просто описка, спешил.
А вчем разница между
Код: plaintext
ws.Cells( 10 ,  8 ) = rs_1![Бла-бла-бла]
и
Код: plaintext
Range("B1") = rst.Fields("Bla-bla")
, разве это не одно и тоже? (В смысле результата). Но всетаки попробую.
...
Рейтинг: 0 / 0
06.05.2005, 13:56:53
    #33052695
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access to Excel (Срочно!!!)
длина этого текста какая?
средсвами ws.Cells(10, 8) = rs_1![Бла-бла-бла]
можно передать не более 255 символов
...
Рейтинг: 0 / 0
06.05.2005, 14:23:45
    #33052800
Access to Excel (Срочно!!!)
На пальцах трудно добиться правильного результата. Неплохо было бы примерчик с базой.

Еще интересен следующий момент.

xax_nvПричем это зависит именно от длины текста, а не от количества знаков

А разве длина текста формируется не из количества знаков?
...
Рейтинг: 0 / 0
06.05.2005, 14:31:09
    #33052832
Access to Excel (Срочно!!!)
И еще хочу добавить.

Раз не получается передать данные через Recordset, можно воспользоваться другим способом, например, через буфер обмена.

Об этих способах можешь прочитать тут .
...
Рейтинг: 0 / 0
06.05.2005, 20:03:44
    #33053654
xax_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access to Excel (Срочно!!!)
Спасибо всем, кто откликнулся. Действительно, все дело в том, что средсвами ws.Cells(10, 8) = rs_1![Бла-бла-бла] можно передать не более 255 символов. А на счет "длины" текта сбило с толку то, что при
Код: plaintext
 LCase(rs_1![Бла-бла-бла])
все работало, вот и решил, что это связано с длиной текта в см или в мм и т.д. Выход такой: присвоить значение поля рекордсета како-либо переменной, а затем ячейке Excel присвоить значение этой переменной. Помагает так же
Код: plaintext
 LTrim(rs_1![Бла-бла-бла])
Главное, чтобы не напрямую рекордсет-ячейка Excel. Еще раз всем спасибо.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Access to Excel (Срочно!!!) / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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