@צדיק-תמים
לעניות דעתי יש שתי אפשרויות:
או להשאיר כמקובל משמאל לימין
או להפוך הכל מימין לשמאל, כמו מראה, כולל כיוון הנגינה, הרמקול, סימון הרמקול וכו', ככה:
בתמונה שצירפת נראה שכיוון הנגינה נשאר משמאל לימין, אותי (באופן אישי כמובן) זה ממש מבלבל
@צדיק-תמים
לעניות דעתי יש שתי אפשרויות:
או להשאיר כמקובל משמאל לימין
או להפוך הכל מימין לשמאל, כמו מראה, כולל כיוון הנגינה, הרמקול, סימון הרמקול וכו', ככה:
בתמונה שצירפת נראה שכיוון הנגינה נשאר משמאל לימין, אותי (באופן אישי כמובן) זה ממש מבלבל
@avramk גם אני לא מסתדר עם עכברים קטנים
לא הייתי ממליץ לך על ה-vertical של logitec, קניתי אותו במחיר יקר והוא קטן ולא נוח לטעמי, בינתיים הוא יושב בשולי השולחן שלי כבר חודשיים, ומשמש כמשקולת דפים יקרה להחריד.
אני קניתי את ה-S2 של logitec בעקבות ההמלצה הזו כאן ואני ממש מרוצה ממנו.
היתרונות שלו:
החיסרון שלו הוא שהוא:
אם אתה הולך על זה, דע שלגבי הדגם החדש S3 הדעות נוטות שהוא פחות מוצלח.
Syncfusion חינמי אם איני טועה עבור חברות עם מחזור עסקים קטן מ-1M$ לשנה ופחות מ-5 עובדים. הוא פרוייקט ענק הנהנה מתמיכה מצויינת ותומך בהמון פלטפורמות.
יש גם חלופות חינמיות
זה נראה פרוייקט פעיל עם ממשק דומה לשל אקסל: https://github.com/macgile/DataGridFilter
יש גם משהו יותר בסיסי מבית דוטנט: https://github.com/dotnet/DataGridExtensions
@Y-Excel-Access מנוסח השגיאה שהבאת נראה שיש חוסר התאמה בין הארכיטקטורות שבהן אתה משתמש, כנראה חוסר תאימות של גרסאות 64/32 ביט.
אתה צריך להגדיר חיבור ODBC באותה גרסת סיביות שבה אתה משתמש ב Rust toolchain
@yossiz כתב בODBC (RUST & ms ACCESS \ SQL server):
נראה לי שיותר מומלץ לך להתחבר בשיטת connection string.
אני נתקלתי בבעיות עם זה בקבצים חדשים של אקסס accdb. עם הקבצים היישנים mdb אין בעיה.
מלבד זאת, ב-odbc יש יתרון שאפשר להפעיל לוגים של פעולות ושגיאות.
בקיצור נמרץ:
@אף-אחד-3 כתב בשחזור קובץ בדיסק אונקי:
התוכנה testdisk אכן טובה לגיבוי אבל לא לשחזור
יתכן ואתה מתכוון ל-TestDisk אחרת. התוכנה TestDisk שאביי ציין - אכן מיועדת לשחזור, אך ממשק המשתמש שלה פחות נוח. ציינתי אותה בעבר כאן
היתרון שלה הוא שהיא יחסית מתקדמת, יודעת לזהות חתימות של קבצים ידועים והיא חינמית לחלוטין.
אגב, לא הייתי כלל ממליץ לנסות תיקון לפני שחזור. תיקון לא מוצלח עלול לגרום עוד נזק ולהקטין את סיכויי השחזור. אם שחזור לא הולך, ממליץ לגבות צילום פיזי של כל הדיסק ואח"כ לנסות שחזורים וכו'.
@צדיק-תמים לפעמים הצנרת מכילה אבנים קטנות או חול, וזה מונע מהכבל לעבור.
קודם כל, תמיד כדאי להשתמש במשחיל חוטים. זה נקרא בשם "סטאלבנד". הוא מיועד להשחלה בדחיפה לתוך הצנרת, ויש לו יתרונות רבים על סתם כבל\חוט קשיח. יש לו ראש מתכת גמיש כמו קפיץ והוא יכול להתגבר על מכשולים בדרך ביתר קלות.
בגלל שהוא קשיח אפשר למשוך ולדחוף לסירוגין וכך להתגבר על מכשולים בדרך, ואחרי שהשחלת אותו, אתה מושך בעזרתו את הכבל להשחלה.
אתה יכול גם להוסיף סבון כלים, אך כדאי לדלל אותו קצת עם מים, אחרת הלכלוך נדבק אליו והופך לגושים של בוץ, מה שמקשה על ההשחלה.
אם אחרי שניסית כמה פעמים עם משחיל חוטים זה לא הצליח, יש מקרים מסויימים שבהם אפשר לפתוח את הסתימה על ידי לחץ אוויר או מים.
זה כמובן לא מתאים לכל מצב, תלוי בתצורה של הצנרת הקיימת, ודורש משנה זהירות אם יש קופסאות חיבורים בדרך שקשורות לחשמל, במיוחד בצנרת ישנה.
@OdedDvir כתב בחיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv:
נחכה לשדרוג לגרסה 0.2
הנה גרסה 0.2 שדורשת רק שני קבצים (קרדיט ל-@dovid על ההערה)
סקריפט vb
if WScript.Arguments.Count <> 2 Then
Wscript.Echo "Error: invalid number of arguments specified." & vbNewline
WScript.Echo "Usage: ExcelCsvConvertor <InputFileName> <OutputFormat>" & vbNewline
WScript.Echo "Example: ExcelCsvConvertor input.xlsx csv"
Wscript.Quit
End If
InputFileName = Wscript.Arguments.Item(0)
OutputFormat = lcase(WScript.Arguments.Item(1))
Select Case OutputFormat
Case "csv"
XlFileFormatValue = 62
Case "xlsx"
XlFileFormatValue = 51
Case Else
Wscript.Echo "Unsupported output format specified: " & OutputFormat
Wscript.Quit
End select
With CreateObject("Scripting.FileSystemObject")
OutputFileName = .GetBaseName(InputFileName) & "." & OutputFormat
InputFileName = .GetAbsolutePathName(InputFileName)
OutputFileName = .GetParentFolderName(InputFileName) & "\" & OutputFileName
End With
WScript.Echo "Converting: " & InputFileName & " to " & OutputFormat & ": " & OutputFileName
With CreateObject("Excel.Application")
With .Workbooks.Open(InputFileName)
.SaveAs OutputFileName, XlFileFormatValue
.Close False
End With
.Quit
End With
קובץ התקנה
@echo off
set convertor_path=%~dp0ExcelCsvConvertor.vbs
cls
echo ==========================================================================
echo ExcelCsvConvertor: Context menu setup
echo ==========================================================================
echo.
echo [1] Install : Adds "Convert to CSV/Excel" options to context menu
echo [2] Uninstall : Removes "Convert to CSV/Excel" options from context menu
echo [Q] Quit
echo.
choice /C 12Q /T 1000 /D Q /N /M "Please select an option: "
IF [%errorlevel%]==[1] GOTO Install
IF [%errorlevel%]==[2] GOTO Uninstall
exit /b
:Install
echo Installing...
REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.xlsx\shell\ConvertToCSV /f /d "Convert to CSV..."
REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.xlsx\shell\ConvertToCSV\command /f /d "cscript /nologo \"%convertor_path%\" \"%%1\" csv"
REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.csv\shell\ConvertToExcel /f /d "Convert to Excel..."
REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.csv\shell\ConvertToExcel\command /f /d "cscript /nologo \"%convertor_path%\" \"%%1\" xlsx"
goto Done
:Uninstall
echo Uninstalling...
REG DELETE HKEY_CLASSES_ROOT\SystemFileAssociations\.xlsx\shell\ConvertToCSV /f
REG DELETE HKEY_CLASSES_ROOT\SystemFileAssociations\.csv\shell\ConvertToExcel /f
goto Done
:Done
echo Done!
pause
כל החבילה v0.2:
ExcelCsvConvertor.vbs
Setup (run as Administrator).cmd
@mekev הזריז הקדים אותי, אבל אני משאיר לו לשדרג את הפיצ'ר שלו לגרסה 0.3
@dovid כתב בחיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv:
@OdedDvir תודה! למה צריך את הbat?
אני מניח שכוונתך לראשון.
אתה צודק, האמת היא שאפשר לוותר עליו, ולקרוא ישר לסקריפט מתוך הרישום.
פשוט נצטרך לבצע את שינוי הסיומת של קובץ הפלט גם בסקריפט.
נחכה לשדרוג לגרסה 0.2
@shraga כתב בחיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv:
אולי מישהו יתנדב לסדר לך משהו מושלם.
@dovid כתב בחיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv:
את החלק האחרון אני לא יודע בדיוק איך מבצעים.
@Whenever כתב בחיפוש תוכנה: המרת קובץ אקסל (xlsx) לcsv:
אני חושב להפוך את סקריפט שימיר CSV לאקסל. זה יהיה לי שימושי.
אחרי ש @mekev עשה עבודה יפה, אני מתנדב בשמחה להוסיף את השיפורים שלי:
סקריפט batch משופר להמרה דו כיוונית (Excel<->Csv):
@echo off
if /i [%2]==[csv] goto TryConvert
if /i [%2]==[xlsx] goto TryConvert
echo Unsupported output format specified: %2
exit /b
:TryConvert
echo Converting file %1 to %2 format, please wait...
cscript /nologo "%~dp0ExcelCsvConvertorScript.vbs" "%~dpnx1" "%~dpn1.%2" %2
echo Done!
סקריפט VB משופר להמרה דו כיוונית:
if WScript.Arguments.Count <> 3 Then
Wscript.Echo "Error: invalid number of arguments specified." & vbNewline
WScript.Echo "Usage: ExcelCsvConvertor <InputFileName> <OutputFileName> <OutputFormat>" & vbNewline
WScript.Echo "Example: ExcelCsvConvertor input.xlsx output.csv csv"
Wscript.Quit
End If
InputFileName = Wscript.Arguments.Item(0)
OutputFileName = WScript.Arguments.Item(1)
OutputFormat = lcase(WScript.Arguments.Item(2))
Select Case OutputFormat
Case "csv"
XlFileFormatValue = 62
Case "xlsx"
XlFileFormatValue = 51
Case Else
Wscript.Echo "Unsupported output format specified: " & OutputFormat
Wscript.Quit
End select
With CreateObject("Excel.Application")
With .Workbooks.Open(InputFileName)
.SaveAs OutputFileName, XlFileFormatValue
.Close False
End With
.Quit
End With
קובץ להתקנה והסרה קלה מתפריט ההקשר (לחצן ימני):
@echo off
set convertor_path=%~dp0ExcelCsvConvertor.cmd
cls
echo ==========================================================================
echo ExcelCsvConvertor: Context menu setup
echo ==========================================================================
echo.
echo [1] Install : Adds "Convert to CSV/Excel" options to context menu
echo [2] Uninstall : Removes "Convert to CSV/Excel" options from context menu
echo [Q] Quit
echo.
choice /C 12Q /T 1000 /D Q /N /M "Please select an option: "
IF [%errorlevel%]==[1] GOTO Install
IF [%errorlevel%]==[2] GOTO Uninstall
exit /b
:Install
echo Installing...
REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.xlsx\shell\ConvertToCSV /f /d "Convert to CSV..."
REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.xlsx\shell\ConvertToCSV\command /f /d "\"%convertor_path%\" \"%%1\" csv"
REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.csv\shell\ConvertToExcel /f /d "Convert to Excel..."
REG ADD HKEY_CLASSES_ROOT\SystemFileAssociations\.csv\shell\ConvertToExcel\command /f /d "\"%convertor_path%\" \"%%1\" xlsx"
goto Done
:Uninstall
echo Uninstalling...
REG DELETE HKEY_CLASSES_ROOT\SystemFileAssociations\.xlsx\shell\ConvertToCSV /f
REG DELETE HKEY_CLASSES_ROOT\SystemFileAssociations\.csv\shell\ConvertToExcel /f
goto Done
:Done
echo Done!
pause
הערות:
והנה כל החבילה להורדה: (הערה: עיין בהמשך האשכול לגרסה משופרת 0.2)
ExcelCsvConvertor.cmd
ExcelCsvConvertorScript.vbs
Setup (run as Administrator).cmd
@מאן-דאמר-1 כתב בבקשת עזרה בהמרת קובץ אקסס שמחולק ל system ו data מ 32 סיביות ל64:
המסד נתונים שלי כולל בתוכו גם טפסים / דוחות / מודלים שאותם זה לא מייבא
ככל הידוע לי, אין אפשרות לייבא את סוגי האובייקטים הללו מקובץ accde, הם מקומפלים בו, וזהו הייעוד של סוג קובץ זה, לשפר את זמן הריצה שלהם ולהגן עליהם מפני העתקה מבחוץ.
הדרך היחידה היא להתקין אקסס\אופיס גרסת 32 ביט. מייקרוסופט יקשו עליך בזה, אין ספק.
(אגב, ציינתי את זה בעבר כאן: https://tchumim.com/topic/13847/אופיס-32-או-64/5, זו עוד תזכורת מכאיבה לכך שמייקרוסופט לא מקצים משאבים הולמים לפיתוח מוצר האקסס)
למיטב זכרוני אפשר לעקוף את ההגבלה כך:
בהצלחה
@מאן-דאמר-1 לפי ההודעה שצירפת, נראה כי בקובץ שאתה מנסה לפתוח קיימת הפנייה לקובץ אחר.
באקסס הנתיב של ההפניה מוטמע בקובץ, ואין לך אפשרות לשנותו
אבל תוכל לראות בהודעה את הנתיב המדוייק שבו אמור הקובץ להימצא.
הנתיב הוא:
C:\Program Files\Digitat\Apps\מטחשבון
ושם הקובץ החסר הוא: מטחשבון.accde
והוא אמור להמצא בתוך הנתיב הנ"ל שציינתי.
אתה יכול לנסות ליצור בעצמך את הנתיב המלא בכונן C, (כולל התיקיה "מטחשבון"), ולמקם בה את הקובץ מטחשבון.accde
שאני מניח שנמצא בידך.
@ששא לא פירטת מהו אופן ההעלאה של הקובץ.
באיזה מערכת הוא נקלט, וכיצד זה מתבצע? יתכן וזו בעיה בצד הקולט
האם הקבצים האחרים שהתקבלו בהצלחה הם באותו סדר גודל?
האם גם הם מכילים רשומות ריקות רבות?
לא תמיד אני במצב רוח לניחושים, פשוט סיקרנת אותי
@shraga זה השיעור שחיפשתי, תודה רבה!
אכן השיעור שהועלה לעיל הוא מצויין, אבל מתברר לי כעת שזה אינו השיעור המבוקש...
השיעור המבוקש שודר בקו "מידע לכל" אתמול (יד במרחשון, 29.10 למניינם)
בפתיחה הוא מציין שהוא ממשיך את החלק הקודם (מכאן הבנתי שהיה חלק א גם כן), ומדבר על נושא רג"ש - גר"ש
@חייםיודלביץ
ראשית חשוב לי לומר שבמסד נתונים SQL הדרך הכי טובה לבניית טבלאות היא נירמול הנתונים.
כלומר, מבנה הטבלה (ובפרט מספר העמודות בטבלה) לעולם לא יהיה מושפע או תלוי במספר הרשומות שנכניס לתוכה.
למשל, אם יש ללקוחות כמה מספרי טלפון, לא אשמור אותם בעמודות Phone1, Phone2, אלא בטבלה נפרדת עם מפתח זר המפנה לטבלת הלקוחות.
ובנידון דידן, גם אם אני מתכנן לשמור נתונים של שנים על גבי שנים, לא אצור לכל שנה עמודה משלה, אלא אשמור את התאריך בעמודה אחת, ובמקרה הצורך, אסנן את הטבלה כולה על פיה.
בהנחה שהבננו את הקו המנחה הזה, המימוש של הסינון הופך לטריוויאלי.
אם התחכמנו \ התעצלנו מללכת אחר ההתוויה של ה-SQL, כמעט תמיד נגלה כי לאחר מעשה, נדיר שיתאפשר לי לעצב מחדש את הטבלה (וזה כאב ראש גדול), ופעמים רבות זה לא מעשי בכלל. ובכגון דא אמרינן סוף מעשה במחשבה תחילה.
ולעניינך, הייתי משתמש בפקד יחיד של רשימה, עם אפשרות לבחירה מרובה
בה הייתי מציג את כל השנים הרלוונטיות, ומאפשר למשתמש לבחור שנים כרצונו
לאחר מכן הייתי בונה שאילתת בחירה ב-SQL דינמי, רץ בלולאה על השורות בפקד, ומשרשר את הערכים שסומנו למחרוזת.
כתבתי בקיצור, יש דוגמא נחמדה ש-@clickone פעם הכין, ראה כאן: https://tchumim.com/topic/474/סינון-מרובה/11
עריכה: מה שמופיע שם זה לא בדיוק המקרה שלך, כי שם מסננים עמודה יחידה על פי מספר ערכים נבחרים:
Where City In('ירושלים', 'צפת',....)
אבל הרעיון של בניית SQL דינמי ממומש שם. במקרה שלך הערכים הנבחרים יהיו שמות העמודות, כלומר:
SELECT Year2017, Year2023 FROM ...
@shraga וואו, ינוחו ברכות על ראשך!
@חייםיודלביץ כתב באקסס | מה הדרך הנכונה והמהירה לשינוי מקור פקד ע"י המשתמש?:
האם זו הדרך הנכונה לבצע את זה?
זה אפשרי.
זה לא מאט את התוכנה?
זה זניח במקרה של 10 תיבות טקסט.
זכור לי שבעבר היה על זה נידון כאן בפורום איך לבצע את זה הכי נכון אבל אני לא מוצא את השירשור.
זכור לי הדיון כאן על שינוי שפת הממשק של טפסים בזמן ריצה. שמא כוונתך לזה?
כהערת אגב, אני לא יודע אם זו דרך המלך לפתרון הבעיה שלך.
לענ"ד השיטה של בניית טפסים דינמיים טובה רק כשאין מוצא אחר לפתרון הבעיה, כי זה לפעמים מסבך ללא צורך.