LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Range Exc...
 Тема: Range Excel
 
 15.06.2007 21:08:00
All
4316 сообщения
1-ый


Тема: Range Excel
Нужно решить задачу. Пользователь1 в приложении Access формирует документ Инвойс. Когда Инвойс создан Пользователь1 выгружает его в Excel. Созданный файл служит как печатной формой так и способом передачи информации. Когда все готово Пользователь1 отправляет по E-Mael файл Excel Пользователю2. Пользователь2 проверяет правильность составления документа. Для этого он должен загрузить файл Excel в Access и произвести необходимые махинации. Заказчик настоял на Excel как способе передачи информации.
Проблема в следующем при подключении листа рабочей книги Excel к Access в свойстве таблицы SourceTableName указывается диапазон ячеек рабочего листа (пример tdf.SourceTableName = "A1:K18"). Это работает когда пользователь имеет доступ к коду приложения. Это не есть гуд. Что хотелось бы.
1)В момент подключения таблицы использовать не явно указанные адреса ячеек, а переменные.
Это нужно для того чтобы один пользователь создал документ инвойс, а второй загрузил данные документа отредактировал и отправил документ первому. Способа обмена неудачный. Я предпочел любой другой.
Мысли следующие. Т.к. документ(Инвойс) создается програмно в Access, то можно присвойть первой ячейки в табличной части документа имя(например НачалоТаблицы), а в последней ячейке (например КонецТаблицы). И эти имена использовать как границы диапазона (пример tdf.SourceTableName = "НачалоТаблицы:КонецТаблицы"). Все было бы хорошо, но есть загвоздка. Присвоиваю переменной НачалоТаблицы=WorkSheet("Name").Range("НачалоТаблицы") a дальше сложность. Номер строки узнать могу, номер колонки могу, а адрес не могу. Т.е какая это ячейка А1 или С2. Помогите. А вообще скажите правильным путем иду или нет. Зарание БЛАГОДАРЕН.


P.S. Связанные таблицы Excel
Автор: Lucky от 0:00:00 Источник ...
 15.06.2007 21:08:00
All
4316 сообщения
1-ый


RE: Range Excel
А может быть попробовать использовать другие обозначения в Excel R (Row) и С (Column). Например, R3C2:R17C9.


P.S. Связанные таблицы Excel
Автор: Admin от 0:00:00 Источник ...
 15.06.2007 21:08:00
All
4316 сообщения
1-ый


RE: Range Excel
Спасибо за идею. Направила мысли в нужном направлении. Хотя сделал по другому. Т.к. R3C2:R17C9 работать не захотел. Требовалось указать диапазон ячеек в таком формате "A1:K18". Сделал так.
StartArray = Worksheets(ExcelListName).Range("Нач").Address(RowAbsolute:=False, ColumnAbsolute:=False)
EndArray = Worksheets(ExcelListName).Range("Кон").Address(RowAbsolute:=False, ColumnAbsolute:=False)
ExcelArray = StartArray & ":" & EndArray
TD.Connect = "EXCEL 8.0;DATABASE=" & PathExcelFile & ";TABLE:=" & ExcelListName & ""
TD.SourceTableName = ExcelArray


P.S. Связанные таблицы Excel
Автор: Lucky от 0:00:00 Источник ...
 15.06.2007 21:08:00
All
4316 сообщения
1-ый


RE: Range Excel
Есть еще решение. Например, пример ниже будет выдавать нужную строку A1, K18. Необходимо подставить только номер: Number и указатель числа "1", "18", которые известны.
StrA1 = Chr(Asc("A") - 1 + Number) & "1" ' На выходе даст A1


P.S. Связанные таблицы Excel
Автор: Admin от 0:00:00 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Range Exc...
ПоискПоиск  Список форумовСписок форумов  
right