powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Архивирование БД помесячно(каждый раз в новую базу)
5 сообщений из 30, страница 2 из 2
Архивирование БД помесячно(каждый раз в новую базу)
    #39317676
ЮраСка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
час58ЮраСка,
Код: vbnet
1.
2.
3.
4.
5.
Akina 

"Простейший механизм - это тупое копирование БД с изменением её имени, и последующей, если надо, чисткой "лишних" записей. Можно при определённых условиях даже клиентов не отключать..."

руками надоело это делать, поэтому хочется автоматизировать...



Зачем же руками???
Речь идёт про автоматическое архивирование.
Код: 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.
Public Function FUN_V_ARHIV()    ' Архивация "CLN_TBL.mdb" в папку ARHIV
    Dim OTKUDA As String
    Dim KUDA As String
    Dim FILE_ARHIV_NAME As String

    On Error GoTo FUN_V_ARHIV_Error
    '-----------------------------------------------------------------------------

    FILE_ARHIV_NAME = FUN_FILE_NAME_IN("Архив", "mdb")
    OTKUDA = Nz(DLookup("ZNACHENIE", "TUNING_TBL", "ID  = 'Папка_Таблиц'"))
    OTKUDA = OTKUDA & "\" & "CLN_TBL.mdb"
    KUDA = CurrentProject.Path & "\ARHIV\CLN_TBL_" & FILE_ARHIV_NAME
    Set fso = New Scripting.FileSystemObject

    fso.CopyFile OTKUDA, KUDA
    Call MESS("Создан Архив данных.")


    '-----------------------------------------------------------------------------
    On Error GoTo 0
    Exit Function
FUN_V_ARHIV_Error:

    Call ZAPIS_V_TEXT_FILE(CurrentProject.Path & "\Ошибки программы.txt", "функция: FUN_V_ARHIV в модуле: ARHIV_MOD" & vbTab & Nz(Err.Description))

End Function



я так понимаю этим кодом мы создаем функцию...
а далее этими строками "WHERE [table].[datetime] >= DateSerial(Year(Date),Month(Date)-1,1)
AND [table].[datetime] < DateSerial(Year(Date),Month(Date),1)" создаем само тело запроса

Так ?
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317702
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮраСкаAkinaпропущено...
Берём тупо предыдущий месяц, и всё...
Код: vbnet
1.
WHERE format([table].[datetime], "yyyyMM") = format(dateadd("m", -1, date()), "yyyyMM")




а куда вставить? :)
Совершенно согласен.
И пишите в одну и туже базу в течении года.
Объем позволяет.
А месячные данные вытаскивайте запросом.
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317711
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROIЮраСкапропущено...


а куда вставить? :)
Совершенно согласен.
И пишите в одну и туже базу в течении года.
Объем позволяет.
А месячные данные вытаскивайте запросом.
Да к стати это все верно при одном условии:

Что в базе есть четкое понятия месяца, тоесть (данные всегда начинаются первым числом и заканчиваются последним числом месяца).
Если у вас понятие месяца "плавающее", то здесь сложнее.
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39317826
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Архивирование БД помесячно(каждый раз в новую базу)
    #39318117
Фотография час58
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЮраСкачас58ЮраСка,
Код: vbnet
1.
2.
3.
4.
5.
Akina 

"Простейший механизм - это тупое копирование БД с изменением её имени, и последующей, если надо, чисткой "лишних" записей. Можно при определённых условиях даже клиентов не отключать..."

руками надоело это делать, поэтому хочется автоматизировать...



Зачем же руками???
Речь идёт про автоматическое архивирование.
Код: 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.
Public Function FUN_V_ARHIV()    ' Архивация "CLN_TBL.mdb" в папку ARHIV
    Dim OTKUDA As String
    Dim KUDA As String
    Dim FILE_ARHIV_NAME As String

    On Error GoTo FUN_V_ARHIV_Error
    '-----------------------------------------------------------------------------

    FILE_ARHIV_NAME = FUN_FILE_NAME_IN("Архив", "mdb")
    OTKUDA = Nz(DLookup("ZNACHENIE", "TUNING_TBL", "ID  = 'Папка_Таблиц'"))
    OTKUDA = OTKUDA & "\" & "CLN_TBL.mdb"
    KUDA = CurrentProject.Path & "\ARHIV\CLN_TBL_" & FILE_ARHIV_NAME
    Set fso = New Scripting.FileSystemObject

    fso.CopyFile OTKUDA, KUDA
    Call MESS("Создан Архив данных.")


    '-----------------------------------------------------------------------------
    On Error GoTo 0
    Exit Function
FUN_V_ARHIV_Error:

    Call ZAPIS_V_TEXT_FILE(CurrentProject.Path & "\Ошибки программы.txt", "функция: FUN_V_ARHIV в модуле: ARHIV_MOD" & vbTab & Nz(Err.Description))

End Function



я так понимаю этим кодом мы создаем функцию...
а далее этими строками "WHERE [table].[datetime] >= DateSerial(Year(Date),Month(Date)-1,1)
AND [table].[datetime] < DateSerial(Year(Date),Month(Date),1)" создаем само тело запроса

Так ?

Этот код, если внимательно его просмотреть,
копирует файл из места его хранения
Код: vbnet
1.
OTKUDA


в папку хранения
Код: vbnet
1.
 KUDA


вот так
Код: vbnet
1.
fso.CopyFile OTKUDA, KUDA


Новое имя файла =
Код: vbnet
1.
FILE_ARHIV_NAME



Архивировать можно или запросом
или этой функцией.
Но, судя по вопросам, у вас так мало знаний, что не знаю что для вас лучше.
...
Рейтинг: 0 / 0
5 сообщений из 30, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Архивирование БД помесячно(каждый раз в новую базу)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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