דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
OdedDvirO

OdedDvir

@OdedDvir
אודות
פוסטים
2.4k
נושאים
60
שיתופים
0
קבוצות
0
עוקבים
21
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • אקסל - שליפת נתונים אוטו' לפי תנאי מסויים לטבלה אחרת
    OdedDvirO OdedDvir

    @UA

    התשובה הקצרה היא:

    שנה את התנאי לתנאי הבא:

    BITAND(B2:B6>100,C2:C6="UP")
    

    או כך:

    (B2:B6>100) * (C2:C6="UP")
    

    התשובה הארוכה היא:

    הבעיה היא בתנאי. האופרטור AND (וגם OR) מוגדר להחזיר ערך יחיד בלבד.

    אתה מספק לו כקלט שני מערכים, כי כל אחת מהנוסחאות B2:B6>100 ו- C2:C6="UP" תחזיר מערך בוליאני.
    בדוגמא שהבאת, הנוסחא:

    B2:B6>100
    

    תחזיר את המערך הבא:

    { TRUE, FALSE, TRUE, FALSE, FALSE }
    

    והנוסחא

    C2:C6="UP"
    

    תחזיר את המערך:

    { TRUE, TRUE, FALSE, FALSE, TRUE }
    

    כשמעבירים קלט של מערך לאופרטור AND, התוצאה תהיה הפעלת AND על כל האיברים שבמערך, והחזרת תוצאה יחידה, דהיינו: TRUE אם כל הערכים בקלט הם TRUE, ו-FALSE אחרת.

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

    { TRUE, FALSE, FALSE, FALSE, FALSE }
    

    מייקרוסופט יישמו פונקציות חדשות BITAND BITOR שמסוגלות להחזיר מערך. לכן תוכל לחליף את התנאי לתנאי הבא:

    BITAND(B2:B6>100,C2:C6="UP")
    

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

    BITAND(BITAND(B2:B6>100,C2:C6="UP"),D2:D6="GFS")
    

    🤦

    לחילופין אפשר להשתמש בטריק אחר, ופשוט לשנות את התנאי AND למכפלה:

    (B2:B6>100) * (C2:C6="UP") * (D2:D6="GFS")
    
    תוכנה

  • הפיכת אותיות למספרים באקסל
    OdedDvirO OdedDvir

    @NETZ אמר בהפיכת אותיות למספרים באקסל:

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

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

    5aa32b5f-f48c-40e8-b6aa-ab75b2ec7f28-תמונה.png

    f54f6fd4-2939-4811-b287-ee1f2bd80acd-תמונה.png

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

    תוכנה

  • שימוש במשפט SQL כמשתנה בקוד, ושאלות על טפסים באקסס
    OdedDvirO OdedDvir

    @סקרן-0 לשאלתך הראשונה:

    האם ואיך ניתן להגדיר משתנה ב VBA על בסיס משפט SQL?

    משפט SQL באקסס לא מחזיר ערך. הוא פשוט הוראה לבסיס הנתונים לבצע שאילתה מסויימת.
    שמא כוונתך לשאול: האם ניתן לשלוף ערך מסויים מתוך שאילתא\משפט SQL?
    התשובה הקצרה היא כן. השאלה היא מה המשתנה אמור להכיל? תוצאה של שדה מסויים? סכום של עמודה מסויימת? מספר הרשומות? לכל מקרה יש אופן ביצוע אחר. לחלק יש כבר פונקציות מובנות באקסס, כמו DSum שציין @אפר-שריפה.

    באופן כללי, אם אתה מבקש לקבל שדה מסויים בשאילתא, אפשר להשתמש באובייקט RecordSet, כמו שציין יפה @אפר-שריפה.

    מובן שעליך לוודא שהשאילתא מחזירה רק רשומה אחת, אחרת לא ברור מאיזו רשומה יאוחזר הערך.

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

    Public Function GetFieldFromSQL(SQL As String, fieldName As String) As Variant
        Dim rs As DAO.Recordset
        Dim result As Variant
        Set rs = CurrentDb.OpenRecordset(SQL, dbOpenSnapshot, dbReadOnly)
        result = Null
        If Not rs.EOF Then result = rs.Fields(fieldName).Value
        rs.Close
        GetFieldFromSQL = result
    End Function
    

    לדוגמא (על פי המדריך למערכת תורמים):

    Dim SQL As String
    SQL = "SELECT FullName FROM qryDonor_FullName WHERE ID=2"
    Debug.Print GetFieldFromSQL(SQL, "FullName")
    

    תודפס התוצאה:

    לוי יצחק
    

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

    תוכנה

  • סינון לטווח תאריכים באקסס
    OdedDvirO OdedDvir

    @avi-rz אתה צודק.
    אמנם כיון ש @סקרן-0 מכניס את התנאי בקריטריון השאילתא, שיטה מקוצרת וקריאה יותר היא על ידי המילה השמורה BETWEEN. כלומר בקריטריון שדה התאריך של השאילתא לכתוב (המרתי את העברית לאנגלית):

    BETWEEN Forms![Form1]![txtFirstDate] AND Forms![Form1]![txtLastDate]
    
    תוכנה

  • אקסס|vba שימוש בresponsetext בשביל למלאות טופס
    OdedDvirO OdedDvir

    @צבי-ש אמר באקסס|vba שימוש בresponsetext בשביל למלאות טופס:

    אשמח לעזרה מהרגע הזה ואילך,

    אחרי השורה:

    Result = XMLHTTP.responsetext
    

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

    אתה צריך לחלץ את הערכים שקיבלת בתגובה.
    לשם כך אתה צריך להמיר את מחרוזת ה-JSON לאובייקט, שיחזיק את כל הערכים. לא ברור מהתשובה שלך האם עברת את השלב הזה.

    תוכנה

  • אקסס: שמירת הנתונים בטופס לפני פתיחת דוח. ונעילת רשומות.
    OdedDvirO OdedDvir

    @סקרן-0
    תשובה לשאלה 1:
    אתה צריך לשמור את השינויים לפני פתיחת הדוח. הדרך הכי קלה היא בקוד של הלחצן:

    Private Sub cmdOpenReport_Click()
       Me.Dirty = False 'שומר את השינויים בטופס
       DoCmd.OpenReport .....
    End Sub
    

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

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

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

    אם לא אכפת לך, נא שנה את הכותרת, כך שתהיה לה משמעות שימושית. למשל:
    אקסס: שמירת הנתונים בטופס לפני פתיחת דוח. ונעילת רשומות.

    תוכנה

  • התקנת "מפעל הפורמטים" המעודכן!
    OdedDvirO OdedDvir

    @dovid אמר בהתקנת "מפעל הפורמטים" המעודכן!:

    למי שרוצה תחליף אין לי משהו אישית להציע, רק ראיתי באינטרנט את התוכנה https://handbrake.fr/ שהיא קוד פתוח. זה כמובן לא טוב למי שצריך עברית.

    אכן handbrake תוכנה מעולה, שמציעה המרות אצווה עם הגדרות מתוחכמות, שמירת פרופילים ועוד.
    יש עוד אלטרנטיבה: FileConverter. קלה וחינמית עם קוד פתוח. תומכת בתמונות, אודיו ווידאו. ואפשר להריץ בקליק ימני על קובץ ישירות מתוך האקספלורר:
    7ae051f5-07f9-42af-97d7-6c255665098f-תמונה.png

    תוכנה

  • שאלה | איך לקבץ כמה רשומות למחרוזת אחת באקסס?
    OdedDvirO OdedDvir

    @חייםיודלביץ לגבי השאלה הראשונה, עיין בפוסט הזה. ותשתמש בפונקציה ConcatRelated שמובאת שם.
    לגבי אורך הכתובת המקסימלית, אסור לה לעבור 320 תווים, כאשר שם המשתמש מוגבל עד 64 תוים והדומיין עד 255. מקור

    תוכנה

  • שליפת רשומה רנדומאלית באקסס
    OdedDvirO OdedDvir

    @spider לאקסס אין מנגנון מובנה לשליפת רשומה אקראית, אבל מייקרוסופט הואילו בטובם לספק קוד שכזה.
    צור מודל חדש ותדביק בו את הקוד הבא:

    Public Function FindRandom(RecordSetName As String, Fieldname As String) 
     
     Dim MyDB As Database 
     Dim MyRS As Recordset 
     Dim SpecificRecord As Long, i As Long, NumOfRecords As Long 
     
     Set MyDB = CurrentDB() 
     Set MyRS = MyDB.OpenRecordset(RecordSetName, dbOpenDynaset) 
     On Error GoTo NoRecords 
     MyRS.MoveLast 
     NumOfRecords = MyRS.RecordCount 
     SpecificRecord = Int(NumOfRecords * Rnd) 
     If SpecificRecord = NumOfRecords Then 
       SpecificRecord = SpecificRecord - 1 
     End If 
     MyRS.MoveFirst 
     For i = 1 To SpecificRecord 
       MyRS.MoveNext 
     Next i 
     FindRandom = MyRS(Fieldname) 
     Exit Function 
     
    NoRecords: 
     If Err = 3021 Then 
       MsgBox "There Are No Records In The Dynaset", 16, "Error" 
     Else 
       MsgBox "Error - " & Err & Chr$(13) & Chr$(10) & Error, _ 
         16, "Error" 
     End If 
     FindRandom = "No Records" 
     Exit Function 
     
    End Function 
    

    כעת במקור הנתונים של תיבת הטקסט תכניס את הנוסחא:

    =FindRandom("שם_הטבלה_שלך","שם_השדה_הרצוי")
    
    תוכנה

  • מחשב שמתכבה
    OdedDvirO OdedDvir

    @אבי-203 ההודעה מגיעה בגלל בעייה בניהול הזיכרון על ידי Windows. למרבה הצער, אין בהודעה הזו שום מידע נוסף מה גורם לבעיה. הרבה פעמים זו בעיה בחומרה לא תקינה, או דרייבר מסויים. אם לאחרונה התווספה חומרה חדשה, או שהותקן דרייבר חדש - יתכן וזהו הגורם לשגיאה.

    יתכן כמובן שאחד מרכיבי הזכרון RAM פגום.
    תתחיל קודם כל בבדיקה תקינות רכיבי הזיכרון עצמן.
    הבדיקה מבוצעת על ידי Windows בזמן האתחול.

    כדי להריץ את הבדיקה, לחץ על מקש Windows+R ותפעיל את הפקודה הבאה:

    mdsched.exe
    

    בחלון שיפתח, בחר באופציה הראשונה, אם אתה מוכן לסגור כעת את כל החלונות ולבצע אתחול, או בשנייה כדי להפעיל את הבדיקה באתחול הבא:
    1e0acd34-83ee-493c-ae1b-74e5c2f63b02-תמונה.png

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

    תוכנה

  • יצירת ברקוד 128 תקין
    OdedDvirO OdedDvir

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

    מצאתי פתרון על ידי VBA, ויש גם ב C# ומסתמא בעוד שפות. את הקוד למקודד לקחתי מכאן, ויש כאן עוד מראי מקומות. או שפשוט תחפש בגוגל:
    "Barcode 128 Encoder".

    הנה השוואה בין הדוגמא העובדת שלך לבין הברקוד שלי, השתמשתי בפונט החופשי LibreBarcode128-Regular.ttf שהבאת לעיל:

    32b644cb-4fc2-443f-8711-21322241740e-תמונה.png

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

    תוכנה

  • הדרכה לאקסס
    OdedDvirO OdedDvir

    @מוישלה אתה מוזמן לבדוק את המדריך שלי למתחילים כאן.

    תוכנה

  • סידרה מותאמת אישית באקסל
    OdedDvirO OdedDvir

    @פלורידה בהגדרות:
    b506ba0a-7fa7-4772-9146-63cbc5093b59-תמונה.png
    בחלון שנפתח תוכל להקליד ערכים כרצונך, או לייבא רשימה מוכנה מטווח כלשהו (במקרה שלך זה נראה לי עדיף, כי תוכל ליצור את הרשימה הראשונית: ב. ב: ג. ג: וכו' על ידי נוסחאות):
    a7f2186c-afa4-475d-91db-b29106f22600-תמונה.png

    תוכנה

  • קובץ CMD להדפסה מאקסל/וורד
    OdedDvirO OdedDvir

    @שוהם307 לגבי 1, אפשר להחליף ללחצן אפשרות:
    779fe3d0-d561-49c3-b9ef-6b30c80f9ad8-תמונה.png
    הנה גרסא עם לחצן כזה: מדבקת משלוח.xlsm
    ולגבי 2, יתכן ולא צריך להגדיר כלום.
    אם זה לא מדפיס נכון, כשתפתח את הקובץ בעבודה, תגדיר את גודל העמוד לפי המדפסת שם:
    2907722a-e38e-4728-9a0f-5a66aae34879-תמונה.png

    תוכנה

  • יוצר התקנות קל לתפעול
    OdedDvirO OdedDvir

    @yossiz אני השתמשתי בעבר בתוכנה SSE Setup , היא קלה יחסית להבנה, וחינמית להתקנות שאינן מסחריות. יש בה גם מנגנון ליצירת פאטצ או שדרוג.

    תוכנה

  • שינוי סיומת קובץ לכמה קבצים בבת אחת
    OdedDvirO OdedDvir

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

    תוכנה

  • הוספת יעדים "שלח אל"
    OdedDvirO OdedDvir

    @פלורידה זוהי פתיחה סטנדרטית לקובץ הגדרות רג'יסטרי.
    זה בעצם מורה לWindows שהקובץ מיועד לרג'יסטרי, ולא מכיל דברים אחרים, כמו רשימת קניות וכו'...

    תוכנה

  • מדריך: שורת הפקודה - תגובות
    OdedDvirO OdedDvir

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

    שאלה קטנה:
    אני יודע שבקוד (שפת C) ניגשים לקובץ על ידי handle. האם יש שימושים לגישה הישירה על ידי ה-handle של הקובץ, גם מתוך שורת הפקודה?

    תוכנה

  • אקסס למתחילים: תגובות
    OdedDvirO OdedDvir

    @חייםיודלביץ אמר באקסס למתחילים: תגובות:

    תוכל לתת דוגמא למה אתה מתכוון?
    כי אני מצאתי כמעט כל מה שרציתי שיהא בחווית המשתמש, כמעט מבלי להסתבך יש הכל מוכן.

    יש דברים ממש בסיסים כמו:

    • תיבת סימון או כפתור אופציה הניתנים לשינוי גודל (באקסס הגודל קבוע עוד מרזולוצית ה-640x480... מישהו נרדם שם)
    • פינות עגולות לפקדים (כמו תיבת טקסט ותיבה משולבת)
    • שינוי צבע בחלק מפקד (למשל תיבת טקסט)
    • שינוי גודל \ סוג כתב בתוך פקד (תמיכה עלובה בRichText)
    • כפתור Toggle

    ויש טיפה יותר "מתקדמים":

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

    כל הדברים האלו כמובן מובנים ב CSS בסיסי... 😠

    @בערל אמר באקסס למתחילים: תגובות:

    למה? איך?
    האם הם שינו את דעתם סופית או עלולים עדיין לחזור בהם?

    העתיד של אקסס לא ברור.
    לעניות דעתי זה עניין של רווחיות וביקוש.
    שמייקרוסופט יזנחו לגמרי את אקסס - זה מסתמא לא יקרה בעתיד הקרוב. כל זמן שלאקסס תהיה נישה ייחודית - היא תישאר איתנו. 🤞

    יש שיחה של מנהל התכנית של אקסס ב-YouTube משנת 2019 שבה הוא מצהיר שאקסס לא מתה ואדרבא עוד תעבור שדרוגים בעתיד.
    לדבריו, בשנת 2019 אקסס הייתה בשימוש אצל 95% מ-500 החברות הגדולות בעולם (ברשימת Fortune 500).
    ואני לא מתפלא. לאקסס יש נישה מאוד חזקה אצל משתמשים כבדים, והיא אחת מסביבות הפיתוח המהירות, הנפוצות והקלות שקיימות, כמו שאני מנסה להראות בהדרכה שלי. מהבחינה הזו אין לה עדיין שום מועמד רציני שיכול להחליף אותה.

    (אפילו בהשוואה בין אקסל לגוגל-שיטס, שיכול לשמש כיריב רציני לאקסל, מסתמא מייקרוסופט לא יחליטו מחר לזנוח את אקסל...
    אדרבא, התחרות, הפופולריות, והגב החזק של מייקרוסופט דחפו אותה לפתח כמה דברים בסדר גודל מדהים, כמו שפת C#, למשל. כמובן דוט-נט, VisualStudio ו-VSCode. אפילו Edge נולד מהעקשנות של מייקרוסופט לא לוותר על חלק נכבד בשוק הדפדפנים, ולא להכנע לכשלונות הצורבים והחוזרים של IE)

    בינתיים, נחיה ונראה...

    תוכנה

  • אקסס למתחילים: תגובות
    OdedDvirO OdedDvir

    @חייםיודלביץ אמר באקסס למתחילים: תגובות:

    לגבי רעיונות

    תזכורות - אפשר בצורה פשוטה ע"י שאליתה למי יש תזכורת ומיון לפי תאריך.
    תרומה בתשלומים, ואז לעשות גם שאילתה למי התשלום האחרון שלו בחודש זה.
    דוח תרומות לפי תאריכים.

    @איש-ימיני אמר באקסס למתחילים: תגובות:

    הייתי ממליץ להוסיף שאילתה שתציג את כמות השיחות שדיברו עם התורמים, ובנוסף שדה שתציג מתי הייתה שיחה אחרונה, ובנוסף שדה שתציג פירוט השיחה האחרונה.

    ישר כח, אני שומר את כל הרעיונות הטובים שלכם, נראה מתי נוכל ליישם אותם.
    לגבי מאקרו ו-VBA, כרגע אני לא מתכנן לערב אותם כלל. נראה כמה נוכל לעשות רק עם טפסים, שאילתות ודו"חות. זה מאתגר.

    תוכנה
  • 1
  • 2
  • 7
  • 8
  • 9
  • 10
  • 11
  • 91
  • 92
  • 9 / 92
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום