powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Автоматизация создания MDE
25 сообщений из 35, страница 1 из 2
Автоматизация создания MDE
    #32884321
gena_20050126
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, подскажите кто в курсе.

[1]
Как создать MDE-файл НЕ через меню "Сервис/Служебные программы/Создать MDE-файл...", а как-нибудь не ручками - либо программно (может, метод объектный какой), либо через параметр командной строки MSA2000.

[2]
Как, опять-таки, программно выполнить обратную конвертацию из MSA2000 в MSA97.
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #32884468
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADE/MDE:
SysCmd(603, [ADP/MDB Path], [ADE/MDE Path])
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #32884576
gena_20050126
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SysCmd 603 в MSA97 работает нормально, а в MSA2000 ничего не делает и ошибку не генерит. А откуда сведения? Может там про MSA2000 чего сказано?
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #32884583
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с 2000 не работал - а вот в Аксесе ХП всё работает нормально.
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33290983
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот понадобилось,

Код: plaintext
1.
2.
3.
Public Sub tst()
SysCmd  603 , CurrentProject.FullName, Replace(CurrentProject.FullName, ".adp", ".ade", , , vbBinaryCompare)

End Sub

не работает и ошибку не выдает
аксесс XP


может еще есть способы?
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33291272
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не работает
проверил на двух компах acc2002 sp3 и acc2002 без sp

не ADP не MDB не компилируется
формат файла 2002

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub TestMde()
Dim appAccess As Access.Application
Set appAccess = New Access.Application
appAccess.Visible = True
appAccess.SysCmd  603 , CurrentProject.FullName, Replace(CurrentProject.FullName, ".mdp", ".mde", , , vbBinaryCompare)
appAccess.Quit acQuitSaveNone
Set appAccess = Nothing

End Sub
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33291281
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторне ADP не MDB не компилируется

в смысле компелируется и вручную MDE создается а вот программно MDE ADE никак
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33291283
ANTIVIR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейКне ADP не MDB не компилируется
формат файла 2002

Если уж у вас не получается, я в панике)))
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33291331
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если уж у вас не получается, я в панике)))


коллективный (сетевой) разум всегда мощнее единичного ...
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33291346
ANTIVIR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейК Если уж у вас не получается, я в панике)))


коллективный (сетевой) разум всегда мощнее единичного ... Мне кажется пора закупать соль и спички)))
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33291466
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кажись надыбал в чем дело
скорее всего в блокировке открытого файла файловой системой

т.к. перенес этот же код в VBS - в нем работает.

попробую поглумиться над временной копией, но уже из аксесса
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33291537
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из запасов

Вопрос: Файл MDB в MDE - программно

Анатолий (Киев)

У меня в А2000 эта конструкция тоже не работает.
А вот эта работает прекрасно:

Public Sub CompactCurrentDB()
'Выполняет сжатие текущей БД.
'2071 - индекс позиции меню "Compact and repair database..."
On Error Resume Next
CommandBars.FindControl(1, 2071).accDoDefaultAction
End Sub

...

Serge Gavrilov

Создать MDE
Id = 2073
Создать ADE
Id = 4135
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33291546
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все, получилось
дело было в блокировке исходного файла открытого аксессом

так работает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim fso
Set fso = CreateObject("scripting.filesystemobject")
CurrentProject.Application.SysCmd  504 ,  16483  ' компилировать и сохранить все модули
fso.copyFile CurrentProject.FullName, CurrentProject.Path & "\TMP" & CurrentProject.Name
SysCmd  603 , CurrentProject.Path & "\TMP" & CurrentProject.Name, Replace(CurrentProject.FullName, ".adp", ".ade", , , vbBinaryCompare)
'SaveFileToDB "select * from dbo.ClientFiles where filename  =  '" & CurrentProject.Name & "'", CurrentProject.Name, 1, Replace(CurrentProject.FullName, ".adp", ".ade", , , vbBinaryCompare)
Kill CurrentProject.Path & "\TMP" & CurrentProject.Name
Set fso = Nothing
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33291555
ANTIVIR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейКвсе, получилось
Так бы сразу ))) Выкладывая соль и спички
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33291724
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яйца теже, вид с другого боку

Код: 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.
Sub CreateMDE()

Dim strWsh As String, strTempFile As String, hFile As Integer
Dim WshShl


   Set WshShl = CreateObject("WScript.Shell")
   strTempFile = WshShl.ExpandEnvironmentStrings("%TEMP%") & "\CreateMDE.vbs"

    strWsh = "Set AccMDE = CreateObject(""Access.Application"")" & vbCrLf _
            & "Set AccApp = GetObject(""" & CurrentDb.Name & """)" & vbCrLf _
            & "AccApp.Application.SysCmd 504, 16483 " & vbCrLf _
            & "AccApp.DoCmd.Quit" & vbCrLf _
            & "AccMDE.Application.SysCmd 603, """ & CurrentProject.FullName & """, """ & replace(CurrentProject.FullName, ".mdb", ".mde", , , vbBinaryCompare) & """" & vbCrLf _
            & "Set FSO = CreateObject(""Scripting.FileSystemObject"")" & vbCrLf _
            & "Set File = fso.GetFile(""" & strTempFile & """)" & vbCrLf _
            & "File.Delete" & vbCrLf _
            & "Set WshShell = CreateObject(""WScript.Shell"")" & vbCrLf _
            & "WshShell.Run """ & replace(CurrentProject.FullName, ".mdb", ".mde", , , vbBinaryCompare) & """"

   hFile = FreeFile
   Open strTempFile For Output Access Write As hFile
   Print #hFile, strWsh
   Close hFile

   WshShl.Run """" & strTempFile & """"
End Sub
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33291951
MsDatabaseru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 АлексейЕ

тоже вариант
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33291956
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем такое нада?
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33291989
mwsdatabaseru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяа зачем такое нада?

вобщем то конечно обычному неленивому человеку это ненадо
всегда можно вручную откомпилировать сжать отсоединить проект от базы и закинуть каждому юзеру на компьютер (заставив или дождавшись закрытия приложения)

все это от большой лени
вношу правки в проект, проверяю работоспособность
нажимаю кнопку вызывающую код в администраторском аддине, после чего проект автоматически подготавливается и распространяется пользователям

если серьезно то автоматизация собственной рутины, при числе пользователей от десятков (тем более если они разнесены территориально) позволяет экономить уйму времени которое можно потратить на самообразование, общение в интернете и прочее..
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33292128
Dr. Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АлексейК
Код: plaintext
SysCmd  603 , CurrentProject.Path & "\TMP" & CurrentProject.Name, Replace(CurrentProject.FullName, ".adp", ".ade", , , vbBinaryCompare)

У меня не работает и никаких ошибок не показывает. А я уж было обрадовался...
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33292324
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще надо чтобы проект :
1 был того же формата что и аксесс в котором запущен
(по умолчанию у аксесса XP формат файла 2000)
2 проект должен компилироваться (быть без ошибок в коде)

проверить можно созданием *.[a,m]de вручную

и еще проверь создается ли временный файл с этим именем
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33292343
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот что еще надыбал, всетаки Сергей гаврилов был прав относительно другого апликейшена. а у меня приведенный пример работал из за того что вызывался из аддина

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Sub Savemde()
Dim ss
Dim fso
Dim accapp As Access.Application
Set accapp = New Access.Application
Set fso = CreateObject("scripting.filesystemobject")
CurrentProject.Application.SysCmd  504 ,  16483  ' компилировать и сохранить все модули
fso.copyFile CurrentProject.FullName, CurrentProject.Path & "\TMP" & CurrentProject.Name
ss = accapp.SysCmd( 603 , CurrentProject.Path & "\TMP" & CurrentProject.Name, Replace(CurrentProject.FullName, ".mdb", ".mde", , , vbBinaryCompare))
Kill CurrentProject.Path & "\TMP" & CurrentProject.Name
Set fso = Nothing
Set accapp = Nothing
MsgBox "Выполнено = " & ss
End Sub

SysCmd возвращает не ошибку а переменную если 0 - не создано
1 - ок
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #33292472
Dr. Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну вот теперь совсем другое дело! Все заработало!

зы
Лень - путь к совершенству)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Автоматизация создания MDE
    #36315673
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
запускаю описанную АлексеемК процедуру

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Sub Savemde()
Dim ss
Dim fso
Dim accapp As Access.Application
Set accapp = New Access.Application
Set fso = CreateObject("scripting.filesystemobject")
CurrentProject.Application.SysCmd  504 ,  16483  ' компилировать и сохранить все модули
fso.copyFile CurrentProject.FullName, CurrentProject.Path & "\TMP" & CurrentProject.Name
ss = accapp.SysCmd( 603 , CurrentProject.Path & "\TMP" & CurrentProject.Name, Replace(CurrentProject.FullName, ".mdb", ".mde", , , vbBinaryCompare))	'на этой строке как бы "зависает"
Kill CurrentProject.Path & "\TMP" & CurrentProject.Name
Set fso = Nothing
Set accapp = Nothing
MsgBox "Выполнено = " & ss
End Sub


когда у меня кончилось терпение, и я снял выполнение в Диспетчере Задач, то в папке обнаружил созданные TMP и mde файлы. Так вроде бы и ничего, но закралось сомнение – чего это оно так долго? и все ли там прошло как надо? Запуск mde показал, что всё вроде работает, но вдруг где засада? Вручную mde создаётся в секунды.
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #36315844
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отключи антивир,
попробуй прибить в диспетчере задач все процессы msaccess.
по идее может мешать зависший процесс- или пререзапусти комп
...
Рейтинг: 0 / 0
Автоматизация создания MDE
    #36315916
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> отключи антивир
отключил

> попробуй прибить в диспетчере задач все процессы msaccess
не вполне понял, что там прибить (выполнение кода, что ли?), ну ладно.

Всё равно зависал при пошаговом прохождении процедуры. Стоило начать процедуру по F8 и продолжить её по Ctrl+F8 (установленном в конце) – как всё прошло быстро. Вот так.

Спасибо большое!
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Автоматизация создания MDE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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