0 / 0 / 0
Регистрация: 23.10.2009
Сообщений: 51
1

Как сделать программно Backup базы Access

18.02.2012, 13:01. Показов 3386. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нужно сделать резервную копию(бэкап) базы программно и запихнуть эту базу в архив с текущей датой и временем.
Visual Basic
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 Sub Command1_Click()
Dim strAppPath As String
Dim idProg As Long
Dim DirectoryFound As String ' для проверки существования папки
 
'сохраним путь базы
strAppPath = Application.CurrentProject.Path & "\"
'На выходе из программы -
'Проверяем наличие файла Нарушения ПДД_data.mdb, если есть, то
'Проверяем наличие файла Нарушения ПДД_data.ldb, если его нет, то
'предлагаем перед выход сделать архивацию, если согласен то, архивация и выход.......
If Dir(strAppPath & "Нарушения_ПДД_data.mdb") <> "" Then
' значит, файл Нарушения_ПДД_data.mdb существует - это сервер!
    If Dir(strAppPath & "Нарушения_ПДД_data.ldb") = "" Then
    ' значит, файл блокировки не существует - никто не занимает файл
        If MsgBox("Не забывайте создавать архивную копию базы данных при завершении работы." & vbCrLf & vbCrLf & _
            "Создать архивную копию базы сейчас ?", vbInformation + vbYesNo, _
            "Архивация данных после завершения работы") = vbYes Then
            'проверить, есть ли файл WinRar.exe в папке \AddOns
            If Dir(strAppPath & "AddOns\WinRAR.exe") = "" Then
                MsgBox "Не найден архиватор WinRar.exe в подпапке \AddOns!", vbCritical,    "Невозможно начать архивацию данных"
                Exit Sub
            End If
            'проверить наличие папки \Archives
            DirectoryFound = Dir(strAppPath & "Arhives", vbDirectory)
            If (Len(DirectoryFound) = 0 Or Err = 76) Then 'errPathNotFound = 76
                MsgBox "Не найдена папка \Arhives для размещения архива", vbCritical, "Не найдена папка для архивов"
                Exit Sub
            End If
            idProg = Shell(strAppPath & "AddOns\WinRAR a -r -m5 -ag_DD-MM-YYYY_HH-MM " & strAppPath & "Arhives\Нарушения_ПДД_data " & strAppPath & "Нарушения_ПДД_data.mdb", vbNormalFocus)
        End If
    End If
End If
End Sub
вставил его в приложение и у меня при нажатии на кнопку компилятор стал ругаться на вот эту строчку:
strAppPath = Application.CurrentProject.Path & "\"
у меня у Application нет свойства CurrentProject.
соответственно ничего не получилось... может кто-нибудь подскажет в чем проблема? или кто-нить кинет другой код? помогите люди!! срочно нужно!!! заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2012, 13:01
Ответы с готовыми решениями:

Как программно удалить таблицу из базы данных Access?
Как в базе данных MS Access удалить таблицу программно???:help:

Как осуществить сжатие mdb базы программно, не прибегая к услугам Access ?
Не подскажет ли кто, как осуществить сжатие mdb базы программно, не прибегая к услугам Access ?...

Как добавлять записи в таблицу базы данных Access программно через ADO?
Как добавлять записи в таблицу базы данных Access программно через ADO?:yahoo:

Создание файла базы данных Access. Нужно создать программно. Покажите как, ничего не нашёл.
Долго гуглил, ничего вразумительного не нашёл. Находил как можно создать файл базы данных подключив...

8
126 / 61 / 2
Регистрация: 15.02.2012
Сообщений: 127
18.02.2012, 13:09 2
Цитата Сообщение от Lander Посмотреть сообщение
strAppPath = Application.CurrentProject.Path & "\"
есть несколько вариантов:
Visual Basic
1
strAppPath = App.Path & "\"
и
Visual Basic
1
strAppPath = CurDir & "\"
1
0 / 0 / 0
Регистрация: 23.10.2009
Сообщений: 51
18.02.2012, 13:53  [ТС] 3
он все равно не делает архив...вопрос: ПОЧЕМУ!???

Добавлено через 11 минут
Все! спасибо!!! разобрался!!!))
теперь другой вопрос меня мучит!! можно ли сделать так что бы обратно эту базу разархевировать и обратно вставить в папку с программой!?
0
1161 / 288 / 23
Регистрация: 28.09.2008
Сообщений: 553
18.02.2012, 14:29 4
Цитата Сообщение от Lander Посмотреть сообщение
можно ли сделать так что бы обратно эту базу разархевировать и обратно вставить в папку с программой!?
Нет ничего невозможного в мире компьютеров!
Только база, которую заменяем не должна быть read-only:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Command1_Click()
    WinRarApp$ = "C:\Program Files\WinRAR\WinRAR.exe e -p311 -o+"
    ' e  - разархивировать
    ' -o+  - перезаписывать существующие файлы
    iPath = "H:\fortest\oldFolder\"
    iArhivName$ = "db2.rar"
    adr$ = WinRarApp$ & " """ & iPath & iArhivName$ & """ """ & iPath & """ "
    RetVal = Shell(adr$, vbHide)
    FileCopy iPath & "db2.mdb", "H:\fortest\newFolder\" & "db2.mdb"
End Sub
1
0 / 0 / 0
Регистрация: 23.10.2009
Сообщений: 51
18.02.2012, 14:39  [ТС] 5
Ребят еще один вопросик, возвращаясь к архивации базы и ее копирования....
мне нужно что бы после архивации в текстовое поле на форме заносилось название архива, который только что был создан....
и при клике на другую кнопку проверить его(архива) наличие в папке Arhives.

HELP еще раз!)) плиз!!!
0
1161 / 288 / 23
Регистрация: 28.09.2008
Сообщений: 553
18.02.2012, 15:19 6
Держи!
Visual Basic
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
Const pFile As String = "H:\fortest\oldFolder\", pArchive As String = "H:\fortest\newFolder\"
Const nFile As String = "db2.mdb", nArchive As String = "db2.rar"
 
Private Sub Command1_Click() ' создаём архив
    Dim WinRarApp As String, adr As String
    WinRarApp = "C:\Program Files\WinRAR\WinRAR.exe a -ep "
    ' a   - заархивировать
    ' -ep   - исключить пути из имён
    adr = WinRarApp & " """ & pArchive & nArchive & """ """ & pFile & nFile & """ "
    Shell adr, vbHide
    Text1.Text = pArchive & nArchive
End Sub
 
Private Sub Command2_Click() ' разархивируем
    Dim WinRarApp As String, adr As String
    WinRarApp = "C:\Program Files\WinRAR\WinRAR.exe e -o+"
    ' e  - разархивировать
    ' -o+  - перезаписывать существующие файлы
    adr = WinRarApp & " """ & pArchive & nArchive & """ """ & pFile & """ "
    Shell adr, vbHide
End Sub
 
Private Sub Command3_Click() ' Проверка наличия архива
If Dir(Text1.Text) <> "" Then
    MsgBox "Архив есть!"
Else
    MsgBox "Архива нету!"
End If
End Sub
1
0 / 0 / 0
Регистрация: 23.10.2009
Сообщений: 51
18.02.2012, 16:24  [ТС] 7
Visual Basic
1
2
Const pFile As String = "H:\fortest\oldFolder\", pArchive As String = "H:\fortest\newFolder\"
Const nFile As String = "db2.mdb", nArchive As String = "db2.rar"
объясни плиз вот это...
что вот это за путь: pFile As String = "H:\fortest\oldFolder\"
и вот это: pArchive As String = "H:\fortest\newFolder\"

вот это: nFile As String = "db2.mdb" - я понимаю название базы,
а вот это: nArchive As String = "db2.rar" - название архива.
0
1161 / 288 / 23
Регистрация: 28.09.2008
Сообщений: 553
18.02.2012, 16:42 8
Цитата Сообщение от Lander Посмотреть сообщение
объясни плиз вот это...
Ну ты чиво?
Const pFile As String = "H:\fortest\oldFolder\", pArchive As String = "H:\fortest\newFolder\"
Const - это константа!
pFile - имя константы!
As String - определение типа константы (в данном случае это строка)
"H:\fortest\oldFolder\" - значение константы!
Если по-русски, то:
pFile - переменная (константа) для пути к исходному файлу (ну т.е. путь к файлу твоей базы)
pArchive- переменная (константа) для пути к папке, куда должен сохраняться архив твоей базы (ну т.е. путь к папке, где будет архив)
Специально же в константы вывела, чтоб ты смог поменять на свои пути/имена!
1
0 / 0 / 0
Регистрация: 23.10.2009
Сообщений: 51
18.02.2012, 16:50  [ТС] 9
твой вариант проще, чем я нашел!!) все!) разобрался!)) большое спасибо!) больше вопросов не имею!)
0
18.02.2012, 16:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2012, 16:50
Помогаю со студенческими работами здесь

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

Как сделать выборку из базы Access - удобную для просмотра!
Доброго времени суток! Имеется база данных Access для телефонистки, как сделать так чтобы ей было...

Как сделать импортирование таблицы из одной базы данных access в другую?
Как сделать импортирование таблицы из одной базы данных access в другую?

Как сделать, чтобы компонент combobox брал данные из базы access?
Имеится в виду что , когда нажимаешь на кнопку в cobmbobox высвечивался текст из базы данных


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru