פונקציית vba & odbc
-
@ליבל אמר בפונקציית vba & odbc:
לא בדיוק הבנתי את כוונתך
עד היום עשיתי, נתונים חיצונים>מקור חדש>קובץ odbc התכוונת לזה ?הפונקציה הזו טובה לקריאת נתונים דרך Recordset של ADO (ActiveX Data Object)
היא לא תשמש אותך אם יש טפסים המבוססים ישירות על טבלאות או שאילתות, לזה צריך אובייקט DAO.
מה שאתה צריך זה פונקציה שתיצור קישור טבלה באמצעות אובייקט Tabldefs. משהו בסגנון:public sub CreateTableLink(tableName as string, cnn as string) dim tdf as DAO.Tabledef Set tdf = currentdb.CreateTableDef(tableName) tdf.Connect = cnn currentdb.TableDefs.Append tdf end sub ותעביר כפרמטרים את שם הטבלה ומחרוזת הקישור
-
@ליבל אמר בפונקציית vba & odbc:
@dovid אמר בפונקציית vba & odbc:
במהלך הגדרת החיבור (בדרך שעשית עד היום) יש אפשרות כמדומני לצפות ב"מחרוזת החיבור" (connection string).
לא בדיוק הבנתי את כוונתך
עד היום עשיתי, נתונים חיצונים>מקור חדש>קובץ odbc התכוונת לזה ?ואז נפתח לך תיבת דו שיח, ואתה מתבקש ליצור חיבור חדש או להשתמש בקובץ חיבור קיים.
בסיום התהליך כמדומני יש מקום שאתה יכול לראות את מחרוזת החיבור - טקסט אנגלי ארוך שמכיל את כל הפרמטרים שהזנת באפשרויות החיבור. -
@dovid אמר בפונקציית vba & odbc:
בסיום התהליך כמדומני יש מקום שאתה יכול לראות את מחרוזת החיבור - טקסט אנגלי ארוך שמכיל את כל הפרמטרים שהזנת באפשרויות החיבור.
אצלי אין
אופיס 2016 -
@ליבל אמר בפונקציית vba & odbc:
אצלי אין
אופיס 2016אתה יכול לראות בטבלה MSysObjects בשדה Connect את מחרוזת החיבור
-
- תיקח קובץ טקסט
- תהפוך את הסיומת לudl,
- תפתח אותו שוב ע"י לחיצה כפולה
- תקשר אותו למסד הנתונים שאתה רוצה להתחבר אליו (עד שאתה מקבל הודעת אישור שהקונקט הצליח).
- אח"כ תפתח אותו שוב בטקסט והרי לך הנתיב.
-
@chagold תודה אכן נתן לי את הנתיב.
עדיין יש לי שגיאה לא מבין מדוע,Private Sub Form_Current() Dim oConn As ADODB.Connection Private Sub ConnectDB() Set oConn = New ADODB.Connection oConn.Open "DRIVER={MySQL ODBC 8.0 Unicode Driver};SERVER=51.51.51.51;UID=sss;PWD=XXXXXX;DATABASE=jjjj;PORT=3306;" End Sub חוץ מ
DRIVER={MySQL ODBC 8.0 Unicode Driver}
שזה חייב להיות נכון, הכול היה בתיעוד הנתיב -
-
oConn As ADODB.Connection
-
מותקן לי גם דרייבר של 32 bit וגם 64 bit, יתכן שזה הבעיה
השאלה האם אפשר להגדיר שישתמש דווקא של 32 ? -
וואו אני באמת חדש ב vba, מעניין מה צריך לעשות
זה לא משנה פונקציה פרטית ופונקציה כללית ?Sub j() Dim oConn As ADODB.Connection Private Sub ConnectDB() Set oConn = New ADODB.Connection oConn.Open "DRIVER={MySQL ODBC 8.0 Unicode Driver};SERVER=222.000.333.22;UID=s555r;PWD=55555;DATABASE=ggggggg;PORT=3306;OPTION=3;" End Sub -
ב"ה נראה לי שהצלחתי אבל עדיין אין לי אינדקציה לזה (פשוט אין שגיאות...)
איך אני צריך להביא את הטבלאות ע"י sql ? -
@ליבל אמר בפונקציית vba & odbc:
ב"ה נראה לי שהצלחתי אבל עדיין אין לי אינדקציה לזה (פשוט אין שגיאות...)
איך אני צריך להביא את הטבלאות ע"י sql ?תלוי מה שיטת העבודה שלך. אם אתה רק רוצה לגשת לנתונים דרך VBA יש פונקציות לקרוא Recordset
אבל -
אם יש לך טפסים שמבוססים על טבלאות תצטרך לאכלס אותם על ידי VBA או להשתמש בטבלאות מקושרות DAO ובפונקציה שכתבתי לך למעלה
13/50