powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / использование внешнего редактора для SQL
19 сообщений из 44, страница 2 из 2
использование внешнего редактора для SQL
    #32513465
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Varan
Уважаемый, а запустить?:)
Не работает у меня так в ХП в коде (макрокоманда в данное время недоступна), а вот так работать будет:

Код: plaintext
1.
2.
3.
4.
Dim Acc As New Access.Application
Acc.SysCmd( 603 , [ADP/MDB FileFullPath], [ADE/MDE FileFullPath])
Acc.Quit(Access.AcQuitOption.acQuitSaveNone)
set Acc = Nothing

Т.е. смысл в том, чтобы команда не запускалась в базе из которой нужно сделать аде/мде...
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32513476
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Object Browser она не ищется"
как это нет? я ее вижу в списке.
просто поставь галку Show hidden members
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32513654
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hummer
Sub test()
Dim app As Access.Application
Set app = CreateObject("Access.Application")
DoEvents
SendKeys "C:\fromWhat.mdb"
SendKeys "{Enter}"
SendKeys "C:\toWhat.mde"
SendKeys "{Enter}"
app.DoCmd.RunCommand acCmdMakeMDEFile
Set app = Nothing
End Sub
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32513671
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ищ Где надо ставить эту галку, будь она трижды неладна?
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32513672
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Varan
Нет фанатиком сендкейз мне не стать:)
В принципе, у меня так же (только меньше и не документировано) - идея изложена в предпоследнем сообщении...
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32513679
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Varan
В окне вба жмём ф2, потом по правой кнопке мыши в контекстном меню видим этот пункт - Show hidden members.
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32513702
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hummer,
1. Ну да, у тебя короче и красивее, согласен.
2. Теперь ищется. Странно, что я про эти скрытые мемберы раньше не знал :-(
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32513940
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HummerДа, раз пошла такая штука - никто не подскажет, как программно выполнить компиляцию проекта - аналог Debug-Compile [Project_Name] из окна ВБА....
А то что-то не нашёл, да docmd.RunCommand acCmdCompileAllModules - это не то, потому что в этом случае меню всё равно активно и ошибки она не выдаёт...
Код: plaintext
1.
2.
3.
    Dim ctl As Object
    Set ctl = VBE.CommandBars.FindControl(,  578 )
    If ctl.Enabled Then ctl.Execute
или
Код: plaintext
1.
2.
3.
    Dim ctl As Object
    Set ctl = VBE.CommandBars("Menu Bar").Controls("Debug").Controls( 1 )
    If ctl.Enabled Then ctl.Execute
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32514297
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Serge Gavrilov
Такой код я вчера и написал (второй вариант) - у меня теперь проблема в другом - как достучаться до коллекции ошибок, которые возникают при компиляции. Эта коллекция находится в вба, надо полагать, или я не прав?

Проблема в том, что у меня во внешнем приложении для работы с исходниками (написано на вб.нет) есть объект Application, вот не могу понять, как из него мне получить ошибку, которая возникает при компиляции.
Если поставить в проекте ещё ссылку на вба - это ничего не даст:) Потому что это никак не связано с текущим проектом... В VBE не нашёл коллекции ошибок...

Вот и думаю, забить на компиляцию или нет - аде/мде всё равно не будет создаваться при ошибках компиляции...
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32514430
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТакой код я вчера и написал (второй вариант)
Видимо я уже плохо вижу, даже сейчас пробежался - не заметил автор- у меня теперь проблема в другом - как достучаться до коллекции ошибок, которые возникают при компиляции. Эта коллекция находится в вба, надо полагать, или я не прав?
Не знаю, было бы неплохо добраться, мне б это могло помочь.
А создавать mde мне не надо ...
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32514446
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как достучаться до коллекции ошибок, которые возникают при компиляции.

О какой коллекции может идти речь, если компиляция прервертся на первой же ошибке.
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32514458
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Serge Gavrilov
Неправильно истолковали - вчера написал в своём приложении, а не в топике:) Всё равно спасибо за пример:)

2 Senin Viktor
Senin Viktor О какой коллекции может идти речь, если компиляция прервертся на первой же ошибке.

Дело в том, что если запустить этот код из любого внешнего приложения - не важно на чём написаного - которое открывает другую БД удалённо и пытается её откомпилировать - то как остановить дальнейшее выполнение кода в этом приложении при возникновении ошибки при компиляции удалённого модуля?
Я вчера иссяк при поиске такого варианта.
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32514509
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДело в том, что если запустить этот код из любого внешнего приложения - не важно на чём написаного - которое открывает другую БД удалённо и пытается её откомпилировать - то как остановить дальнейшее выполнение кода в этом приложении при возникновении ошибки при компиляции удалённого модуля?
Я вчера иссяк при поиске такого варианта.
Но если компиляция кода будет успешна, то пункт меню будет недоступен, а если неуспешна, то доступен, т.е. что-то подобне
Public Function RemoteCompile(ByVal vstrDB As String) As String
Dim app As Object
Dim ctl As Object
Set app = GetObject(vstrDB)

Set ctl = app.VBE.CommandBars.FindControl(, 578)
If ctl.Enabled Then ctl.Execute
RemoteCompile = Not ctl.Enabled
Set app = Nothing
End Function

Но при этом, если компиляция будет неудачна, то app вряд ли закроется ...
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32515586
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще мне инересно, как что-нибудь вывести в окно отладки из другого приложения?
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32515656
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Serge Gavrilov
С компиляцией всё нормально - всё получилось, спасибо за идею, а то тупил совсем...
Окно отладки - имеется в виду Immediate Window?
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32516237
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОкно отладки - имеется в виду Immediate Window?
Да
авторС компиляцией всё нормально - всё получилось, спасибо за идею
не за что.
А что делаете при ошибке компиляции?
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32517337
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Serge Gavrilov
По поводу окна - наверное, способ есть, но он не совсем тривиален...
Можно выдавать это окно на экран (если его нет), далее может что через коллекцию окно вба получится, но не уверен, особо не копал в эту сторону...

Делаю вот что, останавливаю код, выдаю свой сообщение и и пока всё:) Надо фокус окну передавать - но пока ещё не сделал.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Me.TopMost = True
            ' компилируем проект
            acc.VBE.MainWindow.Visible = True
            acc.VBE.ActiveCodePane.Show()
            vbWind_H = acc.VBE.MainWindow.Height
            vbWind_W = acc.VBE.MainWindow.Width
            acc.VBE.MainWindow.Height = 0
            acc.VBE.MainWindow.Left = 0
            acc.VBE.MainWindow.Width = 0
            ctl = acc.VBE.CommandBars("Menu Bar").Controls("Debug").Controls(1)
            If ctl.Enabled Then ctl.Execute()

            ' смотрим, если есть ошибки компиляции, то выдаём сообщение
            If ctl.Enabled Then
                Me.TopMost = False
                MsgBox("В проекте '" & filePRJ & "' найдены ошибки при компиляции! " & vbCrLf & "Перейдите в окно VBA для просмотра ошибки.", MsgBoxStyle.Critical + MsgBoxStyle.OKOnly, "Ошибка")
                acc.Visible = True
                acc.VBE.MainWindow.Height = vbWind_H
                acc.VBE.MainWindow.Width = vbWind_W
                acc.VBE.MainWindow.WindowState = VBIDE.vbext_WindowState.vbext_ws_Maximize 
                Exit Sub
            End If
            Me.TopMost = False
            acc.CloseCurrentDatabase()
            acc.Quit(Access.AcQuitOption.acQuitSaveAll)
            acc = Nothing

            MsgBox("Компиляция проекта '" & filePRJ & "' успешно завершена!", MsgBoxStyle.Information + MsgBoxStyle.OKOnly, "Информация")

Вот так примерно...
Суть приложения - работа с исходными файлами модулей системы (поиск в Аксес текста по маске (как в модулях так и во всех свойствах форм, отчётов и контролов - tag, recordsourсe, controlsource и т.п.)), плюс "сборка" модулей из исходников и ещё много чего. Вот сейчас компиляцию сделал, сделал редактирование функций в свойм прилождении и последующий импорт их в исходные файлы ну и далее в таком же духе...
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32517353
Фотография Serge Gavrilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПо поводу окна - наверное, способ есть, но он не совсем тривиален...

Непонятно, почему так. Есть объект Debug и как получить к нему доступ извне?
Чей это объект? В object browser-е его нет ....

авторДелаю вот что, ...
А самому открывать окно VBE обязательно? Я это не делал, но если появлялась ошибка, то окно появлялось.
...
Рейтинг: 0 / 0
использование внешнего редактора для SQL
    #32517384
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Serge Gavrilov
Открывать не обязательно - просто привычка такая:)
С окном VBE вообще интересные вещи происходят - например, оно появляется при редактировании модуля из внешнего приложения (хотя команды на появление не было) - в итоге получается мигание этого окна на экране, при импортировании модулей в некоторых случаях так же может появляться - причем закономерности я не уловил...
Я так понял, при любом явном обращении к этому окну - оно будет появляться всегда.

На мсдн не нашёл ничего путного по объекту Debug...
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / использование внешнего редактора для SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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