חיבור סורק ברקוד לאקסס
-
@איש-פלוני הערה קטנה על הקוד, שאינה מעניין השאלה.
אם משתמשים בקידוד בעברית הייתי ממליץ תמיד להשתמש עם שמות_משתנים_מופרדים_בקו_תחתון (וכן בשמות טבלאות, שדות, פונקציות ומחלקות), זה נותן יותר בהירות.
ו-כמו שעשית, לא לערבב באותו שם משתנה שמות באנגלית ובעברית, זה מבלגן את הימין - שמאל של הקוד.
לגבי עצם העניין האם זה יעיל למתכנת להשתמש בעברית בקוד, ומתי, זה נושא גדול ומתאים לפוסט נפרד.
-
שלום וברכה,
אני רוצה להוסיף לקוד שלי שבעת פתיחת הטופס הפוקוס שלו יעבור לשדה מסויים ('מדף') והטקסט בשדה יבחר, כדי שאוכל להתחיל להקליד בו מיד.
בינתיים אני משתמש בקוד הזה:DoCmd.OpenForm "מחברקודספרברקוד", acFormDS, , "ID = " & ScanValue Forms("מחברקודספרברקוד").Controls("מדף").SetFocus
אבל לא הצלחתי לעשות שהוא גם יבחר את הטקסט בשדה כדי שאם אתחיל להקליד הוא ימחק את הטקסט הקיים. הוא רק מניח את הסמן אחרי הטקסט הקיים, ואני צריך למחוק את הטקסט ידנית ואח"כ לכתוב.
יש למישהו פיתרון?
תודה רבה -
@מלא עכשיו אני חושב שאולי זה בגלל שהוא לא פותח את הטופס שוב, אלא מוצא בו נתונים כשהוא כבר פתוח. (בטופס הזה ב'לאחר עדכון' בשדה מדף הגדרתי שיעלה לי שוב את החלון של הכנסת הנתונים של הברקוד [שפותח עם פוקוס על השדה מדף], כדי שיהיה נוח לי לשנות כמה נתונים ברצף)
בפתיחה הראשונה של הטופס הוא באמת בוחר לי את הטקסט, גם בלי קוד מיוחד. -
@ארי את כל הקוד בעצם הבאתי למעלה, מצורף שוב (הכנסתי את שאר האופציות הנוספות שהציעו פה כדי שיכנס ישר לשדה ספציפי בהערה בקוד):
Private Sub מדף_AfterUpdate() Dim ScanValue As String ScanValue = InputBox("אנא הקלד את הערך שסרק הסורק:") 'בדיקת תקינות הערך שסרק הסורק If IsNumeric(ScanValue) Then 'בדיקת קיומו של הערך בטבלה Dim RecordExists As Boolean RecordExists = Not IsNull(DLookup("ID", "מחברקודספר", "ID = " & ScanValue)) If RecordExists Then DoCmd.OpenForm "מחברקודספרברקוד", acFormDS, , "ID = " & ScanValue Forms("מחברקודספרברקוד").Controls("מדף").SetFocus 'Form_מחברקודספרברקוד.מדף.SetFocus 'Me.מדף.SetFocus Else MsgBox "ערך לא קיים במאגר הנתונים, אנא נסה שוב" End If Else MsgBox "ערך לא תקין, אנא נסה שוב" End If End Sub
-
@מלא בעקבות התשובה שלך הוספתי לו שלאחר עדכון לפני שהוא פותח שוב את התיבה להזנת הברקוד הוא יסגור את הטופס.
וכעת כשהוא פותח את הטופס אח"כ הוא בוחר את הטקסט, כמו תמיד כשהוא נכנס לטופס בפעם הראשונה.
זה לוקח כחצי שניה יותר, אבל לא נוראתודה רבה לכל העוזרים והמסייעים!
-
@איש-פלוני כתב בחיבור סורק ברקוד לאקסס:
שלום וברכה,
אני רוצה להוסיף לקוד שלי שבעת פתיחת הטופס הפוקוס שלו יעבור לשדה מסויים ('מדף') והטקסט בשדה יבחר, כדי שאוכל להתחיל להקליד בו מיד.
בינתיים אני משתמש בקוד הזה:DoCmd.OpenForm "מחברקודספרברקוד", acFormDS, , "ID = " & ScanValue Forms("מחברקודספרברקוד").Controls("מדף").SetFocus
אבל לא הצלחתי לעשות שהוא גם יבחר את הטקסט בשדה כדי שאם אתחיל להקליד הוא ימחק את הטקסט הקיים. הוא רק מניח את הסמן אחרי הטקסט הקיים, ואני צריך למחוק את הטקסט ידנית ואח"כ לכתוב.
יש למישהו פיתרון?
תודה רבהלוודא שזו לא הגדרה פשוטה:
האם וידאת שהבעיה לא נעוצה בהגדרות הכלליות של אקסס?
נווט ל - אפשרויות - הגדרות לקוח - עריכה - אופן הפעולה בעת כניסה לשדה
ובחר "בחר בשדה כולו" -
@איש-פלוני
יש פקודה בשם seltextForms("מחברקודספרברקוד").Controls("מדף").seltext = me.מדף.value
אתה מציין את הערך של הנתון שאתה רוצה שיבחר, ולכן את מכניס את הנתון של השדה שאתה נכנס אליו.
או
Forms("מחברקודספרברקוד").Controls("מדף").selStart = 1 Forms("מחברקודספרברקוד").Controls("מדף").SelLength = 3
השורה הראשונה זה מאיזה תו לסמן,
השורה השניה זה האורך של המחרוזת שיהיה מסומן, לרוב אתה יכול לשים את האורך של הנתון של השדה שאתה נכנס אליו.ואת האירוע אתה ממקם בעת קבלת מוקד.