none
קריאה מאקסס ל-PROCEDURE RRS feed

  • שאלה

  • לא מצאתי קודים מובנים לי לצורך קריאה מאקסס (VBA) לstore procedure. (פרוצודורה גם עם פרמטרים IN וגם OUT)
    אשמח אם מישהו יעזור לי בדוגמת קוד ברורה. 
    תודה מראש.
    שבת 30 יולי 2016 23:23

כל התגובות

  • אתה נמצא בפורום לא נכון

    זה פורום של שרתי SQL ולא של עבודה עם אקסס
    פורום שיכול להתאים לשאלה זה פוטרום של C# למשל אם זו השפה שאיתה אתה עובד

    1. באיזה שפה\טכנולוגיה אתה מפתח את האפליקציה שניגשת לאקסס?
    * תשמור את הקישור לשאלה שלך... אני אעביר את השאלה לפורוטם יותר מתאים, לאחר שאני אדע איזה פורום יותר מתאים לפי התשובה שלך.

    2. השאלה "קודים מובנים" לא ממש ברורה שלי. מובנים היכן?!?


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום ראשון 31 יולי 2016 07:04
    מנחה דיון
  • אני מדבר על קריאה מאקסס SQL SERVER

    הקודים הלא מובנים הם להלן:

    https://support.microsoft.com/en-us/kb/185125

    http://stackoverflow.com/questions/12407389/how-to-return-values-from-a-sql-server-stored-procedure-and-utilise-them-in-acce

    http://www.vbforums.com/showthread.php?413996-VBA-gt-SQL-Stored-Procedure-with-Output-Parameters

    תודה

    יום שני 01 אוגוסט 2016 16:38
  • אני מדבר על קריאה מאקסס SQL SERVER

    הקודים הלא מובנים הם להלן:

    https://support.microsoft.com/en-us/kb/185125

    http://stackoverflow.com/questions/12407389/how-to-return-values-from-a-sql-server-stored-procedure-and-utilise-them-in-acce

    http://www.vbforums.com/showthread.php?413996-VBA-gt-SQL-Stored-Procedure-with-Output-Parameters

    תודה

    אהלן

    אני חושב שהבנתי עכשיו :-)
    אני מניח שבמשפט אני מדבר על קריאה מאקסס SQL SERVER אתה מתכוון ל אני מדבר על קריאה מאקסס ל   SQL SERVER
    לפי הקישור שצירפת אתה מדבר כניראה על על קריאה ל פרוצדורה בשרת SQL מתוך תוכנת האקסס, באמצעות שפת VBA. האם זה נכון?

    אם כן אז הרי שהתשובה לשאלה שלי היא שאתה עובד בשפת VBA אבל מכיוון שאין פורום לשפת VBA בממשק של MSDN בעברית, אז אנחנו נמשיך יכולים לנסות לדון בבעיה כאן.

    לצערי, כבר הרבה מאוד שנים שלא יצא לי לעבוד עם VBA (אני מדבר על הרבה מאוד שנים וגם עם VBS ) אז אני לא בטוח אם אני יכול לעזור לך יותר מדי. אבל אני רואה שאתה מצאת את התשובה כבר לבד בקישורים ששמת. לא כך?

    אני יכול לנסות להסביר את הקודים שיש בדוגמה בצורה כללית אבל בשביל ללמוד לעבוד אם שפת VBA אתה צריך ללמוד את שפת VBA בדיוק כמו כל שפה אחרת ואת זה אני לא יכול לעשות בפורום בהודעה

    בוא ניקח לדוגמה את הקישור השני שהבאת. זה הקוד שיש שם:

    Set cnn = New adodb.Connection
    cnn.ConnectionString = 
       "DRIVER=SQL Server;SERVER=SERVER\SERVER;DATABASE=a_db;Trusted_Connection=Yes"
    
    cnn.Open cnn.ConnectionString
    
    Set cmd = New adodb.Command
    cmd.ActiveConnection = cnn
    cmd.CommandType = adCmdStoredProc
    cmd.CommandText = "stprMoveDataSet"
    
    Set param1 = cmd.CreateParameter
                   ("@DataSetID", adInteger, adParamInput, , stDataSet)
    cmd.Parameters.Append param
    Set param2 = cmd.CreateParameter
                   ("@Destination", adChar, adParamInput, 1, stDestination)
    cmd.Parameters.Append param
    Set param3 = cmd.CreateParameter
                   ("@errStatusOK", adBit, adParamOutput, , adParamReturnValue)
    cmd.Parameters.Append param
    
    rs.CursorType = adOpenStatic
    rs.CursorLocation = adUseClient
    rs.LockType = adLockOptimistic
    rs.Open cmd

    זה השלבים שיש בקוד:

    שורה 1: פותחים מופע של חיבור adodb

    שורה 2: מגדירים למופע פרמטר של שרשרת ההתחברות

    זה החלק הכי חשוב בכל עניין. בחלק הזה אתה קובע כיצד להגיע אל השרת SQL שלך או כל שרת מסדי נתוןנים אחר. אתה יכול גם ליצור שרשרת התחברות לשרתי אורקל או MySQL למשל.

    בקישור הבא תוכל למצוא דוגמאות לשרשרת התחברות לשרתי SQL. אתה צריך לוודא שאתה מצליח להתחבר לשרת ה SQL בשלב הראשון, בלי קשר למה אתה מריץ ולפרוצדורה.

    https://www.connectionstrings.com/sql-server/

    הקישור השלישי למשל שצירפת עושה שימוש בחיבור מסוג
    Microsoft OLE DB Provider for SQL Server
    תוכל לעבור למקום המתאים בקישור ששמתי מעל ולראות מספר דוגמאות

    שורה 3: לאחר שמגדירים את החיבור הקוד פותח את החיבור לשרת

    אם הכל הצליח טוב והחיבור הצליח בלי שגיאות אז אפשר לעבור להריץ שאילתות בשרת ה SQL

    שורה 4: יוצרים מופע של פקודה חדשה

    הערה: כאשר אני אומר שיוצרים מופע (זה המשפט המקצועי) אז הכוונה ליצירת אובייקט במילים אחרות (מילים קצת פחות מקצועיות אבל אולי יותר מובנות).

    שורה 5: קובעים מי החיבור שאיתו עובדים

    שורה 6: קובעים את סוג הפקודה. במקרה שנו סוג הפקודה הוא adCmdStoredProc שזה כניראה אומר פרוצדורה שמורה (כפי שאמרתי אני לא זוכר ביודק את האפשרויות אבל נראה שהדוגמה הצליחה למי שאל את השאלה)

    תעבור על הקישור הבא כדי לראות את האפשרויות השונות של מאפיינים של ADO Command Object

    http://www.w3schools.com/asp/ado_ref_command.asp

    הקישור מעל מוביל למדריך של טכנולוגיית ASP קלאסי ושפת VBS שהיא מאוד דומה לשפת VBA. כל אפשרות בקישור מעל היא קישור להסבר יותר מקיף על האפשרות. למשל תוכלח ללחוץ על  CommandType ולראות את כל סוגי הפקודות בהם אתה יכול להשתמש. זה מדריך נהדר


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]



    יום שלישי 02 אוגוסט 2016 12:52
    מנחה דיון
  • תודה רבה על התשובה המפורטת. אני מקוה שאסתדר, אם לא, אפנה שוב. 
    • נערך על-ידי שמש חמה יום שלישי 02 אוגוסט 2016 21:41
    יום שלישי 02 אוגוסט 2016 21:40
  • בכיף :-)

    * בינתיים אתה מוזמן לסגור את השרשור על ידי תגובה אחת או יותר כ"תשובה". למען הסדר הטוב צריך לנסות לסגור שרשורים כמה שיותר מהר. תמיד אפשר לפתוח שרשור חדש אם רוצים ולשים קישור לשרשור מקורי אם זה המשך, או אפילו להמשיך לדבר בשרשור "סגור" (זה לא סוגר באמת את השרשור לתגובות אלא רק מוסיף סימון V ליד השרשור כדי לרמז שהשאלה קיבלה תשובה).
    * אפשר גם להצביע להודעות מועילות - הצבעה להודעות מועילות כל משתמש יכול לבצע בכל שרשור ולא רק בהודעות שהוא פתח, אבל לסגור שרשור (לסמן תשובה) רק מי שפותח את השרשור יכול.


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום רביעי 03 אוגוסט 2016 10:27
    מנחה דיון