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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Access2003, обработка событий в OWC10
 
 автор: lvi15   (15.03.2007 в 09:50)   личное сообщение
 
 

Здравствуйте Народ!!!
Вопрос и простенький и сложный -
Размещаю на форме компонент OWC10.SpreadSheet (то бишь аналог Excel), усе класно, красиво, но событий у этого компонента на форме всего с гулькин хрен - вошли вышли получили потеряли фокус
Вопрос - как перехватывать в Аксесе события в самом OWC - типа изменили ячейку, выделыли ячейку и т.д.
То есть получить доступ к обработчикам событий содержимого листа Ексел в компоненте???
= С Уважением Л. Владимир

  Ответить  
 
 автор: KrukVN   (15.03.2007 в 10:18)   личное сообщение
 
 

К событиям нужно не через форму конструктора ломиться, а через редактор VBA

  Ответить  
 
 автор: lvi15   (15.03.2007 в 10:30)   личное сообщение
 
 

Ну это я догадываюсь, открываю браузер объектов - нахожу там свое OWC на форме - а дальше то как, не пускает, То есть теоретически должна быть возможность подцепить код что то типа - Измение ячейки листа в Excel, причем у него есть входные параметры - активная ячейка и еще че-то.
Но в Excel - этот код цепляется в браузере объектов на Лист, а здесь то я максимум вижу ссылку на имя объекта в форме и усе...

  Ответить  
 
 автор: Explorer   (15.03.2007 в 10:54)   личное сообщение
 
 

найдите описание методов и свойств этого элемента - обращайтесь так как там написано...
если элемент в системе не зарегистрирован - регистрируйте

  Ответить  
 
 автор: lvi15   (15.03.2007 в 11:08)   личное сообщение
 
 

Элемент в системе зарегестрирован,
Уточнение вопроса - Есть ли из Accesa доступ к событиям этого компонента (как я уже говорил - изменение ячейки, выделение, изменение цвета и т.д. - в зависимости от этого должны вноситься изменения в основную БД)?
И если есть, то как я должен написать то, что в коде VB в файле Excele выглядит, например, так:
Sub Worksheet_Change(ByVal Target As Range)
.......................
End Sub /это событие изменение ячейки/
В форме Access с OWC такой код не воспринимаетсгя. Как его сделать доступным в Accesse для правильной обработки?
В Net-программировании - там кажись до него достучаться можно, а можно ли это сделать в Access?

  Ответить  
 
 автор: KrukVN   (15.03.2007 в 11:02)   личное сообщение
8 Кб.
 
 

Так я так и не понял, Вы пробовали вот так искать события?

  Ответить  
 
 автор: lvi15   (15.03.2007 в 11:17)   личное сообщение
 
 

А как их искать - открываю форму в конструкторе, вешаю на него компонент OWC10, открываю свойства этого компонента - и смотрю на вкладку События - а их там ну очень мало - зайти выйти и по сути все,
Где еще они могут быть или как их открыть/зарегестрировать или как их повесить в программном коде???
Сам компонент зарегестрирован в системе

  Ответить  
 
 автор: Bellerofont   (15.03.2007 в 12:12)   личное сообщение
 
 

надо объявить для контрола (компонент OWC10) переменную с WithEvents

  Ответить  
 
 автор: lvi15   (15.03.2007 в 12:46)   личное сообщение
 
 

Спасибо, это уже ближе, Вот выдержка текста программного модуля

Option Compare Database
Option Explicit
Private owcSS As OWC10.Spreadsheet
Private Sub Form_Load()
Set owcSS = Me.owcSpreadsheet.Object
End Sub
......................
И где и как это объявление может быть расположено?

  Ответить  
 
 автор: lvi15   (15.03.2007 в 14:03)   личное сообщение
 
 

Сделал так
Option Compare Database
Option Explicit
Private WithEvents owcSS As OWC10.Spreadsheet
Private Sub Form_Load()
Set owcSS = Me.owcSpreadsheet.Object
End Sub
Private Sub owcSS_Workbook_Activate()
MsgBox "Вошли"
End Sub
Увы - не вошло, Workbook_Activate() - событие книги Excel

  Ответить  
 
 автор: KrukVN   (15.03.2007 в 14:16)   личное сообщение
 
 

Иногда человек проявляет удивительное упрямство в нежелании проглотить, то что ему разжевали!
Я Вам давно ответил. Неужели так трудно открыть редактор VBA, и посмотреть там, а не на вкладке 'События' формы конструктора?
И незачем эти события самому угадывать! Они уже есть и все прописаны, остается только из списка выбрать!

  Ответить  
 
 автор: lvi15   (15.03.2007 в 15:14)   личное сообщение
 
 

Мужик - ты с Белоруссии (я так понял), а я хохол упертый - все действительно так, как ты сказал,
зашел в редактор, слева вверху выделил свой гребаный owcss, а в правом списке открылись все события и объявленные и необъявленные в конструкторе - и усе заработало! Трахался с этим дня четыре, сделал через таймер формы, но
это было конечно не то, а теперь все стало супер!!! СПАСИБО!!!

  Ответить  
 
 автор: KrukVN   (15.03.2007 в 15:38)   личное сообщение
 
 

Ну наконец-то! Уря! Я тоже рад

  Ответить  
 
 автор: osmor   (15.03.2007 в 20:28)   личное сообщение
 
 

Вообще на сайте MS есть документация по этим контролам с описанием событий.
А еще если поставить сслыку на библиотеку, то в редакторе кода при нажатии F2 можно все увидеть

  Ответить  
 
 автор: Explorer   (15.03.2007 в 20:55)   личное сообщение
 
 

боян :)))

  Ответить  
 
 автор: lvi15   (15.03.2007 в 11:29)   личное сообщение
 
 

То есть суть задачи очень проста -
Создать форму поместить на ней OWC10.SpredSheet
и какой то код, типа:
Sub Измнение ячейки
MsgBox "Изменили"
End Sub
Sub Выделение ячейки или области
MsgBox "Выделили"
End Sub
Открываем форму - вводим в ячейку наприме 1 и получаем сообщение Изменили
Выделяем ячейки - получаем сообщение Выделили

И по сути весь вопрос - как оно должно правильно писаться -
Sub ИЗМЕНЕНИЕ ЯЧЕЙКИ
Sub ВЫДЕЛЕНИЕ ЯЧЕЙКИ ИЛИ ОБЛАСТИ,
если в Accese это вообще возможно

  Ответить  
 
 автор: KrukVN   (15.03.2007 в 12:46)   личное сообщение
 
 


А как их искать - открываю форму в конструкторе, вешаю на него компонент OWC10, открываю свойства этого компонента - и смотрю на вкладку События - а их там ну очень мало - зайти выйти и по сути все,

Ну что же Вы так убиваетесь?
Я же гавару:
Нинада через форму свойств конструктора пытаться найти событие для нестандартного контрола!!!
Откройте редактор VBA (Alt+F11) и там, как я показывал ранее (см. скрин неск. пост выше) шукайте события у этого инородного контрола!

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