Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Null ανακριβές (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/6615-null-anakribes.html)

jorgis 20-02-25 09:55

Null ανακριβές
 
1 Συνημμένο(α)
Καλημέρα σε όλη την υπέροχη παρέα,
Στο παράδειγμα που ανεβάζω υπάρχει ο πίνακας PAA που περιέχει 11 εγγραφές με κενό σε όλα τα αντίστοιχα πεδία.
όταν δημιουργώ ερώτημα PA_Not null με κριτήριο πεδίο ΕΠΩΝΥΜΙΑ Is Not Null τότε εμφανίζονται 10 εγγραφές χωρίς την Νο 1. Όταν δημιουργώ ερώτημα PA_Null με αντίστοιχο κριτήριο Is Null εμφανίζεται το ίδιο αποτέλεσμα.
Το ερώτημά μου είναι τι συμβαίνει ; Τι ιδιότητα πρέπει να έχει το πεδίο για να είναι ακριβές το αποτέλεσμα. Σημειώνω ότι το περιεχόμενο του πεδίου προέρχεται από το excel που είναι συνδεδεμένο με την ονομασία APO.
Ευχαριστώ και πάλι

Γιώργης

ggreg75 20-02-25 10:41

Γιώργο καλημέρα,

Στο ID 10 υπάρχουν 2 κενοί χαρακτήρες (τα κενά είναι και αυτά χαρακτήρες) με αποτέλεσμα να το αντιμετωπίζει ως μη κενό
Στο ερώτημα «PA_Not null» όρισε το πεδίο «ΕΠΩΝΥΜΙΑ» με κριτήρια : Is Not Null And <>""
Στο ερώτημα «PA_Null» όρισε το πεδίο «ΕΠΩΝΥΜΙΑ» με κριτήρια : Is Null Or ""

Επίσης, για περαιτέρω έλεγχο μπορείς να χρησιμοποιήσεις τη συνάντηση Len([ΕΠΩΝΥΜΙΑ]) για την καταμέτρηση των χαρακτήρων κάθε γραμμής σε αυτό το πεδίο.

Γρηγόρης

jorgis 20-02-25 11:29

Ευχαριστώ πολύ Γρηγόρη

pctechdr 11-03-25 14:57

Το πρόβλημα είναι ότι ο έλεγχος για "κενό" [μπορεί να σημαίνει πολλά διαφορετικά πράγματα σε διαφορετικούς τύπους] [1]:

* Για έναν τύπο 'Object', η μεταβλητή μπορεί να είναι 'Nothing'.
* Για έναν τύπο 'String', η συμβολοσειρά μπορεί να μην έχει καθόλου περιεχόμενο: '""', 'vbNullString'.
* Για έναν τύπο 'Variant', η συμβολοσειρά μπορεί να έχει οποιοδήποτε από τα ακόλουθα χαρακτηριστικά ή τιμές:
* μπορεί να είναι 'Missing' εάν η μεταβλητή είναι μια αχρησιμοποίητη προαιρετική παράμετρος,
* μπορεί να είναι 'Empty' εάν δεν έχει εκχωρηθεί ποτέ,
* μπορεί να είναι 'Null' εάν, για παράδειγμα, είναι δεσμευμένη σε ένα nullable πεδίο ή μη δεσμευμένη χωρίς τιμή,
* μπορεί να είναι μια κενή συμβολοσειρά '""', 'vbNullString'. Θα σου πρότεινα να χρησιμοποιήσεις αυτήν την συνάρτηση.

Public Function IsBlank(arg As Variant) As Boolean
Select Case VarType(arg)
Case vbEmpty
IsBlank = True
Case vbNull
IsBlank = True
Case vbString
IsBlank = (LenB(arg) = 0)
Case vbObject
IsBlank = (arg Is Nothing)
Case Else
IsBlank = IsMissing(arg)
End Select
End Function


Η ώρα είναι 11:24.

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


Search Engine Optimization by vBSEO 3.3.2