Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Διόρθωση συνάρτησης mid$ (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/5128-diorthosi-synartisis-mid.html)

alex 09-01-19 09:40

Διόρθωση συνάρτησης mid$
 
Καλημέρα σε όλους τους φίλους της κοινότητας!!
Αντιμετωπίζω ένα πρόβλημα με την συνάρτηση mid$
παραθέτω τον κώδικα αν γνωρίζει κάποιο μέλος πως μπορεί να διορθωθεί
Κώδικας:

' Βάλτε τα επιλεγμένα στοιχεία του τηλεφωνικού καταλόγου στο πεδίο αριθμού τηλεφώνου
 Private Sub PhonebookList_Click()
    Dim curPhone As String, curName As String, strPhones As String, strNames As String
    Dim rowNum As Variant
   
    ' Πάρτε επιλεγμένους αριθμούς τηλεφώνων και ονόματα  από την λίστα τηλεφώνων
        For Each rowNum In .ItemsSelected
            curPhone = .Column(1, rowNum)
            curName = .Column(0, rowNum)
            strPhones = strPhones & ", " & curPhone
            strNames = strNames & ", " & curName
        Next rowNum
    End With
    If Len(strPhones) Then strPhones = mid$(strPhones, 3)
    If Len(strNames) Then strNames = "(" & mid$(strNames, 3) & ")"
   
    ' Βάλτε τους στο πεδίο PhoneNumber    txtTo = Str2Null(strPhones)
    txtContactName = strNames
End Sub

Το σφάλμα δεν το βγάζει σε βάση με κατάληξη mdb αλλά σε μεταφορά στοιχείων σε νέα βάση (.accdb) με τα ίδια reference βγάζει το παρακάτω μήνυμa
“Type-declaration character does not match declared data type”
Αν και πιστεύω έχει να κάνει με το DAO

alex 09-01-19 11:33

Το βρήκα τελικά:

Η συνάρτηση MID μετράει πάντα κάθε χαρακτήρα, ανεξάρτητα από το αν είναι ενός ή δύο byte, ως 1, ανεξάρτητα από την προεπιλεγμένη ρύθμιση γλώσσας.

Η συνάρτηση MIDB μετράει κάθε χαρακτήρα των δύο byte ως 2 όταν έχετε ενεργοποιήσει την επεξεργασία γλώσσας που υποστηρίζει DBCS και τη ρυθμίσετε ως την προεπιλεγμένη γλώσσα. Διαφορετικά, η συνάρτηση MIDB μετράει κάθε χαρακτήρα ως 1.

Οι γλώσσες που υποστηρίζουν DBCS είναι οι εξής: Ιαπωνικά, Κινεζικά (Απλοποιημένα), Κινεζικά (Παραδοσιακά) και Κορεατικά.

Αντικατέστησα το mid$ σε midB και λύθηκε το πρόβλημα.


Η ώρα είναι 05:08.

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


Search Engine Optimization by vBSEO 3.3.2