@מעמד בשלב ב מוסבר איך לבחור את האיזור לטשטוש

OdedDvir
-
פרימייר פרו - הדרכה - כיצד לטשטש או לפקסל דמות נעה - שאלה -
העברת קובץ אקסס למחשב אחר@ארי כתב בהעברת קובץ אקסס למחשב אחר:
למיטב זכרוני בקובץ mdb אי אפשר להיכנס לחלון הVBA.
אפשר, כנראה התכוונת לקובץ mde.
-
העברת קובץ אקסס למחשב אחר@שואף ניסית לפתוח את הקובץ במצב עריכה? תחזיק את Shift לחוץ ותקליק על הקובץ.
אחר כך תעבור לעורך ה-VBA על ידי Alt+F11, ומן התפריט: Tools>References (כמו שרואים בצילום שהביא @chagold )
בתחתית החלון שיפתח תוכל לראות בדיוק לאילו ספריות הקובץ מפנה, ותעתיק אותן למחשב השני.
יתכן ותצטרך לקשר את ההפניות אליהן מחדש מתוך המחשב השני. -
העברת קובץ אקסס למחשב אחריתכן והתוכנה מוגדרת לרוץ מתוך מיקום אבסולוטי.
נסה למקם אותה במחשב השני באותו הנתיב בדיוק.
כמו כן תעתיק למחשב החדש את כל התיקיה שבה שוכן קובץ ה-mdb, יתכן ומה שאתה רואה על שולחן העבודה הוא קיצור דרך בלבד, והקובץ ממוקם בתיקיה אחרת.
יתכן גם שהקוד מקושר ל-dll חיצוני שאינו נמצא על המחשב החדש, במקרה כזה זה דורש עיון בקוד, כדי לאתר את התלות. -
עצירת פעולה שרצה בלולאה בטופס ויז'ואל בייסיקהסבר:
הרעיון שהציעו לך להריץ את המשימה על thread נפרד, כך אתה מאפשר לממשק המשתמש להמשיך להגיב בעוד המשימה הכבדה מתבצעת. ממילא, ה-thread שבו אתה מריץ את הקוד הכבד, שונה מה-thread של ממשק המשתמש, ואתה לא יכול לקרוא לממשק המשתמש מתוכו, כגון להציג דיאלוג. -
העברת קובץ אקסס למחשב אחרמה הפירוש לא עובד? האם הקובץ לא נפתח? לא מציג נתונים? לא מייצר -PDF?
-
האטת ריצת קוד vba@מטעמים רק בשביל קריאות הקוד, אפשר גם לקצר, אבל זה פחות מובן מה קורה:
Do Until Not Workbooks.Open(SourceFile, ReadOnly:=False).ReadOnly DoEvents Loop ' עכשיו אתה חופשי לבצע פעולות
-
האטת ריצת קוד vbaאני יודע שהגעתי מאוחר למסיבה...
@אוריי אתה אבחנת את הבעיה נכון, יפה מאוד!
אבל הפתרון הזה עקום לטעמי,
יש אפשרות יותר אלגנטית להמתין עד שהקובץ יהיה מוכן לכתיבה,
@מטעמים תחליף את שורה 13 בדוגמא שהבאת לעיל, בקוד הבא:Dim newWb As Workbook Set newWb = Workbooks.Open(קובץ_מקור & "x", ReadOnly:=False) Do Until newWb.ReadOnly = False DoEvents Loop ' עכשיו אתה חופשי לבצע פעולות
-
שימוש בחיצים באקסלמסתמא מצב נעילת גלילה מופעל:
אפשר לבטל על ידי מקש Scroll-Lock, או ע"י קליק ימני על המקום המסומן בתמונה והסרת הסימון:
-
סיבוב עמוד PDF חופשי ב 360° האם קיים?@dovid כתב בסיבוב עמוד PDF חופשי ב 360° האם קיים?:
@OdedDvir שים לב שנראה שלשואל היה Acrobat Pro
לא הצלחתי להבין זאת מהשאלה שלו, שמא מכאן?
לא מצאתי באקרובט אופציה לסובב חופשי
אדרבה, בראש המקור שהבאתי יש הוראות גם איך לבצע ב-Acrobat Pro
אגב, יש שם הפניה לכלי הזה: https://community.coherentpdf.com/
שהוא חינמי לשימוש לא מסחרי, ואפשר לבצע איתו את המשימה ישירות משורת הפקודה.
לדוגמא, סיבוב של 72 מעלות:cpdf -rotate-contents 72 in.pdf -o out.pdf
-
סיבוב עמוד PDF חופשי ב 360° האם קיים?אפשר על ידי הכלי FDPEscape
הוא חינמי אונליין, ויש גירסת ניסיון להורדה
בתפריט תבחר Page>Deskew, תקליק על העמוד ותרשום את הזוית הרצויה.
מצ"ב דוגמא מהגירסה אונליין לקובץ שסובבתי ב 3 מעלות:
-
מסך שבור - הגדרת התצוגה רק על החלק התקין@צדיק-תמים כתב במסך שבור - הגדרת התצוגה רק על החלק התקין:
לא עבד. הגדרתי מעוגן ושמתי בצד שמאל, ווינדוס מכניס את החלונות מתחתיו.
מוזר.
לי זה עובד בWindows 11:
זה לא מושלם, הסמלים במגש בצד שמאל לא מוצגים לגמרי, וגם חלק מהתפריטים מעיזים לבצבץ לשם, אבל בתור עזרה ראשונה זה לא רע.
אולי בגלל שזה ווינדוס 11 ולא 10
לא מסתבר לי, הפוסט שהבאתי במקור הוא מלפני 10 שנים...
-
מסך שבור - הגדרת התצוגה רק על החלק התקין@צדיק-תמים מישהו מצא פיתרון יצירתי לבעיה שלך, על ידי שימוש לא סטנדרטי בכלי של זכוכית המגדלת שמובנה ב-Windows.
כנס להגדרות > נגישות > זכוכית מגדלת, ובתצוגה שלו בחר מעוגן (Ctrl+Alt+D). תצמיד את החלון שלו לצד שמאל (הפגום) של המסך ותגדיל אותו עד שיכסה את כל האיזור הפגום.
Windows תתייחס לשטח הנותר בצד ימין כאילו רק הוא האיזור הפעיל, וכל החלונות שתפתח וכו' ימוקמו רק שם. -
אקסס מבוסס SQL@mekev כתב באקסס מבוסס SQL:
השאילתא כולל התנאי לא מחזירה תוצאה
אתה צודק, זו היתה טעות שלי. הערך 6 בשדה Type מציין טבלה מקושרת בבסיס נתונים אקסס או אקסל (והשדה יציג את הסיסמה אליו...).
עבור טבלאות מקושרות השוכנות בבסיס של SQL הערך של Type שווה ל-4.
כך:SELECT Connect FROM MSysObjects WHERE Type=4
שיניתי גם במקור.
ולעצם העניין, אם יש לך Connection-String - היא אמורה להכיל כל פרטי ההתחברות כולל את הסיסמה. -
אקסס מבוסס SQL@דוד-החדש כתב באקסס מבוסס SQL:
אני לא מצליח להריץ את הקוד. כותבים אותו בשאילתה רגילה באקסס?
כן.
איך אני יכול לדעת את זה מראש לפני שאני מגיע אליו להעתיק את הכל?
הלקוח שלך אמור לדעת את זה, זה חלק מהגדרות שרת ה-SQL שלו. תוכל גם לבדוק האם אתה יכול להריץ את האקסס מתוך המחשב שלך ולהתחבר לנתונים שלו.
-
אקסס מבוסס SQL@דוד-החדש כתב באקסס מבוסס SQL:
אתה מתכוין פשוט לרשום לי את כל השינויים שאני עושה ואז להעתיק אותם אחד אחד למקורי (לא נראה לי שאני אעשה מידי הרבה שינויים אבל עדיין תמיד יש אפשרות לשכוח פרטים מסויימים).
אכן התכוונתי לכך.
אתה צריך לזכור שלמרות שלפעמים יש צורך אמיתי בכך, לשנות סכמה של מסד נתונים קיים זה תמיד תהליך יותר מורכב ומסוכן מאשר לעצב אותו נכון מהתחלה.
עם הניסיון שתצבור, הצורך הזה אמור להיות יותר ויותר נדיר.אגב, אם יש לך אפשרות להתחבר ישירות לשרת ה-SQL של הלקוח מהמחשב שלך, ולא רק דרך RDP, ל-VS יש כלים שיכולים לעזור לך לנהל גרסאות של SQL, להשוות סכמות של שני db, ליצור script של כל השינויים הנדרשים, ולהריץ אותו על ה-db הרצוי.
לגבי הסיסמה ל-SQL, ניתן בקלות לשלוף אותה מתוך האקסס, וזהו, אגב, אחד מהחסרונות של האריכטקטורה הזו. פשוט תריץ את השאילתא הבאה:
SELECT Connect FROM MSysObjects WHERE Type=4
-
אקסס מבוסס SQL@דוד-החדש כתב באקסס מבוסס SQL:
אבל אני קצת מפחד לעשות שינויים על חי במסד פעיל
הפחד שלך מוצדק לחלוטין. יש לי כמה סיפורים מסמרי שיער בנושא...
א. הנוהל הנכון הוא להקים סביבת טסט, כלומר לשכפל את מסד הנתונים הקיים ל-db נוסף (אפשרי על אותו השרת), וכן ליצור עותק של ה-frontend של אקסס ולקשר אותו ל-db של הטסט. זה יוצר סביבת טסט מלאה ואוטונומית מהייצור לחלוטין, ומאפשר לך לבצע שינויים כרצונך שם, הן ב-backend והן ב-frontend, ורק לאחר בדיקת שפיות - אתה מעביר את השינויים לסביבה שבייצור.
למעשה אתה הצעת משהו דומה, ליצור סביבת פיתוח לוקאלית אצלך, ולא אצל הלקוח. וכך באמת נוהגים בעולם האמיתי: מקימים (לפחות) 3 סביבות: פיתוח, טסט וייצור.ב. לעולם אין להעביר את הדאטא מהטסט לייצור, וכ"ש מסביבת הפיתוח, רק את השינויים בסכמה (מבנה הטבלאות, stored procedures וכו') או מטא-דאטא כגון טבלאות ערכים (ValueSets) שמתארות את הנתונים. למשל סוג לקוח:
Id Description 1 Admin 2 User -
תכנון פונקציה: האם לשים פרמטרים מרובים או מערךעכשיו הבנתי יותר את דבריך, ונראה לי שבעצם כיוונתי לאותו הדבר כשכתבתי
ולמקם אותה במחלקה אחרת שאחראית על הלוגיקה העסקית
כלומר, שזה תלוי בהחלטה האם הפונקציה שייכת ליישות Job או ליישות המנהלת את החשבונות הכספיים
-
תכנון פונקציה: האם לשים פרמטרים מרובים או מערךליתר ביאור, דוד התכוון שאפשר ליישם את הפונקציה כחלק מהאובייקט, כך:
public class Job { public string JobName {get; set;} public double WorkHours {get; set;} ... public decimal CalculatePrice() { ... return price; } }
לעתים זו אכן הדרך הכי נוחה. אך אם הפונקציה מכילה לוגיקה עסקית שעשוייה להשתנות עם הזמן, במקרה כזה הנכון בעיני להפריד את הפונקציה מהנתונים, ולמקם אותה במחלקה אחרת שאחראית על הלוגיקה העסקית.
-
תכנון פונקציה: האם לשים פרמטרים מרובים או מערךלא זה ולא זה.
הדרך הנכונה היא ליצור אובייקט שמכיל את כל השדות ולהעביר אותו לפונקציה.
כך C#:public record JobSpecifications { public string JobName {get; set;} public double WorkHours {get; set;} ... } public decimal CalculatePrice(JobSpecifications specs) { ... return price; }
זה יעיל מכל הבחינות, והרבה יותר קל לתחזוקה.