اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

قمت بعمل كود لاعادة ربط الجداول بسيكوال سيرفر ولكن هناك خطأ 

اليكم الكود 

Public Function relinksqltables() As Boolean
On Error GoTo relinksqltablesErr

Dim tdef As TableDef
Dim constr As String
Dim cnn As ADODB.Connection
Dim strserver As String, strdb As String, struser As String, strpass As String
 constr = "drive={ODBC;DRIVER=ODBC Driver 17 for SQL Server;SERVER=WIN-9V6JHD626P3\SQLEXPRESS;id = administrator;PASSWOR= ;database=tarikbase;Trusted_Connection=yes;APP=SSMA;DATABASE=tarikbase;"
DoCmd.SetWarnings False
For Each tdef In db.TableDefs
Debug.Print tdef.Name
If InStr(tdef.Connect, "odbc") And Left(tdef.Name, 3) = "dbo" Then
If tdef.Connect <> conster Then

tdef.Connect = constr
tdef.RefreshLink
End If
End If
Next
DoCmd.SetWarnings True
Exit Function
relinksqltablesErr:

relinksqltables = False
MsgBox "Error in relinksqltables: " & Err.Description

End Function

وهذه الصورة التى تظهر عند تشغيل  النموذج

Untitled.png

  • Moosak changed the title to خطأ في كود لاعادة ربط الجداول بسيكوال سيرفر
قام بنشر
منذ ساعه, tiger wanted said:

قمت بعمل كود لاعادة ربط الجداول بسيكوال سيرفر ولكن هناك خطأ 

 

باعتقادي انك لم تقم بتعريف قاعدة البيانات db ..

Public Function relinksqltables() As Boolean
On Error GoTo relinksqltablesErr

Dim db As DAO.Database
Dim tdef As TableDef
Dim constr As String
Dim cnn As ADODB.Connection
Dim strserver As String, strdb As String, struser As String, strpass As String

Set db = CurrentDb()
constr = "drive={ODBC;DRIVER=ODBC Driver 17 for SQL Server;SERVER=WIN-9V6JHD626P3\SQLEXPRESS;id = administrator;PASSWOR= ;database=tarikbase;Trusted_Connection=yes;APP=SSMA;DATABASE=tarikbase;"
DoCmd.SetWarnings False
For Each tdef In db.TableDefs
Debug.Print tdef.Name
If InStr(tdef.Connect, "odbc") And Left(tdef.Name, 3) = "dbo" Then
If tdef.Connect <> conster Then
tdef.Connect = constr
tdef.RefreshLink
End If
End If
Next
DoCmd.SetWarnings True
Exit Function

relinksqltablesErr:
relinksqltables = False
MsgBox "Error in relinksqltables: " & Err.Description

End Function

انظر لهذا السطر
 

For Each tdef In db.TableDefs

هنا قام الكود باستدعاء db ولكنك لم تقم بتعريفها في الكود الخاص بك :excl:

قام بنشر
18 دقائق مضت, tiger wanted said:

من فضلك ارجو الايضاح فى انتظار الرد 

هل جربت الكود يا صديقي أولا ...

 

الذي تم هو فقط تعريف المتغير db كما يلي

Dim db As DAO.Database
Set db = CurrentDb()

 

لم اقم بتجربته ، ولكن هذا ما توضح لي ، وانت صاحب التجربة للعودة لنا بالنتيجة .

قام بنشر

ليس لدي قاعدة بيانات لاعادة ربط الجداول بسيكوال سيرفر حتى أوافيك بتجربة ناجحة .. قد يكون للإخوة مساهمة في تحقيق هدفك :wub: .

قام بنشر

حسب الصورة كود الاستاذ فوكش يعمل بشكل سليم فقط اختر التبويب الثاني
يجب ان يكون اعداد الاتصال في السيرفر مسبقا كي يظهر بشكل صحيح

cc.png

  • Like 1
قام بنشر

تم الحصول على الكود ولكن يجب الاتصال اولا باستخدام sql driver 17


Sub nel_SQL()
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Set db = CurrentDb
For Each tdf In db.TableDefs
If tdf.Connect <> "" Then
'tdf.Connect = "PROVIDER=SQLOLEDB;SERVER=WIN-9V6JHD626P3\SQLEXPRESS;DATABASE=tarikbase2;UID=user1001;PWD=1@@1a"
tdf.Connect = "ODBC;DRIVER=ODBC Driver 17 for SQL Server;SERVER=.\SQLEXPRESS;UID=user1001;PWD=1@@1a;Trusted_Connection=No;DATABASE=tarikbase2;"

'ODBC;DRIVER=ODBC Driver 17 for SQL Server;SERVER=.\SQLEXPRESS;UID=user1001;PWD=1@@1a;Trusted_Connection=No;DATABASE=tarikbase2;
tdf.refreshlink
End If
Next tdf
Set tdf = Nothing
Set db = Nothing


End Sub

  • Confused 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information