Αναγν. άρθρου: 210588 - Τελευταία αναθεώρηση: Δευτέρα, 27 Σεπτεμβρίου 2010 - Αναθεώρηση: 2.0

ACC2000: Τρόπος ανάλυσης κειμένου διαχωρισμένου με κόμματα σε πολλά πεδία

Συμβουλή συστήματοςΑυτό το άρθρο ισχύει για διαφορετικό λειτουργικό σύστημα από αυτό που χρησιμοποιείτε. Το περιεχόμενο του άρθρου που ενδέχεται να μην σας αφορά έχει απενεργοποιηθεί.

Σε αυτήν τη σελίδα

Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

Αυτό το άρθρο παρέχει δύο μεθόδους που μπορείτε να χρησιμοποιήσετε για την ανάλυση του κειμένου χωρίζονται με κόμμα σεTextτο πεδίο και να εμφανίσετε το κείμενο σε πολλέςTextΠεδία.

Μπορείτε να χρησιμοποιήσετε την πρώτη μέθοδο για έναTextτο πεδίο που περιέχει δύο λέξεις χωρίζονται με κόμμα, για παράδειγμα, ένα πεδίο που περιέχει ένα επώνυμο ακολουθούμενη από ένα όνομα (Χατζή, Μαρία).

Μπορείτε να χρησιμοποιήσετε τη δεύτερη μέθοδο για έναTextτο πεδίο που περιέχει περισσότερα από δύο λέξεις διαχωρίζονται με κόμματα, για παράδειγμα, ένα πεδίο που περιέχει μια πόλη, μια περιοχή και μια χώρα (Τορόντο, Οντάριο, Καναδάς).

Περισσότερες πληροφορίες

Για να αναλύσει με κόμματαTextπεδία, και για να εμφανίσετε τις συμβολοσειρές κειμένου που προκύπτει σε πολλαπλάσιοTextπεδία, χρησιμοποιήστε μία από τις μεθόδους που παρατίθενται παρακάτω:

Μέθοδος 1

Αυτή η μέθοδος χρησιμοποιεί μια έκφραση σε ένα ερώτημα που περιλαμβάνει τρεις συναρτήσεις: ηInstr()Για να αναζητήσετε το κόμμα στη συνάρτηση τηςTextτο πεδίο και τοLeft$()ANDRight$()συναρτήσεις για την εξαγωγή των δύο τμημάτων τουTextΠεδίο (Field).

Να αναλύσει έναTextτο πεδίο που περιέχει δύο λέξεις που διαχωρίζονται με κόμμα, ακολουθήστε τα εξής βήματα:
  1. Εκκινήστε τη Microsoft Access και στη συνέχεια να ανοίξετε οποιαδήποτε υπάρχουσα βάση δεδομένων.

    Δημιουργία πίνακα με την ακόλουθη δομή:
    Πίνακας: Parse2Words
    ------------------
    Το πεδίο ονόματος: ΕΜΜΙΣΘΟΥ
    Τύπος δεδομένων: κείμενο
  2. Προβολή του πίνακα Parse2Words σε προβολή φύλλου δεδομένων και, στη συνέχεια, πληκτρολογήστε τις παρακάτω τρεις εγγραφές σε τοΕΜΜΙΣΘΟΥΠεδίο (Field):
    Χατζή, Μαρία
    Όνομα Γρηγορίου, Μυρσίνη
    Αμπατζόγλου, Ανδρέας
  3. Δημιουργήστε το ακόλουθο ερώτημα με βάση τον πίνακα Parse2Words:
       Query: QueryTest
       ------------------------------------------------------------------
       Field: FirstName: Right$([Empl],Len([Empl]) - InStr(1,[Empl],",") -1)
          Show: True
       Field: LastName: Left$([Empl],InStr(1,[Empl],",") -1)
          Show: True
    						
    ΣΗΜΕΙΩΣΗ: Μπορείτε να τροποποιήσετε τοQueryTestνα υπάρχουν κενά μεταξύ των δύο τμημάτων σε ερώτημα τουΕΜΜΙΣΘΟΥΠεδίο (Field). Για παράδειγμα, εάν το κείμενο τουΕΜΜΙΣΘΟΥτο πεδίο είναιΧατζή, Μαρίαχωρίς κενά διαστήματα, πρέπει να καταργήσετε το "-1" από την"Όνομα"το πεδίο παράστασης.
  4. Εκτελέστε το ερώτημα. Σημειώστε ότι τοQueryTestερώτημα διαχωρίζει το κείμενο τουΕΜΜΙΣΘΟΥτο πεδίο στα παρακάτω δύο πεδία:
       FirstName   LastName
       --------------------
       John        Smith
       Laura       Callahan
       Andrew      Fuller
    					

Μέθοδος 2

Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για λόγους επεξήγησης, χωρίς να παρέχει καμία εγγύηση, σιωπηρή ή ρητή. Σε αυτά περιλαμβάνονται, ενδεικτικά, οι σιωπηρές εγγυήσεις εμπορευσιμότητας ή/και καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων κώδικα διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα, για να παράσχουν πρόσθετες λειτουργίες, ούτε θα δημιουργήσουν διαδικασίες, για να καλύψουν τις συγκεκριμένες απαιτήσεις σας.Αυτή η μέθοδος χρησιμοποιεί δύο συναρτήσεις οριζόμενες από το χρήστη: μια συνάρτηση που ονομάζεται CountCSWords() για να μετρήσετε τον αριθμό των λέξεων που διαχωρίζεται με κόμμα σε τοTextτο πεδίο και μια συνάρτηση που ονομάζεται GetCSWord() για να επιστρέψετε στη νιοστή λέξη τουTextΠεδίο (Field).

Να αναλύσει έναTextτο πεδίο που περιέχει περισσότερα από δύο λέξεις που διαχωρίζονται με κόμματα, ακολουθήστε τα εξής βήματα:
  1. Εκκινήστε τη Microsoft Access και στη συνέχεια ανοίξτε οποιαδήποτε βάση δεδομένων.
  2. Δημιουργία πίνακα με την ακόλουθη δομή:
    Πίνακας: ParseWords
    --------------------
    Το πεδίο ονόματος: θέση
    Τύπος δεδομένων: κείμενο
  3. Προβολή του πίνακα ParseWords σε προβολή φύλλου δεδομένων και, στη συνέχεια, πληκτρολογήστε τις παρακάτω τρεις εγγραφές σε τοΘέσηΠεδίο (Field):
    Τορόντο, Οντάριο, Καναδάς
    Νομός, Κορινθία, ΗΠΑ
    Βανκούβερ, Βρετανική Κολομβία, τον Καναδά
  4. Δημιουργήστε μια λειτουργική μονάδα και, στη συνέχεια, πληκτρολογήστεOption ExplicitΣτοΔηλώσειςενότητα, αν δεν υπάρχει ήδη εκεί.
  5. Πληκτρολογήστε τις ακόλουθες διαδικασίες:
    Function CountCSWords(ByVal S) As Integer
    ' Counts the words in a string that are separated by commas.
    
    Dim WC As Integer, Pos As Integer
       If VarType(S) <> 8 Or Len(S) = 0 Then
         CountCSWords = 0
         Exit Function
       End If
       WC = 1
       Pos = InStr(S, ",")
       Do While Pos > 0
         WC = WC + 1
         Pos = InStr(Pos + 1, S, ",")
       Loop
       CountCSWords = WC
    End Function
    
    Function GetCSWord(ByVal S, Indx As Integer)
    ' Returns the nth word in a specific field.
    
    Dim WC As Integer, Count As Integer, SPos As Integer, EPos As Integer
       WC = CountCSWords(S)
       If Indx < 1 Or Indx > WC Then
         GetCSWord = Null
         Exit Function
       End If
       Count = 1
       SPos = 1
       For Count = 2 To Indx
         SPos = InStr(SPos, S, ",") + 1
       Next Count
       EPos = InStr(SPos, S, ",") - 1
       If EPos <= 0 Then EPos = Len(S)
       GetCSWord = Trim(Mid(S, SPos, EPos - SPos + 1))
    End Function
    
    					
  6. Η μεταγλώττιση της λειτουργικής μονάδας, αποθηκεύστε το ωςbasParse, και κατόπιν κλείστε το.
  7. Δημιουργήστε το ακόλουθο ερώτημα με βάση τον πίνακα ParseWords:
       Query: QueryTest2
       ---------------------------------------
       Field: City: GetCSWord([Location],1)
          Show: True
       Field: Region: GetCSWord([Location],2)
          Show: True
       Field: Country: GetCSWord([Location],3)
          Show: True
    					
  8. Εκτελέστε το ερώτημα. Σημειώστε ότι τοQueryTest2ερώτημα διαχωρίζει το κείμενο τουΘέσητο πεδίο στα παρακάτω τρία πεδία:
       City        Region             Country
       --------------------------------------
       Toronto     Ontario            Canada
       Boston      Massachusetts      USA
       Vancouver   British Columbia   Canada
    					

Αναφορές

Για πρόσθετες πληροφορίες σχετικά με τους πόρους προγραμματισμού της Visual Basic for Applications, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
226118  (http://support.microsoft.com/kb/226118/EN-US/ ) OFF2000: Προγραμματισμός πόρων για τη Visual Basic for Applications

Για πρόσθετες πληροφορίες σχετικά με την ανάλυση συμβολοσειρών κειμένου, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
209045  (http://support.microsoft.com/kb/209045/EN-US/ ) ACC2000: Δείγματα εκφράσεων για εξαγωγή τμήματος των συμβολοσειρών κειμένου

Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Access 2000 Standard Edition
Λέξεις-κλειδιά: 
kbhowto kbusage kbmt KB210588 KbMtel
Μηχανικά μεταφρασμένοΜηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:210588  (http://support.microsoft.com/kb/210588/en-us/ )