הפעלת מאקרו על שדה נוכחי בלחיצת מקש
-
אשמח לדעת איך להפעיל פקודה על שדה נוכחי, (בלחיצת מקש קיצור)
יש לי כמה טפסים שבהם מופיעים מספרי טלפון בכמה שדות, לדוגמה פלאפון אב, פלאפון אם וכדו'
אני מעוניין שבלחיצת מקש (F12) הפעולה הבאה תבוצע על השדה הנוכחי, בפקודה המצורפת, הפעולה נעשת על שדה מסויים, ולא על שדה נוכחיShell "cmd /c start tel://" & Me!PhoneTextBox
האם כשאכתוב ME לבד ללא שם השדה, יבחר השדה הנוכחי?
ואשמח לדעת איך אני מגביל את זה רק אם בשדה הנוכחי מופיע רק ספרות או מקף אמצעי (-).
-
@יוני-הלפרין
הנה דוגמא
תסתכל בטופס
שים לב שזה יעבוד בכל טופס בכל מקום בתוכנה (גם בת.ז.)
אפשר לקסטם את זה עוד, שזה יעבוד רק אם יש בהגדרת התיבה TAG של חיוג.
וגם, לא בדקתי שגיאות, כתבתי את זה בזריזות מחוסר זמן, אז תבדוק אתה.....
tel.accdb -
בשליטה מרחוק, נראה שעובד..
שאגיע למקום אבדוק בפועל.תודה רבה
-
זה הקוד הסופי שלי..
מה שחסר לי, במידה והכנסתי עכשיו מספר טלפון, ועדין לא יצאתי מהשדה, כלומר התוכן עדין לא "נספג" במערכת, הוא לא נותן לחייג,
ניסתי לרשום ,Refresh.Stel
אבל אין תגובה בכלל, גם עם בשדה יש כבר מספר טלפון,
מה אמור לרענן לי את השדה הנוכחי?Public Function TelMe() 'בדיקה האם נמצא בתוך שדה On Error GoTo errorhandler Dim sTel As String sTel = Nz(Screen.ActiveControl, "") sTel = Replace(Nz(sTel, ""), "-", "") If IsNumeric(sTel) Then 'הכל תקין, אפשר לחייג, רק תבדוק שרוצה לחייג Dim strMsg As String strMsg = "לחייג ל " & sTel & " ?" If MsgBox(strMsg, vbMsgBoxRtlReading + vbYesNo, "יצירת שיחה") = vbYes Then Shell "cmd /c start tel://" & sTel End If Else 'כנראה הוא התבלבל, הוא לא נמצא בשדה שיש רק ספרות MsgBox "שדה לא תקין להתקשרות!", vbMsgBoxRtlReading, "יצירת שיחה" End If 'לא נמצא בתוך שדה errorhandler: Select Case Err.Number Case Is = 2474 MsgBox "לא נמצא שדה להתקשרות!", vbMsgBoxRtlReading, "יצירת שיחה" Case Else End Select End Function
-
@יוני-הלפרין אמר בהפעלת מאקרו על שדה נוכחי בלחיצת מקש:
זה הקוד הסופי שלי..
מה שחסר לי, במידה והכנסתי עכשיו מספר טלפון, ועדין לא יצאתי מהשדה, כלומר התוכן עדין לא "נספג" במערכת, הוא לא נותן לחייג,
ניסתי לרשום ,Refresh.Stel
אבל אין תגובה בכלל, גם עם בשדה יש כבר מספר טלפון,
מה אמור לרענן לי את השדה הנוכחי?Public Function TelMe() 'בדיקה האם נמצא בתוך שדה On Error GoTo errorhandler Dim sTel As String sTel = Nz(Screen.ActiveControl, "") sTel = Replace(Nz(sTel, ""), "-", "") If IsNumeric(sTel) Then 'הכל תקין, אפשר לחייג, רק תבדוק שרוצה לחייג Dim strMsg As String strMsg = "לחייג ל " & sTel & " ?" If MsgBox(strMsg, vbMsgBoxRtlReading + vbYesNo, "יצירת שיחה") = vbYes Then Shell "cmd /c start tel://" & sTel End If Else 'כנראה הוא התבלבל, הוא לא נמצא בשדה שיש רק ספרות MsgBox "שדה לא תקין להתקשרות!", vbMsgBoxRtlReading, "יצירת שיחה" End If 'לא נמצא בתוך שדה errorhandler: Select Case Err.Number Case Is = 2474 MsgBox "לא נמצא שדה להתקשרות!", vbMsgBoxRtlReading, "יצירת שיחה" Case Else End Select End Function
יש אפשרות לרענן את השדה לפני הפעלת הקוד?
-
@יוני-הלפרין אמר בהפעלת מאקרו על שדה נוכחי בלחיצת מקש:
sTel = Nz(Screen.ActiveControl, "")
תחליף את השורה הזו ב
sTel = Nz(Screen.ActiveControl.Text, "")