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/5780-elegxos-eggrafon-ean-einai-null.html)

thanoswsi 16-01-21 21:16

Έλεγχος εγγραφών εάν είναι null
 
Εχω κάνει την παρακάτω function αλλα δεν μου βγάζει null οταν οι εγγραφές που εισάγω απο αρχείο excel. Μπορείτε να δείτε τι δεν πάει καλά

Κώδικας:

Sub CreateErrStr(FldName As String)
    Dim rst As DAO.Recordset
    Dim StrSql As String
    Dim strFld As String
    Dim ErrStr As String
    strFld = FldName
    'StrSql = "SELECT Thanos.*, Thanos.EmplID FROM Thanos WHERE (((Thanos. " & FldName & ") Is Null));"
    StrSql = "SELECT Thanos.*, Thanos.EmplID, Thanos.Surname, Thanos.FirstName, Thanos.Vat 
FROM Thanos WHERE (((Thanos.EmplID) Is Null) or
((Thanos.Surname) Is Null) or ((Thanos.FirstName) Is Null) or ((Thanos.Vat) Is Null));"

    Set rst = Application.CurrentDb.OpenRecordset(StrSql)
    If rst.RecordCount = 0 Then
        rst.Close
        Exit Sub
    End If
    rst.MoveFirst
    Do
        ErrStr = " To Pedio " & rst(FldName) & " exei timi " & Nz(rst(strFld), "Null")
        rst.Edit
        If Nz(rst!ErrStr, "") = "" Then
                rst(ErrStr) = ErrStr
        Else
                rst(ErrStr) = rst(ErrStr) & "ÊÁÉ" & ErrStr
        End If
        rst.Update
        rst.MoveNext
        If rst.EOF Then Exit Do
    Loop
    rst.Close
End Sub

Ευχαριστώ

tsgiannis 17-01-21 13:18

Μπορεί να μην είναι Null αλλά απλώς κενό διάστημα.
Με την Trim θα αφαιρέσεις τα κενά και με την Len θα ελέγξεις ώστε να πάρεις τα πεδία με μηδενικός μήκος
Len(Trim(SomeField)) =0

thanoswsi 18-01-21 08:20

Καλημέρα,
ελέγχοντας το ερώτημα στο design, παρατηρώ οτι δεν φέρνει εγγραφές. Εχει σχέση το isnull με το αν τα πεδία στο excel που ειναι text fields ειναι κενά; οταν τα κάνω import?

Ευχαριστώ


Παράθεση:

Αρχική Δημοσίευση από tsgiannis (Μήνυμα 32132)
Μπορεί να μην είναι Null αλλά απλώς κενό διάστημα.
Με την Trim θα αφαιρέσεις τα κενά και με την Len θα ελέγξεις ώστε να πάρεις τα πεδία με μηδενικός μήκος
Len(Trim(SomeField)) =0


Tasos 18-01-21 13:48

Καλησπέρα σε όλους!
Θανάση χρόνια πολλά για την ονομαστική σου γιορτή!

Όπως είπε και ο Γιάννης, θα πρέπει να χρησιμοποιήσεις το συνδυασμό συναρτήσεων Len, Trim,
και NZ για να είσαι σίγουρος για το αποτέλεσμα.

Παράδειγμα:

strSQL = "SELECT Thanos.* FROM Thanos WHERE Len(Trim(NZ(EmplID,"")))=0, OR Len(Trim(NZ(Surname,"")))=0 OR Len(Trim(NZ(FirstName,"")))=0 OR Len(trim(NZ(Vat,"")))=0"

Καλή συνέχεια!

Τάσος

thanoswsi 18-01-21 22:04

Καλησπέρα ευχαριστώ για τις ευχές, οτι καλύτερο εύχομαι σε όλους σας.
Ναι εχετε δίκιο και οι δύο σας.
Δουλεύει


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

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


Search Engine Optimization by vBSEO 3.3.2