דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. שכפול ערכת רשומות

שכפול ערכת רשומות

מתוזמן נעוץ נעול הועבר ארכיון code613m
12 פוסטים 4 כותבים 801 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • C מנותק
    C מנותק
    code.net
    כתב ב נערך לאחרונה על ידי
    #1

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

    כעת שאלה לפתיח:
    ש לי תוכנה באקסס, שמבוססת על מסד נתונים מרוחק.
    כעת אני מטפל בטופס (בתצוגת טופס משולב) שהוא איטי להחרידדדדדד.
    כל מעבר בין תא לתא ובין שורה לשורה לוקחת 8 שניות!!!
    היות ואני צריך אותו בעיקר עבור תצוגה, ולא עבור עדכון נתונים, אני מנסה ליצור שערכת הרשומות של הטופס לא יכיל את הנתונים און-ליין מול המסד נתונים, אלא יתבצע שכפול ערכת רשומות על פי שאילתא שהכנתי.

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

    Private Sub Form_Load()
        Dim sqlstr As String, RS As Recordset
    
        sqlstr = "SELECT tblTest.* FROM tblTest;"
        Set RS = CurrentDb.OpenRecordset(sqlstr)
        Set Me.Recordset = RS.Clone
        
    End Sub
    

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

    לעזרתכם הברוכה אודה מאוד.

    פורסם במקור בפורום CODE613 ב07/06/2016 09:52 (+03:00)

    תגובה 1 תגובה אחרונה
    1
    • M מנותק
      M מנותק
      macroshadow
      כתב ב נערך לאחרונה על ידי
      #2
      Private Sub Form_Load()
          Me.RecourdSource = "SELECT tblTest.* FROM tblTest"
      End Sub
      

      פורסם במקור בפורום CODE613 ב07/06/2016 11:02 (+03:00)

      תגובה 1 תגובה אחרונה
      2
      • clickoneC מנותק
        clickoneC מנותק
        clickone
        כתב ב נערך לאחרונה על ידי
        #3

        אתה רוצה להכניס את הנתונים לטבלה זמנית?
        לכאורה זה יהיה לך יותר זריז ומהיר.
        אם אתה רוצה בכל זאת להשתמש בrecordset אתה צריך להשתמש ב adodb.recodset

        בכל מקרה אני חושב שהפיתרון שלך צריך להיות בכיוון אחר שזה מסד מקומי ולא ברשת.

        זה אפשרי.

        תתאר קצת את מבנה הרשת שם.

        פורסם במקור בפורום CODE613 ב07/06/2016 11:05 (+03:00)

        אין טסט כמו פרודקשן.

        המייל שלי urivpn@gmail.com

        תגובה 1 תגובה אחרונה
        1
        • C מנותק
          C מנותק
          code.net
          כתב ב נערך לאחרונה על ידי
          #4

          @ClickOne

          אתה רוצה להכניס את הנתונים לטבלה זמנית?
          לכאורה זה יהיה לך יותר זריז ומהיר.
          אם אתה רוצה בכל זאת להשתמש בrecordset אתה צריך להשתמש ב adodb.recodset

          בכל מקרה אני חושב שהפיתרון שלך צריך להיות בכיוון אחר שזה מסד מקומי ולא ברשת.

          זה אפשרי.

          תתאר קצת את מבנה הרשת שם.

          מדובר על מסד נתונים בענן, של MYSQL, החיבור נעשה באמצעות הקונקטור האחרון מהאתר של MYSQL, גירסה 5.3.4 החיבור נעשה לא דרך הODBC אלא ישירות ע"י הדרייבר/קונקטור.
          אני יודע שיש שיטה באמצעות OLE אך איני מכיר את הדרך, אשמח להסברים גם בעניין זה.

          1. עדיין אינני יודע כיצד לעבוד עם adodb, האם זה יעזור לכך שהנתונים ישהו בטבלה זמנית?
          2. חשבתי שערכת רשומות טוענת את הטבלה לזיכרון, ושכפול פירושו שכל הרשומות הופכות להיות עצמאיות, מסתבר שטעיתי? יש צורך להשתמש בטבלה זמנית? מה הדרך?

          פורסם במקור בפורום CODE613 ב07/06/2016 12:40 (+03:00)

          תגובה 1 תגובה אחרונה
          0
          • clickoneC מנותק
            clickoneC מנותק
            clickone
            כתב ב נערך לאחרונה על ידי
            #5

            לצערי אין עיתותי בידי.
            אבל תבדוק כאן. העלתי קוד לדוגמא
            http://code.613m.org/viewtopic.php?f=1&t=243
            אומנם זה נכתב מול SQL SERVER אבל זה יעבוד אותו דבר מול MY SQL.

            להשלמה, הנה עוד דיון של ארכיטקט בעניין.
            http://code.613m.org/viewtopic.php?f=1&t=417

            פורסם במקור בפורום CODE613 ב07/06/2016 14:23 (+03:00)

            אין טסט כמו פרודקשן.

            המייל שלי urivpn@gmail.com

            תגובה 1 תגובה אחרונה
            1
            • C מנותק
              C מנותק
              code.net
              כתב ב נערך לאחרונה על ידי
              #6

              @MacroShadow

              Private Sub Form_Load()
                  Me.RecourdSource = "SELECT tblTest.* FROM tblTest"
              End Sub
              

              הדבר היחיד שזה יעשה זה טעינה של הרשומות, בצורה מקוונת.
              אני מחפש דרך להפוך רשומות מקוונות לרשומות לא מקוונות.

              פורסם במקור בפורום CODE613 ב07/06/2016 14:53 (+03:00)

              תגובה 1 תגובה אחרונה
              0
              • C מנותק
                C מנותק
                code.net
                כתב ב נערך לאחרונה על ידי
                #7

                @ClickOne

                לצערי אין עיתותי בידי.
                אבל תבדוק כאן. העלתי קוד לדוגמא
                http://code.613m.org/viewtopic.php?f=1&t=243
                אומנם זה נכתב מול SQL SERVER אבל זה יעבוד אותו דבר מול MY SQL.

                להשלמה, הנה עוד דיון של ארכיטקט בעניין.
                http://code.613m.org/viewtopic.php?f=1&t=417

                1. לצערי יש בדוגמה ההיא פרטי חיבור רק מול SQLSERVER ולא מול MYSQL.
                  תיקון:
                  מצאתי מאמר בנידון, https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-examples-programming-vb-ado.html מי יחכימני בינה לאמור לי האם זוהי הדרך? :roll:
                2. לא יצא לי ברור מכל השרשור האם הבעיה שלי אכן נפתרה, כלומר האם לאחר שמורידים את הרשומות, וטוענים אותם לטופס, אכן לא יהיה בעיית מהירות במעבר בין הרשומות בטופס?

                פורסם במקור בפורום CODE613 ב07/06/2016 14:57 (+03:00)

                תגובה 1 תגובה אחרונה
                0
                • C מנותק
                  C מנותק
                  code.net
                  כתב ב נערך לאחרונה על ידי
                  #8

                  בעזרת השם יתברך, ובסיוע של חברי הפורום הברוך, הצלחתי לפתור את הבעיה!
                  תודה רבה!

                  להלן הקוד שמשמש אותי בפתיחת הטופס. מהיר ביותר!!!!!!!

                  Private Sub Form_Load()
                      Dim conn As ADODB.Connection
                      Dim rs As ADODB.Recordset
                      Dim sql As String
                  
                      Set conn = New ADODB.Connection
                      sql = "DRIVER={MySQL ODBC 5.3 unicode Driver};" & _
                                              "SERVER=8.8.8.8;" & _
                                              "PORT=3456;DATABASE=testDB;" & _
                                              "UID=user;PWD=1234;OPTION=4194304"
                      conn.ConnectionString = sql
                  
                      conn.Open
                  
                      Set rs = New ADODB.Recordset
                      rs.CursorLocation = adUseClient
                      
                      rs.Open "SELECT tblTest.* FROM tblTest", conn
                      Set Me.Recordset = rs
                      
                  End Sub
                  

                  פורסם במקור בפורום CODE613 ב07/06/2016 15:36 (+03:00)

                  תגובה 1 תגובה אחרונה
                  2
                  • C מנותק
                    C מנותק
                    code.net
                    כתב ב נערך לאחרונה על ידי
                    #9

                    שאלה באותו עניין, ClickOne, בפרוייקט המדובר כאן: , יש בכלל באקסס טבלאות מקושרות? או שכל הטבלאות פורחות באוויר הVBA?
                    והאם אפשר לבסס שאילתות על טבלאות אלו?

                    פורסם במקור בפורום CODE613 ב08/06/2016 12:56 (+03:00)

                    תגובה 1 תגובה אחרונה
                    0
                    • clickoneC מנותק
                      clickoneC מנותק
                      clickone
                      כתב ב נערך לאחרונה על ידי
                      #10

                      בטח שיש טבלאות מקושרות לODBC.
                      אפשר לבסס שאילתות על זה. אם זה שאילתות מורכבות אז זה לוקח זמן או שתעשה "תצוגות" בSQL SERVER עם כל השאילתא שלך, ותקשר את התצוגה לאקסס.

                      פורסם במקור בפורום CODE613 ב08/06/2016 14:39 (+03:00)

                      אין טסט כמו פרודקשן.

                      המייל שלי urivpn@gmail.com

                      תגובה 1 תגובה אחרונה
                      0
                      • C מנותק
                        C מנותק
                        code.net
                        כתב ב נערך לאחרונה על ידי
                        #11

                        @ClickOne

                        בטח שיש טבלאות מקושרות לODBC.
                        אפשר לבסס שאילתות על זה.

                        לא ביטיתי את עצמי נכון, עם טבלאות מקושרות אני משתמש יומיום, והם איטיות ולא מאובטחות (הסטרינג-קונקשיין מכיל את היוזר וסיסמה), שאלתי הייתה: מהי הדרך להחזיק טבלה מקושרת, (ושמבוססת עליה שאילתא), ואשר לא מאוחסן בקונקשיין שלה הסטרינג-קונקשיין?
                        שאלה נוספת בתוך אותה השאלה, האם יש דרך ליצור בכניסה לתוכנה טבלה וירטואלית ע"י ADODB, הטבלה תתעדכן פעם בדקה/און ליין ע"י קוד, ושיהיה אפשרות לבסס עליה שאילתות?

                        @ClickOne

                        אם זה שאילתות מורכבות אז זה לוקח זמן או שתעשה "תצוגות" בSQL SERVER עם כל השאילתא שלך, ותקשר את התצוגה לאקסס.

                        שו הדא "תצוגות"?

                        פורסם במקור בפורום CODE613 ב08/06/2016 15:59 (+03:00)

                        תגובה 1 תגובה אחרונה
                        0
                        • A מנותק
                          A מנותק
                          avr416
                          כתב ב נערך לאחרונה על ידי
                          #12

                          @CODE.NET

                          שו הדא "תצוגות"?

                          עיין כאן (בתוך המאמר יש הסבר על מה זה תצוגות):

                          פורסם במקור בפורום CODE613 ב10/06/2016 10:06 (+03:00)

                          תגובה 1 תגובה אחרונה
                          1

                          בא תתחבר לדף היומי!
                          • התחברות

                          • אין לך חשבון עדיין? הרשמה

                          • התחברו או הירשמו כדי לחפש.
                          • פוסט ראשון
                            פוסט אחרון
                          0
                          • דף הבית
                          • קטגוריות
                          • פוסטים אחרונים
                          • משתמשים
                          • חיפוש
                          • חוקי הפורום