פונקציית vba & odbc
-
יש לי קובץ אקסס שמתחבר לשרת ע"י odbc
כרגע אני מגדיר בכל מחשב את החיבור של הקובץ
מחיפוש קטן מצאתי פונקציה vba אבל ממש לא הבנתי איך מגדירים את הטבלאות להתחבר דרכו
(יותר נכון מצאתי את הפונקציה, אבל אין לי מושג איך משתמשים בו )Dim oConn As ADODB.Connection Private Sub ConnectDB() Set oConn = New ADODB.Connection oConn.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _ "SERVER=localhost;" & _ "DATABASE=excel;" & _ "USER=root;" & _ "PASSWORD=;" & _ "Option=3" End Sub
-
@ליבל אמר בפונקציית 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 התכוונת לזה ?ואז נפתח לך תיבת דו שיח, ואתה מתבקש ליצור חיבור חדש או להשתמש בקובץ חיבור קיים.
בסיום התהליך כמדומני יש מקום שאתה יכול לראות את מחרוזת החיבור - טקסט אנגלי ארוך שמכיל את כל הפרמטרים שהזנת באפשרויות החיבור. -
@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}
שזה חייב להיות נכון, הכול היה בתיעוד הנתיב