סורק צקים - אקסס
-
אחרי בירור מקיף, קניתי סורק של magtek, להם יש API פתוח עם תיעוד מלא ודוגמאות קוד לכל סוג סורק.
אני מנסה להשתמש עם זה באקסס ולכן לקחתי את הדוגמת קוד של VB.
וכאן חסר לי משהו.
בדוגמת קוד שהם מצרפים ישנו קובץ עם רשימת הפונקציות מתוך ה DLL של ה API שנמצא בתיקייה C:\Windows\SysWOW64, (היה לי מוזר שזה כתוב בלי סיומת ".dll" רק השם של הפונקציה :?: ).
חלק מתוך הקוד:'' Function declarations Declare Function MTMICRGetDevice Lib "mtxmlmcr" (ByVal dwDeviceContext As Long, ByVal DeviceName As String) As Long Declare Function MTMICROpenDevice Lib "mtxmlmcr" (ByVal DeviceName As String) As Long Declare Function MTMICRCloseDevice Lib "mtxmlmcr" (ByVal DeviceName As String) As Long
בנוסף, יש בתיקיית השורש של הקבצי קוד עוד 2 קבצים בשם הזה, אחד עם סיומת ".lib"' והשני עם סיומת ".h", ועוד קובץ "ExcellaAPI.ocx", לא יודע למה הם משתמשים.
בדוגמא שהם מביאים זה עובד מצוין, וכשאני מעתיק את זה לאקסס, מתקבלת שגיאה 53 שהוא לא מוצא את הקובץ "mtxmlmcr".- ניסיתי לתת לו את הכתובת המלאה, וקיבלתי שגיאה 48 שהוא לא מוצא את הקובץ.
- ניסיתי לרשום את ה DLL, קיבלתי שגיאה שאי אפשר לרשום אותו, ע"פ הדרכה ברשת, הוספתי את הקובץ "ExcellaAPI.ocx" לתיקיית ה DLL, רשמתי את ה ".ocx", זה נרשם בהצלחה אבל ה DLL לא רוצה להרשם עם השגיאה הזו:
3. ניסיתי לעשות אותו דבר גם בתיקייה של 32, תוצאה זהה.
4. הוספתי רפרנס באקסס לקובץ "ExcellaAPI.ocx" הרשום, ועדיין לא נושעתי.כל עזרה תתקבל בברכה
מצ"ב התיקייה המלאהפורסם במקור בפורום CODE613 ב19/05/2017 09:03 (+03:00)
-
בדוטנט זה עובד מצוין, עם הדוגמאות קוד שהם נותנים.
מצ"ב מסמך התיעוד המלא.
תודה רבהפורסם במקור בפורום CODE613 ב21/05/2017 11:45 (+03:00)
-
או שתעשה dll interop
פורסם במקור בפורום CODE613 ב21/05/2017 13:40 (+03:00)
-
תודה, זו אכן אפשרות, אבל בצירוף בדיקות וסנכרונים נוספים עם אקסס זה יהיה ממש לא אלגנטי..
זה ברור שזה מעצבן לתחזק שתי קודים, אבל סנכרון אני לא חושב שזה בעיה כיון שהדוטנט יכול לכתוב ולקרוא ישירות לטבלאות.
וכמובן לשמור מרחק מinterpo...פורסם במקור בפורום CODE613 ב21/05/2017 14:30 (+03:00)
-
דוד, מ interpo אכן תשמור מרחק (גדול...)
אבל ל interop אתה יכול להתקרב... כמובן בזהירות כי כאב הראש כשיש שם בעיות יכול להיות דיי גדול.
אבל כדי לפתור בעיות הוא בהחלט מתאים.אולי הפיתרון שלו זה לייצר EXE בדוטנט ולתקשר איתו בבקשות http listener או TCP
פורסם במקור בפורום CODE613 ב21/05/2017 14:51 (+03:00)
-
לפני שאני מתחיל עם interop או בקשות http listener או TCP
ישנה עוד תיקייה בדוגמאות קוד שהם נותנים שבה הם משתמשים עם קובץ OCX ופקד activeX בתוך הטופס של VB.
חשבתי אולי זה יעבוד לי באקסס, רשמתי את הקובץ OCX, הוספתי רפרנס בעורך קוד של אקסס, אבל לא מופיע לי פקד activeX כזה בטפסי אקסס, איך אני מוסיף אותו?ניסיתי להוסיף באמצעות פקודת המאקרו RegisterActiveXControls והוא מוציא שגיאה:
מצ"ב התייקיה
פורסם במקור בפורום CODE613 ב21/05/2017 20:34 (+03:00)
-
אני לא בטוח שאני עושה מה שרצית.
אבל תבדוק אם האקסס המצורף עובד לך.
(כנראה אצלי חסרה ההתקנה)אתה לא צריך לשים קובץ, תראה בקוד של הטופס שם איך אני פונה לאובייקט שלו
OCXDemo.rarפורסם במקור בפורום CODE613 ב21/05/2017 22:22 (+03:00)
-
-
@דוד ל.ט.
אז תבנה EXE בדוטנט ותריץ אותו מאקסס עם פרמטרים.כיון שהדוטנט יכול לכתוב ולקרוא ישירות לטבלאות.
אם אני מפעיל EXE חיצוני, איך אני יכול לקבל אישור לתוך האקסס שהסריקה הסתיימה?
אכן בעיה... קצת סיבוך לכתוב באקסס קוד שמחכה לתשובת תהליך חיצוני.
אבל את תוצאות והתקדמות הפעולה תוכל לכתוב ישירות לטבלת האקסס, רק שעליך להתגבר מבחינת ממשק על הקטע של ה"המתנה" לסיום הפעולה.פורסם במקור בפורום CODE613 ב21/05/2017 23:33 (+03:00)
-
@ClickOne
אני לא בטוח שאני עושה מה שרצית.אבל תבדוק אם האקסס המצורף עובד לך.
(כנראה אצלי חסרה ההתקנה)אתה לא צריך לשים קובץ, תראה בקוד של הטופס שם איך אני פונה לאובייקט שלו
אני מקבל את השגיאה הזו:
לשגיאה הזו אין פתרון?
הוא מצפה ל set למשתנה שהגדרת, איך מכניסים ערך למשתנה מסוג activeX?פורסם במקור בפורום CODE613 ב22/05/2017 00:39 (+03:00)