חיפוש באקסס

דיני 2013

משתמש פעיל
עיצוב גרפי
איך עושים חיפוש לפי תיבת טקסט בכל השדות שבטופס
(ניסיתי לחפש פה בפרוג ואין הרבה מידע על זה, מעניין)
 

moishy

משתמש סופר מקצוען
מנוי פרימיום
יש להוסיף שני פקדים לטופס, תיבת טקסט בשם txtFilter ולחצן בשם cmdFilter.
עכשיו יש להוסיף למודול של הטופס את הקוד הבא, הוא יסנן את הטופס (כלומר יציג רק את הרשומות הכוללות באחד השדות, את הטקסט שהוזן בתיבת טקסט txtFilter):
קוד:
Private Sub cmdFilter_Click()

    Dim ctl As Control
    Dim strFilter As String
    
    If Nz(Me.txtFilter, "") = "" Then
        MsgBox "לא הוזן קריטריון לסינון!", vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "סינון"
    End If
    
    For Each ctl In Me.Controls
        If ctl.ControlType = acTextBox Then
            If Left(ctl.ControlSource, 1) <> "=" Then 'דלג על תיבות טקסט מחושבים
                strFilter = strFilter & "[" & ctl.ControlSource & "] Like " & Chr(34) & "*" & txtFilter & "*" & Chr(34) & " OR "
            End If
        End If
    Next
    
    strFilter = Left(strFilter, Len(strFilter) - (20 + Len(txtFilter)))
    Me.Filter = strFilter
    Me.FilterOn = True
    
End Sub
 

moishy

משתמש סופר מקצוען
מנוי פרימיום

moishy

משתמש סופר מקצוען
מנוי פרימיום
יש מצב להעלות דוגמא של קובץ שעושה בעיות? (אצלי זה עובד).
 

moishy

משתמש סופר מקצוען
מנוי פרימיום
הבעיה שיש שם שדה המכיל גרשיים, אין לי פתרון לזה.
בכל אופן הנה גירסה משופרת של הקוד (אם כי היא לא פותרת את בעיית הגרשיים:
קוד:
Private Sub cmdFilter_Click()
    Dim ctl As Control
    Dim strFilter As String

    If Nz(Me.txtFilter, "") = "" Then
        MsgBox "לא הוזן קריטריון לסינון!", vbInformation + vbMsgBoxRight + vbMsgBoxRtlReading, "סינון"
    End If

    For Each ctl In Me.Controls
        If ctl.ControlType = acTextBox And ctl.Name <> "txtFilter" Then
            If Left(ctl.ControlSource, 1) <> "=" Then 'דלג על תיבות טקסט מחושבים
                strFilter = strFilter & "[" & ctl.ControlSource & "] Like " & Chr(34) & "*" & txtFilter & "*" & Chr(34) & " OR "
            End If
        End If
    Next

    strFilter = Left(strFilter, Len(strFilter) - 4)
    Me.Filter = strFilter
    Me.FilterOn = True
End Sub
 

דיני 2013

משתמש פעיל
עיצוב גרפי
נכתב ע"י moishy;1950219:
הבעיה שיש שם שדה המכיל גרשיים

צודק הורדתי את הגרשיים ועובד
אבל יש עוד בעיה שבתיבה משולבת הוא לא מחפש כיון שהוא מאחסן את העמודה הראשונה שזה מוסתר, יש לך פיתרון לזה
 

FullTime

משתמש מקצוען
נכתב ע"י דיני 2013;1950264:
צודק הורדתי את הגרשיים ועובד
אבל יש עוד בעיה שבתיבה משולבת הוא לא מחפש כיון שהוא מאחסן את העמודה הראשונה שזה מוסתר, יש לך פיתרון לזה

אפשר להגיד לו שיהיה עמודה מאוגדת העמודה שאתה רוצה לחפש.
 

דיני 2013

משתמש פעיל
עיצוב גרפי
האמת היא עכשיו אני רואה שבתיבה משולבת הוא בכלל לא מחפש
 

קצת סדר...

משתמש פעיל
האם אפשר לצמצם את החיפוש רק בשדה אחד

כלומר כמו שמחפש עכשיו כל שורה שמכיל "יוסף" לא משנה אם בהתחלה או בסוף בשדה אחד בלבד לא בכל השדות
 

shsh654

משתמש מקצוען
עיצוב גרפי
D I G I T A L
נכתב ע"י שמואלעוויץ;1951468:
כלומר כמו שמחפש עכשיו כל שורה שמכיל "יוסף" לא משנה אם בהתחלה או בסוף בשדה אחד בלבד לא בכל השדות

לא מובנת (לי) השאלה
 

קצת סדר...

משתמש פעיל
נכתב ע"י shsh654;1951630:
לא מובנת (לי) השאלה

פשוט מאוד יש תיבת משולבת של חיפוש לקוחות, אמנם יש בעיה שרק מחפש בריש התיבה [לדוגמא אם יש לקוח בשם "חיים יוסף" ומכניסים את יוסף לבד הוא לא מביא את "חיים יוסף רק לקוחות שהשם הראשון שלהם הוא "יוסף" ] בקיצור בהגדרת חיפוש קוראים לזה "מכיל" השאלה איך עושים את התיבה משולבת או אופן אחר שיהיה חיפוש "מכיל" ולא ריש תיבה
 

HUBHCBH

משתמש מקצוען
אוטומציה עסקית
נכתב ע"י שמואלעוויץ;1951884:
פשוט מאוד יש תיבת משולבת של חיפוש לקוחות, אמנם יש בעיה שרק מחפש בריש התיבה [לדוגמא אם יש לקוח בשם "חיים יוסף" ומכניסים את יוסף לבד הוא לא מביא את "חיים יוסף רק לקוחות שהשם הראשון שלהם הוא "יוסף" ] בקיצור בהגדרת חיפוש קוראים לזה "מכיל" השאלה איך עושים את התיבה משולבת או אופן אחר שיהיה חיפוש "מכיל" ולא ריש תיבה

להשתמש ב Like

לדוגמה
קוד:
Like "יוס"&*
יתן לך כל מה שיתחיל ב"יוס"
אם תוסיף
קוד:
Like*& "יוס"&*
יתן לך כל מה שמכיל "יוס"

הסבר: Like= דומה
"יוס" = קרטריון
& = ו..
*= וכו'
 

ראש לשועלים

מהמשתמשים המובילים!
כתיבה ספרותית
פשוט מאוד יש תיבת משולבת של חיפוש לקוחות, אמנם יש בעיה שרק מחפש בריש התיבה [לדוגמא אם יש לקוח בשם "חיים יוסף" ומכניסים את יוסף לבד הוא לא מביא את "חיים יוסף רק לקוחות שהשם הראשון שלהם הוא "יוסף" ] בקיצור בהגדרת חיפוש קוראים לזה "מכיל" השאלה איך עושים את התיבה משולבת או אופן אחר שיהיה חיפוש "מכיל" ולא ריש תיבה
הוא שואל שאלה טובה ונחוצה - לא בשדה חיפוש. בכל תיבה משולבת בטופס, איך עושים שימצא גם את הרשומות שמכילות את מה שהוקלד או למצער אלה שהמילה השניה שלהן מתחילה בתוכן התיבה המשולבת.
יש לי רעיון לקוד שיפתור את זה חלקית, אבל אין לי כוח לכתוב אותו.
ברכות למסייעים.
 

אולי מעניין אותך גם...

הפרק היומי

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


תהילים פרק קיט א'

א אַשְׁרֵי תְמִימֵי דָרֶךְ הַהֹלְכִים בְּתוֹרַת יְהוָה:ב אַשְׁרֵי נֹצְרֵי עֵדֹתָיו בְּכָל לֵב יִדְרְשׁוּהוּ:ג אַף לֹא פָעֲלוּ עַוְלָה בִּדְרָכָיו הָלָכוּ:ד אַתָּה צִוִּיתָה פִקֻּדֶיךָ לִשְׁמֹר מְאֹד:ה אַחֲלַי יִכֹּנוּ דְרָכָי לִשְׁמֹר חֻקֶּיךָ:ו אָז לֹא אֵבוֹשׁ בְּהַבִּיטִי אֶל כָּל מִצְוֹתֶיךָ:ז אוֹדְךָ בְּיֹשֶׁר לֵבָב בְּלָמְדִי מִשְׁפְּטֵי צִדְקֶךָ:ח אֶת חֻקֶּיךָ אֶשְׁמֹר אַל תַּעַזְבֵנִי עַד מְאֹד:
נקרא  38  פעמים

לוח מודעות

למעלה