Τελευταία ενημέρωση: 23 Ιανουαρίου 2020
ΠΡΟΒΛΗΜΑ
Κατά τη δημιουργία μιας σύνδεσης σε έναν πίνακα στον SQL Server η οποία εμπεριέχει στήλη ταυτότητας, η Access, κανονικά, θα αναγνωρίσει αυτή τη στήλη ως μια στήλη αυτόματης αρίθμησης.
Στις δομές τρέχοντος καναλιού (16.0.12325.*) της έκδοσης 1912 του Office 365 και του Office 2016/2019, οι στήλες ταυτότητας δεν ταυτοποιούνται σωστά και, αντί αυτού, θα αναγνωρίζονται μόνο ως αριθμοί.
Αυτό θα συμβαίνει κατά τη δημιουργία νέων συνδέσεων μέσω του περιβάλλοντος εργασίας χρήστη ή μέσω κώδικα, αλλά μόνο για τις νέες συνδέσεις. Οι υπάρχουσες συνδέσεις δεν θα επηρεαστούν, εκτός εάν η σύνδεση ανανεωθεί.
Η Access χρησιμοποιεί την κατάλληλη μέθοδο αναγνώρισης μιας στήλης ταυτοτήτων για διάφορους σκοπούς, επομένως αυτό μπορεί να επηρεάσει τις εφαρμογές με διάφορους τρόπους.
Για παράδειγμα, μια στήλη ταυτότητας χρησιμοποιείται συνήθως για να αναγνωρίσει μια εγγραφή που προστέθηκε πρόσφατα. Όταν η στήλη ταυτότητας δεν χρησιμοποιείται, η Access μπορεί να μην είναι σε θέση να βρει τη γραμμή που μόλις προστέθηκε, γεγονός που θα οδηγήσει στην εμφάνιση των πεδίων αυτής της γραμμής ως #Διαγραμμένα.
Ενδέχεται να δείτε παρόμοια προβλήματα κατά τη χρήση της ιδιότητας RecordSet.LastModified για την ανάκτηση τιμών της τελευταίας προστιθέμενης εγγραφής. Ο παρακάτω κώδικας:
Set rst = CurrentDb().OpenRecordset("tblWithIdentityColumn")
rst.AddNew
rst!CompanyName = "Contoso"
rst.Update
rst.Bookmark = rst.LastModified
MsgBox rst!CompanyName
Μπορεί να οδηγήσει στο σφάλμα 3167:
Και στις δύο περιπτώσεις, η εγγραφή θα προστεθεί επιτυχώς, αλλά η Access δεν θα καταφέρει να την εντοπίσει με επιτυχία.
Επιπλέον, η Access θα παραβλέψει τις προσπάθειες απευθείας ενημέρωσης της στήλης ταυτότητας. Ωστόσο, σε αυτές τις δομές επιτρέπεται η προσπάθεια, αλλά αποτυγχάνει και δημιουργείται ένα μήνυμα σφάλματος:
[SQL Server] Δεν είναι δυνατή η εισαγωγή απόλυτης τιμής για τη στήλη ταυτότητας στον πίνακα 'tblOrders' όταν η επιλογή IDENTITY_INSERT έχει οριστεί ως απενεργοποιημένη. (#544)
ΚΑΤΑΣΤΑΣΗ: ΔΙΟΡΘΩΘΗΚΕ
Η επιδιόρθωση για αυτό το πρόβλημα είναι πλέον διαθέσιμη για την έκδοση 1912. Ίσως χρειαστεί να κάνετε υποχρεωτική ενημέρωση για να λάβετε την επιδιόρθωση. Ο αριθμός διορθωμένης δομής πρέπει να είναι 12325.20344.
Εάν χρησιμοποιείτε το Insiders Slow (έκδοση 2001) ή το Insiders Fast (έκδοση 2002). Η επιδιόρθωση δεν έχει ακόμη παραδοθεί σε αυτά τα κανάλια, επομένως μπορεί να θέλετε να μεταβείτε στο τρέχον κανάλι.
Σημείωση: Αφού αλλάξετε εκδόσεις, θα πρέπει να ανανεώσετε τυχόν συνδέσεις που επηρεάζονται για να εξασφαλίσετε τη σωστή συμπεριφορά τους.
Ρωτήστε τους ειδικούς
Επικοινωνήστε με ειδικούς, συζητήστε για τα τελευταία νέα, τις ενημερώσεις και τις βέλτιστες πρακτικές και διαβάστε το ιστολόγιό μας.
Λήψη βοήθειας από την κοινότητα
Υποβάλετε μια ερώτηση και βρείτε λύσεις από εκπροσώπους υποστήριξης, MVP, μηχανικούς και άλλους χρήστες του Office.
Προτείνετε μια νέα δυνατότητα
Οι προτάσεις και τα σχόλιά σας είναι πολύτιμα για εμάς! Μοιραστείτε τις σκέψεις σας. Είμαστε έτοιμοι να σας ακούσουμε.