Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Επιλογή "άκυρο" σε μήνυμα με το κλείσιμο της φόρμας Βackup (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/1721-epilogi-akyro-se-minyma-me-kleisimo-tis-formas-backup.html)

alex 14-03-12 09:03

Επιλογή "άκυρο" σε μήνυμα με το κλείσιμο της φόρμας Βackup
 
1 Συνημμένο(α)
Kαλημέρα σε όλους τους φίλους του Forum

Διόρθωση-Συμπλήρωση κώδικα.
Χρησιμοποιώ κάποιο μέρος εφαρμογής απο το Forum που συζητήθηκε στο παρελθόν.
Με το κλείσιμο της φόρμας βγάζει μήνυμα με επιλογή YES ή NO.
Μπορώ να έχω και τρίτη επιλογή Άκυρο στο μήνυμα; Να έχουμε ΝΑΙ - ΟΧΙ - ΑΚΥΡΟ.
Το χρειάζομαι σε περίπτώσεις που έγινε κάποιο λάθος εκ παραδρομής να υπάρχει η επιλογή άκυρο που να σε επαναφέρει στη φόρμα κανονικά ή να μην κλείσει η βάση.Σας στέλνω δείγμα βάσης.
Ευχαριστώ εκ των προτέρων

Φιλικά
Αλέξανδρος

Tasos 14-03-12 09:27

Καλημέρα σε όλους!
Αλέξανδρε δοκίμασε:

Κώδικας:

Option Compare Database
Option Explicit
Private Const MyPC = 16& 'Αρχικός φάκελος του διαλόγου: Επιφάνεια εργασίας (Desktop)
Private Const ShOptions = 65&

Public Function FolderBrowserDialog() As String
    Dim oShell As Object
    Dim oFolder As Object
  Dim msg As Long
    msg = MsgBox("ΠΡΟΣΟΧΗ!!!!!  Πρόκειτε να κλείσετε την εφαρμογή." & vbLf & _
            "Για λόγους ασφαλείας προτείνεται η αντιγραφή" & "  των αρχείων της βάσης " & _
            vbCrLf & vbCrLf & "Nα γίνει αντιγραφή των αρχείων της βάσης?", _
            vbYesNoCancel, "ΠΡΟΕΙΔΟΠΟΙΗΣΗ ...")
    If msg = vbYes Then

        Set oShell = CreateObject("Shell.Application")
        Set oFolder = oShell.BrowseForFolder( _
                hWndAccessApp, "Επιλέξτε φάκελο για να δημιουργήσετε  αντίγραφο ασφαλείας." & vbLf & _
                "αυτής της εφαρμογής και πατήστε 'ΟΚ'." & vbLf & _
                "Πατήστε 'Ακυρο'για να κλείσετε την εφαρμογή χωρίς αντίγραφο ασφαλείας." _
                & vbLf, ShOptions, MyPC)
        If Not oFolder Is Nothing Then
            FolderBrowserDialog = oFolder.Self.Path
            Set oFolder = Nothing
            Set oShell = Nothing
        End If
    ElseIf msg = vbCancel Then
        FolderBrowserDialog = ":"
    End If

End Function

Private Sub Form_Unload(Cancel As Integer)
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Dim BackupFolder As String
    Dim SourcePath As String
    Dim DestintionPath As String
StartHere:
    BackupFolder = FolderBrowserDialog
    If BackupFolder = ":" Then
        Cancel = True
        Exit Sub
    End If

    If BackupFolder <> vbNullString Then
        If Right(BackupFolder, 1) <> "\" Then BackupFolder = BackupFolder & "\"
        SourcePath = CurrentProject.FullName
        DestintionPath = BackupFolder & Right(SourcePath, InStr(1, StrReverse(SourcePath), "\") - 1)
        If SourcePath <> DestintionPath Then
            FSO.CopyFile SourcePath, DestintionPath, True
        Else
            MsgBox "Δεν μπορείτε να αποθηκεύσετε αντίγραφο ασφαλείας " & _
                    "στον φάκελο που βρίσκεται η εφαρμογή!" & vbLf & _
                    "Επιλέξτε άλλη διαδρομή ή δημιουργήστε νέο φάκελο.", vbExclamation
            DestintionPath = vbNullString
            BackupFolder = vbNullString
            GoTo StartHere
        End If
    End If

End Sub

Τάσος

alex 14-03-12 10:26

Τάσο
Τελικά εχει μεγάλη μετατροπή.Προσπαθούσα όλη μέρα μήπως κάνω κάτι αλλά δεν μπόρεσα.Σ'ευχαριστώ πολύ για την άμεση επίλυση του θέματος
Φιλικά
Αλέξανδρος

alex 14-03-12 10:52

1 Συνημμένο(α)
Τάσο

Τελικά Tάσο δεν ήθελα Επιλογή "Ακυρο" με το κλείσιμο της φόρμας.
Θα σε βάλω πάλι σε κόπο.
Ηθελα Επιλογή "Ακυρο" με το κλείσιμο(Τερματισμό) της Βάσης.
Στέλνω το δείγμα βάσης με μία φόρμα επι πλέον "ekinisi" που έχει τερματισμό.

Φιλικά
Αλέξανδρος


Η ώρα είναι 08:12.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2