אופיס 365 איך מוצאים באקסס את המילה הראשונה או האחרונה בשדה טקסט

  • הוסף לסימניות
  • #1
אני רוצה להפריד בין שם משפחה לשם פרטי שנמצאים בשדה אחד, ולכן אני צריך למצוא את המילה הראשונה בכל שדה (למרות שזה לא יעזור ל"בן שלום משה" לדוגמא), באקסס מצאתי את הפקודה Left אבל היא מוצאת מספר אותיות מוגדר ולא מילים שלמות.
תודה
 
  • הוסף לסימניות
  • #2
השאלות שלך מרתקות ומראות על חשיבה מקורית.

קוד:
Option Explicit

Function GetNthWord(strStringFrom As String, strSplitCharacter As String, blnLastWord As Boolean) As String
    On Error Resume Next
    Dim intExctractWordNumber As Integer
    If blnLastWord Then
        intExctractWordNumber = fCountWords(strStringFrom)
    Else
        intExctractWordNumber = 1
    End If
    GetNthWord = Split(strStringFrom, strSplitCharacter)(intExctractWordNumber - 1)
    If GetNthWord = "áï" Then
        GetNthWord = GetNthWord & " " & Split(strStringFrom, strSplitCharacter)(intExctractWordNumber)
    End If
    If Err.Number <> 0 Then
        GetNthWord = ""
    End If
    On Error GoTo 0
End Function

Function fCountWords(strText As String) As Integer
    Dim WordCount As Integer
    Dim S As String
    Dim N As Integer
    S = fReduceSpaces(strText)
    N = 0
    If S <> vbNullString Then
        N = Len(S) - Len(Replace(S, " ", "")) + 1
    End If
    fCountWords = WordCount + N
End Function

Function fReduceSpaces(strText As String) As String
    Do Until InStr(strText, "  ") = 0
        strText = Replace(strText, "  ", " ")
    Loop
    fReduceSpaces = Trim(strText)
End Function
ותקרא לו כך (עבור מילה הראשונה False, ועבור המילה האחרונה True):
קוד:
GetNthWord("בן שלום משה", " ", False)
כרגיל הקוד גמיש וניתן לשינוי להתאמה, במידה והמילה הראשונה היא "בן" הוא יחזיר את שני המילים הראשונות, ניתן כמובן להוסיף עוד מילים במידה ויש צורך.
 
  • הוסף לסימניות
  • #3
חזק ביותר!!! (מסדר גם את בן שלום, בר נתן וכ').
עכשיו הבעיה שלי איך אני משמיט את הנתון הנ"ל מהשדה כדי שאמצא את השמות הפרטיים (ולא מועיל לי למצוא את המילה האחרונה כיון שחלק ניכר מהאנשים יש להם שני שמות ויותר).
 
  • הוסף לסימניות
  • #4
Replace(GetNthWord([שם השדה], " ", False), "")</pre>
 
  • הוסף לסימניות
  • #5
הוא כותב לי שהפונקציה מכילה מספר מוטעה של ארגומנטים
 
  • הוסף לסימניות
  • #6
סליחה, טעות שלי.
Replace([שם השדה],GetNthWord([שם השדה], " ", false), "")
 

פרוגבוט

תוכן שיווקי
פרסומת

פוסטים חדשים שאולי לא קראת....

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!

לוח מודעות

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק כה

אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
נקרא  2  פעמים
למעלה