Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Άνοιγμα βάσης για αποκλειστική χρήση.
Καλησπέρα ξανά ελπίζω να είστε όλοι καλά και να περνάτε χαρούμενα τις απόκριες. Θα ήθελα να ρωτήσω το εξής: Έχω μία βάση δεδομένων σε έναν server την βάση θα την δουλεύουν π.χ 5 διαφορετικοί χρήστες και θα ήθελα όσο είναι ανοιχτή από έναν χρήστης να μην μπορεί να την ανοίξει άλλος. Δοκίμασα με την αποκλειστική χρήση από τις επιλογές Access σύνθετες επιλογές αλλά δεν έγινε τίποτα. Ανάμεσα στα άλλα που προσπάθησα είναι δημιούργησα μεταβλητή, πίνακα που προσπαθούσα να ελέγξω αν η τιμή είναι 1 αλλά αυτό δούλευε μόνο αν αυτός που είχε ανοίξει την βάση την έκλεινε. Τέλος πάντων δοκίμασα διάφορα αλλά δεν τα κατάφερα. Έτσι λοιπόν ήρθα να ζητήσω την βοήθεια σας. Ευχαριστώ. |
#2
| ||||
| ||||
Καλησπέρα! Παναγιώτη δημιούργησε μια συντόμευση δεξί κλικ στην στην επιφάνεια εργασίας > Δημιουργία > Συντόμευση) και πέρασε το παρακάτω κείμενο: X:\Data\Database.accdb /excl όπου X:\Data\Database.accdb = η διαδρομή του αρχείου. Μετονόμασε τη συντόμευση όπως ταιριάζει και μοίρασε την στους υπόλοιπους χρήστες ώστε να ανοίγουν τη βάση μόνο όταν αυτή δεν χρησιμοποιείται. Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#3
| |||
| |||
Τάσο καλησπέρα το /excl επειδή το είδα σε ένα βιβλίο το δοκίμασα έκανα μία συντόμευση της βάσης βρήκα την διαδρομή του αρχείο και πρόσθεσα στο τέλος το /excl αν θυμάμαι καλά μου έβγαλε μήνυμα σφάλματος. Επειδή δεν είμαι σίγουρος όμως θα το δω αύριο και θα απαντήσω. Ευχαριστώ για το ενδιαφέρον. |
#4
| |||
| |||
Καλημέρα
Τάσο καλημέρα πήγα στην βάση έκανα συντόμευση μετά ιδιότητες στην καρτέλα συντόμευσης στην ένδειξη προορισμός αλλάζω το Z:\kataxorisi.accdb σε Z:\kataxorisi.accdb /excl όταν πατάω εφαρμογή βγάζει μήνυμα σφάλματος ότι το όνομα δεν είναι έγκυρο. Αν δεν πατήσω το εφαρμογή ανοίγει η βάση από δύο διαφορετικούς υπολογιστές. Ευχαριστώ.
|
#5
| ||||
| ||||
Το μήνυμα σφάλματος σου λέει καθαρά ότι το όνομα ειναι λάθος. Άρα θα πρέπει να προσέξεις τη σύνταξη του ορίσματος δηλ. Z:\kataxorisi.accdb ένα κενό και /exc Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#6
| |||
| |||
Παναγιώτη καλημέρα Δοκίμασε "Z:\kataxorisi.accdb" /excl |
#7
| |||
| |||
Καλημέρα.
Καλημέρα δεν έβαζα το κενό γι αυτό δεν δούλευε τώρα που το δοκίμασα δουλεύει αλλά μετά το μήνυμα ότι η βάση είναι ανοιχτή αφήνει ανοιχτό το περιβάλλον της access αυτό μήπως γίνεται να κλείνει μόνο του; Επίσης έκανα έναν πίνακα και από εκεί ελέγχο (με check box (0, -1) αν έχει ανοίξει η συγκεκριμένη φόρμα καταχώρησης, την έκανα και αποκλειστική και αναδυόμενη. Δουλεύει όταν όλα ανοίξουν και κλείσουν κανονικά σε δοκιμή όμως που έκανα να κλείσω την βάση "βίαια" π.χ διακοπή ρεύματος, όπως το περίμενα δεν δουλεύει μήπως έχετε υπόψη κάτι που μπορεί να γίνει γι αυτό ( κάτι σαν όταν η βάση είναι κλειστή και ανοίγει για πρώτη φορά να ορίζεται το check box σε -1); Ευχαριστώ. |
#8
| ||||
| ||||
Παναγιώτη, φρόντισε στον 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 και πρόσθεσε την ενέργεια "Εκτέλεση κώδικα". Στο όρισμα συνάρτησης δώσε το CheckIfDatabaseIsInUse(). Αν ήδη υπάρχει η μακροεντολή AutoExec, φρόντισε αφού περάσεις την ενέργεια "Εκτέλεση κώδικα" να την μεταφέρεις στην πρώτη θέση. Η βάση σου δεν χρειάζεται ειδικές παραμέτρους εκκίνησης μετά τη χρήση των παραπάνω. Αν οι χρήστες της βάσης είναι περισσότεροι από έναν, η εφαρμογή θα τερματιστεί. Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#9
| |||
| |||
Καλησπέρα.
Τάσο ευχαριστώ πολύ για την απάντηση.
|
#10
| |||
| |||
Καλησπέρα.
Τάσο έκανα αυτά που είπες δηλαδή τσέκαρα την βιβλιοθήκη που λες δημιούργησα και την μακροεντολή κατά την εκκίνηση μου βγάζει μήνυμα λάθους στο Set rs = cn.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}") αναφέροντας ότι το αντικείμενο ή υπηρεσία παροχής δεν είναι δυνατό να πραγματοποιήσει την λειτουργία που ζητήσατε. |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
Άνοιγμα βάσης από άλλη βάση | anestaki | Access - Ερωτήσεις / Απαντήσεις | 7 | 06-12-15 18:02 |
Κοινή χρήση βάσης δεδομένων | xristos | Access - Ερωτήσεις / Απαντήσεις | 0 | 18-02-14 15:33 |
Άνοιγμα μιας άλλης υπάρχουσας βάσης και μεταφορά κάποιων δεδομένων από την υπάρχουσα | migimis | Access - Ερωτήσεις / Απαντήσεις | 4 | 24-01-12 10:45 |
Άνοιγμα βάσης δεδομένων | ntelios | Access - Ερωτήσεις / Απαντήσεις | 2 | 30-03-10 19:34 |
Άνοιγμα βάσης απο τον Πίνακα ελέγχου | Melisson | Access - Ερωτήσεις / Απαντήσεις | 7 | 01-03-09 14:27 |
Η ώρα είναι 21:40.