powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Замена файла XXX.mdb на удалённых рабочих местах.
25 сообщений из 126, страница 2 из 6
Замена файла XXX.mdb на удалённых рабочих местах.
    #39770803
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,
спасибо, но
не думай - это не для меня.
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39770844
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58Правильно ли я проверяю файл на дату модификации?
Почему-то все файлы в сети показали дату вчерашнюю.
Хотя файлы эти положены в Январе.

Не важно когда положил (это по идее будет дата создания и то в том случае если прям вот тут создал)
Ты же проверяешь дату Изменения программы?
У mdb, mde,.... по идее так: запустил,- значит уже изменил, даже если просто открыл закрыл и это можно наблюдать в свойствах файла в самой винде (дата изменения), это вам не исполняемый exe файл
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771282
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

И каков же выход?
Вручную жёстко в коде писать дату типа "08.02.2019" и бросать её в таблицу.
И использовать при необходимости как версию данного файла.
------------------------
Надо же как -то, что бы кодом решалось.
А то так и забыть не долго про изменение цифр версии.
В VB6 версия файла сама там генерировалась. Стоило задать начало.
В access - как решается эта вещь?
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771303
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58И каков же выход?

Да уже писали тут про это...
В кратце:
- на общей шаре должна быть очередная версия и не важно в каком виде её признак (номер).
- на местах нужен "пускач" который при старте сравнивает номер локальной версии с номером на шаре, если
локальный номер меньше, переписывает с шары на локаль новую версию + её номер и запускает, если номера версий одинаковые, просто запускает локаль...
Готового варианта думаю никто не даст, много специфики, начиная с того у кого какая и в каком виде шара и
заканчивая прочей мелочью, в том числе организационные вопросы...
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771319
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,
Спасибо, понятно.
Да.
Код: vbnet
1.
2.
- на местах нужен "пускач" который при старте сравнивает номер локальной версии с номером на шаре, если
локальный номер меньше, переписывает с шары на локаль новую версию + её номер и запускает, если номера версий одинаковые, просто запускает локаль...


Этот вариант понятен, как два пальца обасфальт.
не понятно только как пускач сравнивает версии - кто критерий для него?
Я критерий не могу придумать. Как отличать версии.....
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771356
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,

Да уже бы сам придумал, например пускач тот же mdb или mde, в котором всего одна таблица,
с всего одним текстовым полем и всего одной записью, в которой название запускаемого файла...

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

можно еще одну форму в пускаче сделать, если версии не совпали, делать её видимой и запрашивать
подтверждение замены версии ХХХ на YYY
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771357
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,
:-)
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771495
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag , у меня давно таким образом устроена замена файла программы, правда, в локальной сети:
На сервере "лежит" актуальная версия программы и служебная программка mdx поl названием Start, на рабочих местах ярлык запускает не основную программу, а программку Start, которая проверяет соответствие версии основной программы на сервере и на рабочем месте. Если версии отличаются, на рабочее место копируется, с заменой существующей, версия с сервера и после этого программа запускается на рабочем месте. Если версия не изменилась, то просто запускается программа.
Версия программы "зашита" в свойства Базы данных, т.е. Вашей программы, таким образом (см. рис):

Несколько лет назад я уже описывал эту технологию. Единственное неудобство, что версию приходится менять вручную, но это не самое страшное, зато никаких звонков и уговоров выйти из программы.
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771500
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно признаюсь, что саму идею и, частично, пути реализации позаимствовал у умных людей, что-то здесь на форуме, а что-то на других, но сейчас точно не помню где. Дурацкая привычка не делать пометок, что откуда взял.
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771513
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xax_nv vmag , у меня давно таким образом устроена замена файла программы, правда, в локальной сети:
На сервере "лежит" актуальная версия программы и служебная программка mdx поl названием Start, на рабочих местах ярлык запускает не основную программу, а программку Start, которая проверяет соответствие версии основной программы на сервере и на рабочем месте. Если версии отличаются, на рабочее место копируется, с заменой существующей, версия с сервера и после этого программа запускается на рабочем месте. Если версия не изменилась, то просто запускается программа.
Версия программы "зашита" в свойства Базы данных, т.е. Вашей программы, таким образом (см. рис):

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



а как программно прочитать ваше свойство?
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771538
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот код модуля из Start.mbx:
Код: vbnet
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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
Option Compare Database
Option Explicit

Private Const constrOriginMDB As String = "\\Server\XXX\XXX.mdb"
Private Const constrLocalMDB As String = "C:\XXX\XXX.mdb"

Private Const CSIDL_SysFolder = &H29

Public Function StartApplication()

Dim FSO As Object, SysFolderPatch As String
Dim oShell As Object, Str1
Set oShell = CreateObject("WScript.Shell")


Set FSO = CreateObject("Scripting.FileSystemObject")
'find if local folder exists'
If Len(constrOriginMDB) > 0 Then
    CheckLocalFolders constrLocalMDB
End If

On Error Resume Next

    
If Dir(constrLocalMDB, vbNormal) = "" Then 'if file does not exist'
    FileCopy constrOriginMDB, constrLocalMDB
Else
    If HasToBeRefreshed Then 'check if there is new version on the server'
        FileCopy constrOriginMDB, constrLocalMDB
    End If
End If
    
If Err.Number > 0 And Err.Number <> 70 Then
    Beep
    MsgBox Err.Number & vbCrLf & Err.Description
End If

On Error GoTo ErrorLabel

Call shell(SysCmd(acSysCmdAccessDir) & "MSACCESS.EXE " & constrLocalMDB, vbNormalFocus)

DoCmd.Quit

Exit Function

ErrorLabel:
    DoCmd.Hourglass False
    DoCmd.Maximize
    Beep
    MsgBox "Something wrong with Database," & vbCrLf & "Ask DB developer to fix it@" & vbCrLf & _
            Err.Number & "@" & Err.Description & "@", vbCritical
    Application.Quit
End Function

Private Function CheckLocalFolders(strFilePath)
Dim strCurrPath As String
Dim strCurrFolder As String
Dim intPos As Integer

If Left$(strFilePath, 3) <> "C:\" Then
    MsgBox "Wrong Path Argument in CheckLocalFolders Function", vbCritical
    Exit Function
End If

strCurrPath = "C:\"
intPos = 3

Do Until intPos = 0
    intPos = InStr(intPos + 1, strFilePath, "\")
    If intPos > 0 Then
        strCurrPath = Left$(strFilePath, intPos - 1)
        If Dir(strCurrPath, vbDirectory) = "" Then
            MkDir strCurrPath
        End If
    End If
Loop
End Function

Private Function HasToBeRefreshed() As Boolean
Dim wrk As Workspace
Dim dbs As Database, cnt As Container
Dim doc As Document
Dim lngVersionOnServer As String
Dim lngVersionOnC As String

Const conPropertyNotFound = 3270    ' Property not found error.

On Error GoTo SetCustom_Err
    Set wrk = DBEngine.Workspaces(0)
    Set dbs = wrk.OpenDatabase(constrLocalMDB)
    Set cnt = dbs.Containers!Databases
    Set doc = cnt.Documents!UserDefined
    
    lngVersionOnC = doc.Properties("DB Version")
    
    Set dbs = wrk.OpenDatabase(constrOriginMDB)
    Set cnt = dbs.Containers!Databases
    Set doc = cnt.Documents!UserDefined

    lngVersionOnServer = doc.Properties("DB Version")

    Set doc = Nothing
    Set cnt = Nothing
    Set dbs = Nothing
    Set wrk = Nothing

    HasToBeRefreshed = (lngVersionOnServer <> lngVersionOnC)

    Exit Function

SetCustom_Err:
    Beep
    If Err = conPropertyNotFound Then
        MsgBox "There is no information of the DB Version.", vbExclamation
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If

    HasToBeRefreshed = False
End Function
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771543
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xax_nv,

Спасибо, я уже нашел, но и вашу методу потискаю.
С уважением.
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771546
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xax_nv,
Да, хороший вариант.
Ни как не найду как вывести на экран окно свойств xxx.mdb
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771549
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58 как вывести на экран окно свойств xxx.mdb

Файл - Свойства базы данных - Прочие.
Название: DB Version. Тип: Текст. Значение: любое Вам понравившееся.
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771551
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771554
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы смотрите свойство файла, а нужно свойство базы данных.
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771555
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI, а ты что нашёл?
Покажи.
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771558
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл указать, что я юзаю 2003 Акс, в более старших версиях видимо так же.
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771563
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xax_nv,

Спасибо за пояснение.
Да, нашёл.

В новых версиях
Код: vbnet
1.
2.
3.
Значок офиса в левом верхнем углу
Управление
Свойства базы данных
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771761
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xax_nv,

Это свойство базы - значение "ВЕРСИИ", можно считывать из самой программы?
Или считывать, когда программа запущена (находится в работе.)?
Не повредит ли это работающий файл.
Или можно считывать, только извне и не при работающей программе(файле)?
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771766
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,
Как то вот так:
Код: vbnet
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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
[/SRC]
Private Sub cmd_Text_Click()
Dim dbs As DAO.Database
Dim cnt As DAO.Container
Dim doc As DAO.Document
Dim prp As DAO.Property
Dim v As Variant

On Error GoTo HandleError

    Set dbs = CurrentDb
    Set cnt = dbs.Containers!Databases
    Set doc = cnt.Documents!UserDefined
    
    Me.ctr_Text = ""
    
    For Each prp In doc.Properties
    
        v = prp.Value
        Me.ctr_Text = Me.ctr_Text & vbCrLf & prp.Name & "=" & v
        
    Next

ExitProc:
    Set prp = Nothing
    Set dbs = Nothing
    Set cnt = Nothing
    Set doc = Nothing
    Exit Sub
    
HandleError:
    MsgBox vbCrLf & Err.Description & _
            vbCrLf & vbCrLf & "  &#200;&#236;&#255; &#238;&#225;&#250;&#229;&#234;&#242;&#224; = " & Me.Name & _
            vbCrLf & vbCrLf & "  &#200;&#236;&#255; &#239;&#240;&#238;&#246;&#229;&#228;&#243;&#240;&#251; = cmd_Text_Click", _
            vbCritical, "&#206;&#248;&#232;&#225;&#234;&#224; " & Err.Number
    Resume ExitProc
End Sub
[SRC VB]
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771775
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я использовал код - xax_nv,
получается вот так...

Код: vbnet
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.
28.
29.
30.
31.
32.
33.
34.
Private Function FUN_VERSIYA(PATCH_K_RMK As String) As String
' ВЕРСИЯ

Dim wrk As Workspace
Dim dbs As Database, cnt As Container
Dim doc As Document
Dim lngVersionOnServer As String
Dim lngVersionOnC As String

   On Error GoTo FUN_VERSIYA_Error
'-----------------------------------------------------------------------------
FUN_VERSIYA = ""

    Set wrk = DBEngine.Workspaces(0)
    Set dbs = wrk.OpenDatabase(PATCH_K_RMK)
    Set cnt = dbs.Containers!Databases
    Set doc = cnt.Documents!UserDefined
    
    If Nz(doc.Properties("VERSII")) <> "" Then
       FUN_VERSIYA = Nz(doc.Properties("VERSII"))
    End If
    
    Set doc = Nothing
    Set cnt = Nothing
    Set dbs = Nothing
    Set wrk = Nothing
'-----------------------------------------------------------------------------
   On Error GoTo 0
   Exit Function
FUN_VERSIYA_Error:

 Call FUN_ZAPIS_V_TEXT_FILE(CurrentProject.Path & "\Ошибки программы.txt", "Не задана версия в файле " & vbTab & PATCH_K_RMK & vbTab & Nz(Err.Description))

End Function
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771791
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
час58,

В принципе одно и тоже.
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39771891
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI, Да.
...
Рейтинг: 0 / 0
Замена файла XXX.mdb на удалённых рабочих местах.
    #39774957
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё раз спасибо xax_nv,

В итоге получилась вот такая функция получения значения из свойств базы данных, прописанных пользователем базы.
Код: vbnet
1.
2.
3.
4.
5.
Public Function FUN_GLB_VERSION()
' версия
    On Error Resume Next
    GLB_VERSION = CurrentDb.Containers("Databases").Documents("UserDefined").Properties("VERSII").Value
End Function
...
Рейтинг: 0 / 0
25 сообщений из 126, страница 2 из 6
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Замена файла XXX.mdb на удалённых рабочих местах.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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