פונקציית vba & odbc
-
אני רוצה שהטבלאות יקושרו ע"י VBA באופן נורמלי - לפי הבנתי הקוד שכעת עובד לי זה רק מייבא לי את הטבלאות לאקסס, אני צריך שיהיה מקושר.
@ליבל אמר בפונקציית vba & odbc:
אם אין לך גישה למודלים אתה לא יכול לכתוב קוד VBA...
התכוונתי לקובץ שקיבלתי מהחברה הנ"ל
-
@ליבל מסיבה מסויימת אתה חוסך במלל או הסברים,
אולי בגלל שהקובץ הזה טובל בפשעים חמורים נגד האנושות או משהו דומה
תדבר הכל חופשי, אנחנו לא נבין מעבר לחלק הטכני/לא נראה את הכובע שעל ראש הגנב/לא נכעס שלא הבנת משהו פשוט. תרגיש בנח לספר סיפור מלא ומפורט. -
@dovid תודה הרגשתי קצת שמשהו לא שווה כאן
אנסה להסביר שוב, במידה ועדיין לא מובן אשמח לענות
אני רוצה לחבר את הקובץ אקסס לטבלאות בשרת, כרגע האקסס מסונכרן ע"י גוף שלישי (odbc שזה קובץ מקומי במחשב). אני רוצה שבמקום שהנתוני חיבור הכול יתנהל בהיזשהו צורה ע"י האקסס \ VBA , וכפי שהבנתי הפונקציה שהבאתי כאן די מוגבלת כלומר עדיין לא הבנתי איך אני מקשר דרכו את הטבלאות -
@ליבל תפתח מודל חדש ותדביק את הקוד הבא (מאתר מייקרוסופט)
'//Name : AttachDSNLessTable '//Purpose : Create a linked table to SQL Server without using a DSN '//Parameters '// stLocalTableName: Name of the table that you are creating in the current database '// stRemoteTableName: Name of the table that you are linking to on the SQL Server database '// stServer: Name of the SQL Server that you are linking to '// stDatabase: Name of the SQL Server database that you are linking to '// stUsername: Name of the SQL Server user who can connect to SQL Server, leave blank to use a Trusted Connection '// stPassword: SQL Server user password Function AttachDSNLessTable(stLocalTableName As String, stRemoteTableName As String, stServer As String, stDatabase As String, Optional stUsername As String, Optional stPassword As String) On Error GoTo AttachDSNLessTable_Err Dim td As TableDef Dim stConnect As String For Each td In CurrentDb.TableDefs If td.Name = stLocalTableName Then CurrentDb.TableDefs.Delete stLocalTableName End If Next If Len(stUsername) = 0 Then '//Use trusted authentication if stUsername is not supplied. stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";Trusted_Connection=Yes" Else '//WARNING: This will save the username and the password with the linked table information. stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";UID=" & stUsername & ";PWD=" & stPassword End If Set td = CurrentDb.CreateTableDef(stLocalTableName, dbAttachSavePWD, stRemoteTableName, stConnect) CurrentDb.TableDefs.Append td AttachDSNLessTable = True Exit Function AttachDSNLessTable_Err: AttachDSNLessTable = False MsgBox "AttachDSNLessTable encountered an unexpected error: " & Err.Description End Function
הפונקציה הזו יוצרת קישור חדש לטבלה, ואם הטבלה כבר קיימת היא מוחקת את הקישור הקיים.
תחביר קריאה לפונקציה:AttachDSNLessTable("dbo_myTable", "dbo.myTable", "SERVER_IP", "dbName", "user", "password")