Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
Есть 2 программы (exe): одна и другая на VB6 с СУБД MS Access2000. Вторая программа - это, по сути, одна специфическая форма, которая пишет данные в ту же БД. Вопрос: как из второй программы после нажатия кнопки ОК и сохранения данных в БД прорефрешить таблицу в первой программе? Какие есть варианты? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 13:09 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
вы про IPC или что-то другое хотите услышать? ЗЫ самый простой способ это нажать кнопку и вызвать Requery у Recordset ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 13:11 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
Ваш вопрос наверное в общем случае должен звучать так: как организовать событие в базе MSAccess и поймать его на ADO (?) клиенте. В Access пожалуй только либо периодический опрос со второго клиента, либо внешние программы, способные обмениваться событиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 13:12 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
Shocker.ProВ Access пожалуй только либо периодический опрос со второго клиента, либо внешние программы, способные обмениваться событиями. Все зависит от организации сети. Либо они могут установить между собой связь, если их две, как вы указали, либо на сервере организовывается некий сервис, к которому цепляются все клиенты, скажем, по TCP на определенный порт, и получают уведомления в виде рассылки или персональные. Такая аська, грубо говоря. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 13:19 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
я уже спросил про IPC. хочет про него услышать автор или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 13:21 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 13:24 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
Что такое IPC я не знаю. Специальных программ не хочется ставить, чтобы не усложнять инфраструктуру приложения. Через специально созданный для данной цели COM компонент (dll) с методом RefreshActiveTable можно как-то сделать? Может ли чем то помочь функции обратного вызова (оператор AddressOf)? Может ли приложение 2 посредством API послать основному окну приложения 1 какое-то стандартное сообщение (типа, например, свернуть), которое будет являться неким знаком для приложения 1, что надо сделать рефреш активной таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 13:58 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
Игорь1973, так у вас два приложения на одном компе что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 14:00 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 14:05 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
Да, обе программы на одном компе, но файл БД лежит на другом компе (на файловом сервере). Причем приложение 2 вызывается из приложения 1 по нажатии пользовательской кнопки. (Т.е. можно начинать некий "опрос" чего-нибудь именно при этом действии.) Я только-что придумал, возможно, подходящий вариант: писать в специальную настроечную таблицу БД (где много всяких разных переменных хранится) специальную метку. Приложение 1 прочитает эту метку, выполнит рефреш и тут же удалит метку и прекратит опрос. DDE - это интересно. Спасибо, Shocker.Pro. Наверное, такие свойства и для грида можно задавать (и, надеюсь, в рантайме тоже). Интересно, не будет ли лишних перегрузок по сети при этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 14:18 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
Игорь1973Да, обе программы на одном компе, но файл БД лежит на другом компе (на файловом сервере). Причем приложение 2 вызывается из приложения 1 по нажатии пользовательской кнопки . (Т.е. можно начинать некий "опрос" чего-нибудь именно при этом действии.) Я только-что придумал, возможно, подходящий вариант: писать в специальную настроечную таблицу БД (где много всяких разных переменных хранится) специальную метку. Приложение 1 прочитает эту метку, выполнит рефреш и тут же удалит метку и прекратит опрос. DDE - это интересно. Спасибо, Shocker.Pro. Наверное, такие свойства и для грида можно задавать (и, надеюсь, в рантайме тоже). Интересно, не будет ли лишних перегрузок по сети при этом. так и передайте признак обновления таблицы или ещё что вам нужно через параметр командной строки, а во 2-м приложении получите через Command$ и обработаете ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 14:22 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
Игорь1973Да, обе программы на одном компе, но файл БД лежит на другом компе (на файловом сервере). Причем приложение 2 вызывается из приложения 1 по нажатии пользовательской кнопки. (Т.е. можно начинать некий "опрос" чего-нибудь именно при этом действии.) Если две программы на одном компе, то база тут просто не причем - просто лишняя информация. Нужно передать событие от одного приложения к другому, все. Игорь1973Я только-что придумал, возможно, подходящий вариант: писать в специальную настроечную таблицу БД (где много всяких разных переменных хранится) специальную метку. Приложение 1 прочитает эту метку, выполнит рефреш и тут же удалит метку и прекратит опрос. Это метод называется "опрос", я про этот вариант сказал еще в первом сообщении. Но это жрет ресурсы и трафик. Игорь1973DDE - это интересно. Спасибо, Shocker.Pro. Наверное, такие свойства и для грида можно задавать (и, надеюсь, в рантайме тоже). Интересно, не будет ли лишних перегрузок по сети при этом. А причем тут сеть, если приложения опять же на одном компе? Konst_Oneтак и передайте признак обновления таблицы или ещё что вам нужно через параметр командной строки, а во 2-м приложении получите через Command$ и обработаете Тогда вообще какая-то ерунда получается. Зачем создавать какое-то событие, если запуск приложения само по себе событие, а нужные параметры можно и так из базы получить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 14:25 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro Konst_Oneтак и передайте признак обновления таблицы или ещё что вам нужно через параметр командной строки, а во 2-м приложении получите через Command$ и обработаете Тогда вообще какая-то ерунда получается. Зачем создавать какое-то событие, если запуск приложения само по себе событие, а нужные параметры можно и так из базы получить. это я предположил, может автор запускает программу не один раз и хочет видеть разные результаты при каждом запуске. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 14:28 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
автортак и передайте признак обновления таблицы или ещё что вам нужно через параметр командной строки, а во 2-м приложении получите через Command$ и обработаете Нет, вот так нельзя. В приложении 1 пользователь нажимает кнопку на тулбаре, вызывается приложение 2, где форма с элементами для ввода данных и кнопка "ОК". Надо, чтобы по нажатию кнопки "ОК", помимо того, что делает собственно приложение 2 (запись в БД), еще происходил бы рефреш активной таблицы в приложении 1. При нажатии на кнопку ОК никаких exe не запускается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 14:29 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
Игорь1973автортак и передайте признак обновления таблицы или ещё что вам нужно через параметр командной строки, а во 2-м приложении получите через Command$ и обработаете Нет, вот так нельзя. В приложении 1 пользователь нажимает кнопку на тулбаре, вызывается приложение 2, где форма с элементами для ввода данных и кнопка "ОК". Надо, чтобы по нажатию кнопки "ОК", помимо того, что делает собственно приложение 2 (запись в БД), еще происходил бы рефреш активной таблицы в приложении 1. При нажатии на кнопку ОК никаких exe не запускается. как всё запутано DDE, COM-сервер, файл, реестр, pipe и тд и тп выбирайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 14:31 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
на худой конец можете в совей общей базе завести таблицу событий и в неё писать что нужно делать, а каждая из программ её будет по таймеру опрашивать и выполнять требуемое действие. ну и писать туда когда надо будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2010, 14:33 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
Нафиг все эти DDE и прочее, на одной проге поставьте таймер и читайте данные об обновлении из реестра. В реестр в VB данные заносятся очень просто SaveSetting, GetSetting. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2010, 18:05 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
ak787Нафиг все эти DDE и прочее, на одной проге поставьте таймер и читайте данные об обновлении из реестра. Все зависит от необходимого времени реакции. Если 10 сек устраивает - можно и таймер, если нужно 0.3-0.5 сек - увидите некоторую ненулевую постоянную загрузку процессора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2010, 18:08 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
Может всё же динамический курсор поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.05.2010, 10:24 |
|
||
|
Как из одной VB6 программы прорефрешить таблицу в другой?
|
|||
|---|---|---|---|
|
#18+
если время процессора критично, тогда Api можно функцией SendMessage щелкнуть по кнопке на другой форме... 'форма которая отправляет сообщение Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long Private Const WM_LBUTTONDOWN = &H201 Private Sub Command2_Click() hWR = FindWindow(vbNullString, "Resiver") 'Resiver - это Caption формы которой мы посылаем сообщение hBut = FindWindowEx(hWR, 0, vbNullString, "ResiverUpdateButton") 'ResiverUpdateButton - это Caption кнопки которую мы щелкаем If hBut > 0 Then Call SendMessage(hBut, WM_LBUTTONDOWN, 0, 0) End Sub 'форма которая принимает сообщение Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 'делаем что хотим End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2010, 02:31 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36613013&tid=2159801]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 140ms |

| 0 / 0 |
