powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как из одной VB6 программы прорефрешить таблицу в другой?
20 сообщений из 20, страница 1 из 1
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36612758
Игорь1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 2 программы (exe): одна и другая на VB6 с СУБД MS Access2000.
Вторая программа - это, по сути, одна специфическая форма, которая пишет данные в ту же БД.
Вопрос: как из второй программы после нажатия кнопки ОК и сохранения данных в БД прорефрешить таблицу в первой программе? Какие есть варианты?
Спасибо.
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36612761
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы про IPC или что-то другое хотите услышать?

ЗЫ
самый простой способ это нажать кнопку и вызвать Requery у Recordset
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36612766
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваш вопрос наверное в общем случае должен звучать так: как организовать событие в базе MSAccess и поймать его на ADO (?) клиенте.

В Access пожалуй только либо периодический опрос со второго клиента, либо внешние программы, способные обмениваться событиями.
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36612793
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProВ Access пожалуй только либо периодический опрос со второго клиента, либо внешние программы, способные обмениваться событиями.

Все зависит от организации сети. Либо они могут установить между собой связь, если их две, как вы указали, либо на сервере организовывается некий сервис, к которому цепляются все клиенты, скажем, по TCP на определенный порт, и получают уведомления в виде рассылки или персональные. Такая аська, грубо говоря.
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36612803
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я уже спросил про IPC. хочет про него услышать автор или нет?
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36612814
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneя уже спросил про IPC. хочет про него услышать автор или нет?

ну тогда уж сразу так
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36612930
Игорь1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что такое IPC я не знаю. Специальных программ не хочется ставить, чтобы не усложнять инфраструктуру приложения.
Через специально созданный для данной цели COM компонент (dll) с методом RefreshActiveTable можно как-то сделать?
Может ли чем то помочь функции обратного вызова (оператор AddressOf)?
Может ли приложение 2 посредством API послать основному окну приложения 1 какое-то стандартное сообщение (типа, например, свернуть), которое будет являться неким знаком для приложения 1, что надо сделать рефреш активной таблицы.
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36612933
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь1973, так у вас два приложения на одном компе что ли?
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36612948
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProИгорь1973, так у вас два приложения на одном компе что ли?

Тогда может DDE
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36612974
Игорь1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, обе программы на одном компе, но файл БД лежит на другом компе (на файловом сервере). Причем приложение 2 вызывается из приложения 1 по нажатии пользовательской кнопки. (Т.е. можно начинать некий "опрос" чего-нибудь именно при этом действии.)
Я только-что придумал, возможно, подходящий вариант: писать в специальную настроечную таблицу БД (где много всяких разных переменных хранится) специальную метку. Приложение 1 прочитает эту метку, выполнит рефреш и тут же удалит метку и прекратит опрос.

DDE - это интересно. Спасибо, Shocker.Pro.
Наверное, такие свойства и для грида можно задавать (и, надеюсь, в рантайме тоже). Интересно, не будет ли лишних перегрузок по сети при этом.
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36612987
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь1973Да, обе программы на одном компе, но файл БД лежит на другом компе (на файловом сервере). Причем приложение 2 вызывается из приложения 1 по нажатии пользовательской кнопки . (Т.е. можно начинать некий "опрос" чего-нибудь именно при этом действии.)
Я только-что придумал, возможно, подходящий вариант: писать в специальную настроечную таблицу БД (где много всяких разных переменных хранится) специальную метку. Приложение 1 прочитает эту метку, выполнит рефреш и тут же удалит метку и прекратит опрос.

DDE - это интересно. Спасибо, Shocker.Pro.
Наверное, такие свойства и для грида можно задавать (и, надеюсь, в рантайме тоже). Интересно, не будет ли лишних перегрузок по сети при этом.


так и передайте признак обновления таблицы или ещё что вам нужно через параметр командной строки, а во 2-м приложении получите через Command$ и обработаете
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36612995
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь1973Да, обе программы на одном компе, но файл БД лежит на другом компе (на файловом сервере). Причем приложение 2 вызывается из приложения 1 по нажатии пользовательской кнопки. (Т.е. можно начинать некий "опрос" чего-нибудь именно при этом действии.)

Если две программы на одном компе, то база тут просто не причем - просто лишняя информация. Нужно передать событие от одного приложения к другому, все.

Игорь1973Я только-что придумал, возможно, подходящий вариант: писать в специальную настроечную таблицу БД (где много всяких разных переменных хранится) специальную метку. Приложение 1 прочитает эту метку, выполнит рефреш и тут же удалит метку и прекратит опрос.

Это метод называется "опрос", я про этот вариант сказал еще в первом сообщении. Но это жрет ресурсы и трафик.

Игорь1973DDE - это интересно. Спасибо, Shocker.Pro.
Наверное, такие свойства и для грида можно задавать (и, надеюсь, в рантайме тоже). Интересно, не будет ли лишних перегрузок по сети при этом.

А причем тут сеть, если приложения опять же на одном компе?

Konst_Oneтак и передайте признак обновления таблицы или ещё что вам нужно через параметр командной строки, а во 2-м приложении получите через Command$ и обработаете

Тогда вообще какая-то ерунда получается. Зачем создавать какое-то событие, если запуск приложения само по себе событие, а нужные параметры можно и так из базы получить.
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36613003
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Konst_Oneтак и передайте признак обновления таблицы или ещё что вам нужно через параметр командной строки, а во 2-м приложении получите через Command$ и обработаете

Тогда вообще какая-то ерунда получается. Зачем создавать какое-то событие, если запуск приложения само по себе событие, а нужные параметры можно и так из базы получить.

это я предположил, может автор запускает программу не один раз и хочет видеть разные результаты при каждом запуске.
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36613005
Игорь1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автортак и передайте признак обновления таблицы или ещё что вам нужно через параметр командной строки, а во 2-м приложении получите через Command$ и обработаете

Нет, вот так нельзя.
В приложении 1 пользователь нажимает кнопку на тулбаре, вызывается приложение 2, где форма с элементами для ввода данных и кнопка "ОК".
Надо, чтобы по нажатию кнопки "ОК", помимо того, что делает собственно приложение 2 (запись в БД), еще происходил бы рефреш активной таблицы в приложении 1.
При нажатии на кнопку ОК никаких exe не запускается.
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36613013
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь1973автортак и передайте признак обновления таблицы или ещё что вам нужно через параметр командной строки, а во 2-м приложении получите через Command$ и обработаете

Нет, вот так нельзя.
В приложении 1 пользователь нажимает кнопку на тулбаре, вызывается приложение 2, где форма с элементами для ввода данных и кнопка "ОК".
Надо, чтобы по нажатию кнопки "ОК", помимо того, что делает собственно приложение 2 (запись в БД), еще происходил бы рефреш активной таблицы в приложении 1.
При нажатии на кнопку ОК никаких exe не запускается.


как всё запутано

DDE, COM-сервер, файл, реестр, pipe и тд и тп

выбирайте
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36613022
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на худой конец можете в совей общей базе завести таблицу событий и в неё писать что нужно делать, а каждая из программ её будет по таймеру опрашивать и выполнять требуемое действие. ну и писать туда когда надо будет.
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36615951
ak787
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нафиг все эти DDE и прочее, на одной проге поставьте таймер и читайте данные об обновлении из реестра.
В реестр в VB данные заносятся очень просто SaveSetting, GetSetting.
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36615959
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ak787Нафиг все эти DDE и прочее, на одной проге поставьте таймер и читайте данные об обновлении из реестра.

Все зависит от необходимого времени реакции. Если 10 сек устраивает - можно и таймер, если нужно 0.3-0.5 сек - увидите некоторую ненулевую постоянную загрузку процессора.
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36622499
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может всё же динамический курсор поможет?
...
Рейтинг: 0 / 0
Как из одной VB6 программы прорефрешить таблицу в другой?
    #36627072
ak787
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если время процессора критично, тогда 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
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как из одной VB6 программы прорефрешить таблицу в другой?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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