|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
Не уверен в том, что создаю топик в нужном форуме. Если что, прошу простить и переместить:) Есть таблица с данными в SQL, выкатил ее из Кроноса. Она выглядит так: Системный номер Наименование товара Стоимость222 Настольный компьютер 30 000 руб.223 Колонки 500 руб. Данную таблицу я привязал к форме access (табличная форма). Так вот, можно ли из формы access, при нажатии на поле(к примеру: по двойному клику) с системным номером переходить в Кронос на соответствующую запись? Как лучше это сделать? Через гиперссылку или с помощью VBA. К сожалению, в нете ничего подходящего не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 12:51 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
eric555, Я бы делал так - выгружал системный номер в промежуточный текстовый файл, в Кроносе создал форму ввода и запрос по образцу, в форме ввода на обработку события открытия формы повесил код, в котором бы считывался из промежуточного текстового файла системный номер и присваивался переменной, далее там же вызывался ранее созданный запрос по образцу , которому в качестве параметра присваивалось бы значение этой переменной, соответственно, при вызове Кроноса c помощью Shell с параметром командной строки startform (со ссылкой на созданную форму ввода) из процедуры VBA формы Access в Кроносе открывалась бы искомая запись. Вот , собственно говоря, и всё. Должно получиться. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2014, 19:30 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
Ну, я теоретически вас понял! Только вот выгружать в текстовый файл все данные не хочу. Если только не брать конкретное значение(системный номер) из поля формы и сразу передавать его в текстовый файл. Просто выгружать все записи из аксесс не нужно, а только конкретную запись, т.е. конкретный системный номер в текстовый файлик. А можно пример: guest_rusimportпри вызове Кроноса c помощью Shell с параметром командной строки startform ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 13:34 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
eric555Ну, я теоретически вас понял! Только вот выгружать в текстовый файл все данные не хочу. Если только не брать конкретное значение(системный номер) из поля формы и сразу передавать его в текстовый файл. Просто выгружать все записи из аксесс не нужно, а только конкретную запись, т.е. конкретный системный номер в текстовый файлик. А можно пример: guest_rusimportпри вызове Кроноса c помощью Shell с параметром командной строки startform конечно же, я имел ввиду выгружать только системный номер конкретной записи (которую надо посмотреть) выдержка из хелпа кроноса- "Параметр /startform задает оконную форму, которая должна быть открыта после запуска ИСУБД «CronosPro». Синтаксис: /startform=<идентификатор_формы> Для управляющей формы <идентификатор_формы> – это ее номер. Для входной формы <идентификатор_формы> – это строка в формате <НомерФормы>_<МнемокодБазы>. Пример использования: Cronos.exe /startform=1 Cronos.exe -startform:1_ЛЦ " т.е. создаете bat файл , например cro.bat, туда "засовываете" строку вызова кроноса - Cronos.exe -startform:1_ЛЦ в access вызываете этот батник через shell shell ("cmd /c <путь к батнику>\cro.bat") это , я думаю , вы сделаете без проблем, другое дело - вам необходимо будет немного попрограммировать в Кроносе, и тут надо будет изучить его язык "заклинаний" ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2014, 14:09 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
guest_rusimport, Дико извиняюсь, но после очень долгого перерыва, решил продолжить данную тему:)) В принципе, все это я смогу реализовать, но мне нужно, чтобы кронос не открывался каждый раз в новом окне! Это важно! Батник, если я не ошибаюсь, именно так и делает. Команду для перехода к открытому окну не нашел:(( Надо, чтобы работа происходила между открытым аксессом и уже открытым (запущенным) кроносом, то есть, как бы взаимодействуя друг с другом. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2016, 20:19 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
eric555guest_rusimport, Дико извиняюсь, но после очень долгого перерыва, решил продолжить данную тему:)) В принципе, все это я смогу реализовать, но мне нужно, чтобы кронос не открывался каждый раз в новом окне! Это важно! Батник, если я не ошибаюсь, именно так и делает. Команду для перехода к открытому окну не нашел:(( Надо, чтобы работа происходила между открытым аксессом и уже открытым (запущенным) кроносом, то есть, как бы взаимодействуя друг с другом. Ну, в принципе, можно. В примере на полэкрана растянул Кронос , на полэкрана - Access, в общий модуль акса запихнул Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
на двойной клик по системному номеру в аксе повесил Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
и , вообщем, всё работает (но есть маленький затык - строчку sendkeys "%{v} приходиться править каждый раз при открытии акцесс , ну, типа , добавить скобки , потом сразу их удалить, только тогда отрабатывает как надо... почему так происходит - не разобрался :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 21:14 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
guest_rusimportи , вообщем, всё работает В Вас я и не сомневался! Действительно все работает! Только для новых аксесов в общем модуле добавляем "PtrSafe" перед "Function". guest_rusimportстрочку sendkeys "%{v} приходиться править каждый раз На счет скобок в "SendKeys" не понял. У меня нет проблем с этим. Закрываю запрос в Кроносе, перехожу в аксес, снова дабл клик по полю и все пашет. И все же, можете в двух словах объяснить как работает последовательность имитации нажатий "SendKeys"? В кодах ничего про Кронос не вижу, только отсылка на "Primer - Старый формат (малая модель)"... Как вообще запрос формируется в Кроносе? И это вообще запрос по образцу? Или обычный? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 23:37 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
guest_rusimport, Кажись, я понял все! Find Window " Primer - Старый формат (малая модель) " - это и есть поиск окна с текущим банком! Дальше, банальная передача Кроносу имитации нажатия "горячих" клавиш с заранее взятым системником из аксесса))) Все гениально и просто! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2016, 23:41 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
eric555, да, всё верно... Кронос я знавал , когда его ещё звали Персей в одной очень серьезной организации, поэтому , видимо и проблем не возникло :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2016, 00:08 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
guest_rusimport, Ну, насколько я знаю, бывшие выходцы из одной очень серьезной организации его и придумали:) В понедельник опробую все на работе, отпишу если что. Еще раз огромное спасибо за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2016, 00:21 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
eric555guest_rusimport, Ну, насколько я знаю, бывшие выходцы из одной очень серьезной организации его и придумали:) было такое дело ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2016, 00:29 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
guest_rusimport, А как быть, если Кронос свернут в панель задач? Можно ли его как-то активизировать без минимизации и максимизации окна? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2016, 12:30 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
eric555guest_rusimport, А как быть, если Кронос свернут в панель задач? Можно ли его как-то активизировать без минимизации и максимизации окна? в общий модуль добавить Код: vbnet 1. 2.
и в событии дабл клик Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2016, 13:21 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
guest_rusimport, Ну вот, теперь другое дело! Осталось опробовать на работе. Бооольшое-пребольшое спасибо:) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2016, 13:37 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
guest_rusimport, К сожалению, на работе возникли проблемы со скобками:(( И еще у Кронос Плюс нет кнопки или горячей клавиши - просмотреть запрос. Поставил ее сам в настройках кроноса, но до нее команда не доходит. Нельзя ли задержку поставить между sendkeys 'ами? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 10:21 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
guest_rusimport, Первая проблема понятна! Не нужно скобки переписывать, перед двойным кликом раскладка клавиатуры должна быть английской! Как бы сделать так, чтобы перед кликом раскладка была автоматом на Английском? И еще нужна задержка после выполнения запроса, но перед нажатием на кнопку "показать результаты запроса". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 12:34 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
Сделал так: В модуль: Код: vbnet 1.
В код: Код: vbnet 1.
- число в миллисекундах! Это нужно вставить между командой "выполнить" и "показать запрос" (предварительно заданное в параметрах горячих клавиш). Просто необходимо для старого Кроноса(CronosPlus) Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 14:21 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
guest_rusimport, Вообщем, осталось два момента, которые никак не могу решить. Это раскладка клавиатуры и почему-то при выполнении кода, гаснет клавиша Num lock. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 15:27 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
eric555, раскладка 13496926 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 15:36 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
eric555, NumLock 1976125 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 15:38 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
guest_rusimport, Вот, с раскладкой теперь все норм! С num look решил не заморачиваться пока, тупо включаю его в конце команд:) Оказалось не все так просто с этим говнокроносом, если окно просмотра развернуто, то меняется название главного окна! Следующий дабл клик уже не идет, findwindow уже его не видит. Есть варианты обхода? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 19:11 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
eric555, у окна Кроноса есть класс окна: Afx:00400000:8:00010003:00000000:000504E9 (во всяком случае у меня такой, определить его не сложно), поэтому FindWindow можно запускать так Код: vbnet 1.
класс окна в отличие от заголовка окна при работе приложения , по идее, меняться не должен код для определения класса окна Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 21:19 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
guest_rusimportкод для определения класса окна Что-то не пойму, это чтобы узнать какой у меня класс окна? Как ее вызвать? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 21:41 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
eric555, класс окна, по идее, он не зависит от компа, он один для окна приложения на любом компе определить его не сложно, запихните код выше в общий модуль своей базы access и добавьте строки в свой код Код: vbnet 1. 2. 3. 4. 5.
когда жмякните на системный номер в аксе и код отработает, перейдите в редактор VBA (Alt+F11) в базе access и в окне Immediate увидите название класса окна ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 21:58 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
guest_rusimport, Кстати, у нас КроносПлюс сетевая версия, у всех класс окна, скорее всего, будет разный... Наверное, этот способ не пойдет Да чтож так все сложно.... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 22:00 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
eric555, не зная, что такое класс окна, уже делаешь выводы... мда уж ты сначала попробуй , а потом уж будешь выводы делать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 22:09 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
guest_rusimportне зная, что такое класс окна, уже делаешь выводы... мда уж Так я и не претендую на крутого знатока VBA. guest_rusimportты сначала попробуй , а потом уж будешь выводы делать :) Попробовал, работало! Закрыл Кронос, потом снова открыл, даббл-клик перестал работать, проверил, класс поменялся... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 22:13 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
eric555, да, зачем то меняют класс окна при каждом запуске приложения , встречаюсь с таким впервые... тогда надо идти сложным путем - на таймер формы access вешать findwindow по заголовку при запуске Кроноса и каждый раз определять класс окна и потом на протяжении сеанса уже оперировать с ним, ну, думаю , идея понятна ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 22:41 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
guest_rusimport, Да, я так и подумал, что посоветуете его ловить... Но, игра не стоит свеч! Скажу всем, чтобы внутренние окна Кроноса не разворачивали и пес с ним... Спасибо за помощь! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2016, 22:44 |
|
Переход к записи CronosPlus по системному номеру из формы Access
|
|||
---|---|---|---|
#18+
eric555, я тут на досуге подумал - можно сделать проще в общий модуль Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
и дабл клик меняем Код: vbnet 1. 2. 3. 4.
при таком раскладе должно работать и с развернутыми внутренними окнами Кроноса ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 00:12 |
|
|
start [/forum/topic.php?all=1&fid=45&tid=1613090]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 341ms |
total: | 491ms |
0 / 0 |