Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > Άνοιγμα βάσης για αποκλειστική χρήση.

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 03-03-14, 13:32
Όνομα: Παναγιώτης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-03-2013
Μηνύματα: 46
Προεπιλογή Άνοιγμα βάσης για αποκλειστική χρήση.

Καλησπέρα ξανά ελπίζω να είστε όλοι καλά και να περνάτε χαρούμενα τις απόκριες.
Θα ήθελα να ρωτήσω το εξής:
Έχω μία βάση δεδομένων σε έναν server την βάση θα την δουλεύουν π.χ 5 διαφορετικοί χρήστες και θα ήθελα όσο είναι ανοιχτή από έναν χρήστης να μην μπορεί να την ανοίξει άλλος. Δοκίμασα με την αποκλειστική χρήση από τις επιλογές Access σύνθετες επιλογές αλλά δεν έγινε τίποτα. Ανάμεσα στα άλλα που προσπάθησα είναι δημιούργησα μεταβλητή, πίνακα που προσπαθούσα να ελέγξω αν η τιμή είναι 1 αλλά αυτό δούλευε μόνο αν αυτός που είχε ανοίξει την βάση την έκλεινε. Τέλος πάντων δοκίμασα διάφορα αλλά δεν τα κατάφερα. Έτσι λοιπόν ήρθα να ζητήσω την βοήθεια σας.
Ευχαριστώ.
Απάντηση με παράθεση
  #2  
Παλιά 03-03-14, 15:02
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.010
Προεπιλογή

Καλησπέρα!
Παναγιώτη δημιούργησε μια συντόμευση δεξί κλικ στην στην επιφάνεια εργασίας > Δημιουργία > Συντόμευση)
και πέρασε το παρακάτω κείμενο: X:\Data\Database.accdb /excl όπου X:\Data\Database.accdb = η διαδρομή του αρχείου.

Μετονόμασε τη συντόμευση όπως ταιριάζει και μοίρασε την στους υπόλοιπους χρήστες ώστε να ανοίγουν τη βάση μόνο όταν αυτή δεν χρησιμοποιείται.

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #3  
Παλιά 03-03-14, 18:09
Όνομα: Παναγιώτης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-03-2013
Μηνύματα: 46
Προεπιλογή

Τάσο καλησπέρα το /excl επειδή το είδα σε ένα βιβλίο το δοκίμασα έκανα μία συντόμευση της βάσης βρήκα την διαδρομή του αρχείο και πρόσθεσα στο τέλος το /excl αν θυμάμαι καλά μου έβγαλε μήνυμα σφάλματος. Επειδή δεν είμαι σίγουρος όμως θα το δω αύριο και θα απαντήσω.
Ευχαριστώ για το ενδιαφέρον.
Απάντηση με παράθεση
  #4  
Παλιά 04-03-14, 08:57
Όνομα: Παναγιώτης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-03-2013
Μηνύματα: 46
Προεπιλογή Καλημέρα

Τάσο καλημέρα πήγα στην βάση έκανα συντόμευση μετά ιδιότητες στην καρτέλα συντόμευσης στην ένδειξη προορισμός αλλάζω το Z:\kataxorisi.accdb σε Z:\kataxorisi.accdb /excl όταν πατάω εφαρμογή βγάζει μήνυμα σφάλματος ότι το όνομα δεν είναι έγκυρο. Αν δεν πατήσω το εφαρμογή ανοίγει η βάση από δύο διαφορετικούς υπολογιστές. Ευχαριστώ.
Απάντηση με παράθεση
  #5  
Παλιά 04-03-14, 09:07
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.010
Προεπιλογή

Το μήνυμα σφάλματος σου λέει καθαρά ότι το όνομα ειναι λάθος.

Άρα θα πρέπει να προσέξεις τη σύνταξη του ορίσματος δηλ. Z:\kataxorisi.accdb ένα κενό και /exc

Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #6  
Παλιά 04-03-14, 09:18
Όνομα: Στέλιος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-05-2009
Περιοχή: Αθήνα
Μηνύματα: 169
Προεπιλογή

Παναγιώτη καλημέρα
Δοκίμασε
"Z:\kataxorisi.accdb" /excl
Απάντηση με παράθεση
  #7  
Παλιά 04-03-14, 09:51
Όνομα: Παναγιώτης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-03-2013
Μηνύματα: 46
Προεπιλογή Καλημέρα.

Καλημέρα δεν έβαζα το κενό γι αυτό δεν δούλευε τώρα που το δοκίμασα δουλεύει αλλά μετά το μήνυμα ότι η βάση είναι ανοιχτή αφήνει ανοιχτό το περιβάλλον της access αυτό μήπως γίνεται να κλείνει μόνο του; Επίσης έκανα έναν πίνακα και από εκεί ελέγχο (με check box (0, -1) αν έχει ανοίξει η συγκεκριμένη φόρμα καταχώρησης, την έκανα και αποκλειστική και αναδυόμενη. Δουλεύει όταν όλα ανοίξουν και κλείσουν κανονικά σε δοκιμή όμως που έκανα να κλείσω την βάση "βίαια" π.χ διακοπή ρεύματος, όπως το περίμενα δεν δουλεύει μήπως έχετε υπόψη κάτι που μπορεί να γίνει γι αυτό ( κάτι σαν όταν η βάση είναι κλειστή και ανοίγει για πρώτη φορά να ορίζεται το check box σε -1);
Ευχαριστώ.
Απάντηση με παράθεση
  #8  
Παλιά 04-03-14, 10:55
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.010
Προεπιλογή

Παναγιώτη, φρόντισε στον VBE να προσθέσεις την αναφορά Microsoft ActiveX Data Objects 2.8 Library (Tools > References).

Κατόπιν σε μια λειτουργική μονάδα (module) πέρασε αυτή τη συνάρτηση:
Κώδικας:
Function CheckIfDatabaseIsInUse()
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim i As Integer
    Set cn = CurrentProject.Connection
    Set rs = cn.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
    While Not rs.EOF
        i = i + 1
        rs.MoveNext
    Wend
    If i > 1 Then
        MsgBox "Η βάση χρησιμοποιείται ήδη. Η εφαρμογή θα τερματιστεί.", vbInformation
        Application.Quit
    Else
        rs.Close
        Set rs = Nothing
    End If
End Function
Δημιούργησε μια μακροεντολή (Καρτέλα Δημιουργία > Μακροεντολή) με το όνομα AutoExec
και πρόσθεσε την ενέργεια "Εκτέλεση κώδικα".

Στο όρισμα συνάρτησης δώσε το CheckIfDatabaseIsInUse().

Αν ήδη υπάρχει η μακροεντολή AutoExec, φρόντισε αφού περάσεις την ενέργεια
"Εκτέλεση κώδικα" να την μεταφέρεις στην πρώτη θέση.

Η βάση σου δεν χρειάζεται ειδικές παραμέτρους εκκίνησης μετά τη χρήση των παραπάνω.

Αν οι χρήστες της βάσης είναι περισσότεροι από έναν, η εφαρμογή θα τερματιστεί.
Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση
  #9  
Παλιά 04-03-14, 11:45
Όνομα: Παναγιώτης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-03-2013
Μηνύματα: 46
Προεπιλογή Καλησπέρα.

Τάσο ευχαριστώ πολύ για την απάντηση.
Απάντηση με παράθεση
  #10  
Παλιά 04-03-14, 12:10
Όνομα: Παναγιώτης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 02-03-2013
Μηνύματα: 46
Προεπιλογή Καλησπέρα.

Τάσο έκανα αυτά που είπες δηλαδή τσέκαρα την βιβλιοθήκη που λες δημιούργησα και την μακροεντολή κατά την εκκίνηση μου βγάζει μήνυμα λάθους στο
Set rs = cn.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
αναφέροντας ότι το αντικείμενο ή υπηρεσία παροχής δεν είναι δυνατό να πραγματοποιήσει την λειτουργία που ζητήσατε.
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Άνοιγμα βάσης από άλλη βάση anestaki Access - Ερωτήσεις / Απαντήσεις 7 06-12-15 17:02
Κοινή χρήση βάσης δεδομένων xristos Access - Ερωτήσεις / Απαντήσεις 0 18-02-14 14:33
Άνοιγμα μιας άλλης υπάρχουσας βάσης και μεταφορά κάποιων δεδομένων από την υπάρχουσα migimis Access - Ερωτήσεις / Απαντήσεις 4 24-01-12 09:45
Άνοιγμα βάσης δεδομένων ntelios Access - Ερωτήσεις / Απαντήσεις 2 30-03-10 18:34
Άνοιγμα βάσης απο τον Πίνακα ελέγχου Melisson Access - Ερωτήσεις / Απαντήσεις 7 01-03-09 13:27


Η ώρα είναι 22:21.