اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

ربط الاكسل مع sql


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

السلام عليكم ورحمة الله وبركاته 

ابحث عن كود vba  يعمل على ربط الاكسل مع قاعدة بيانات sql server  وليس العكس ...

هل استطيع اضافة بيانات أو استبدال أو حذف ...

أرجو الافادة من الاساتذة الكرام .....

رابط هذا التعليق
شارك

مرحبا اخي الكريم

من خلال الاكسل يمكنك ان تضيف او تعدل او تحذف بيانات من

SQL Server

أولا : كود استعلام البيانات

Private Sub GetSQLData()
On Error GoTo err
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql_string As String
Dim strconn As String

DataBaseName = "------"
ServerName = "------"
UserId = "------"
Password = "------"

strconn = "Provider=SQLOLEDB.1;Password=" & Password & ";User ID=" & UserId & ";Initial Catalog=" & DataBaseName & ";Data Source=" & ServerName
sql_string = "SELECT  *  from transactions WHERE CustomerID= '2648'  "
cn.Open strconn
rs.Open sql_string, cn
Range("a3").CopyFromRecordset rs
rs.Close
Set rs = Nothing
cn.Close

Exit Sub
err:
MsgBox err.Description
End Sub

 ثانيا: كود الاضافة

Private Sub InsertSQLData()
On Error GoTo err
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql_string As String
Dim strconn As String

DataBaseName = "-----"
ServerName = "-----"
UserId = "----"
Password = "----"

strconn = "Provider=SQLOLEDB.1;Password=" & Password & ";User ID=" & UserId & ";Initial Catalog=" & DataBaseName & ";Data Source=" & ServerName
sql_string = "Insert Into transactions (CustomerID, Amount)  values ( '1',1000) "
cn.Open strconn
rs.Open sql_string, cn


Set rs = Nothing
cn.Close

Exit Sub
err:
MsgBox err.Description
End Sub

ثالثا: كود التعديل

Private Sub UpdateSQLData()
On Error GoTo err
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql_string As String
Dim strconn As String

DataBaseName = "----"
ServerName = "----"
UserId = "----"
Password = "----"

strconn = "Provider=SQLOLEDB.1;Password=" & Password & ";User ID=" & UserId & ";Initial Catalog=" & DataBaseName & ";Data Source=" & ServerName
sql_string = "update transactions set CustomerID='2'  where amount =1000 "
cn.Open strconn
rs.Open sql_string, cn


Set rs = Nothing
cn.Close

Exit Sub
err:
MsgBox err.Description
End Sub

 

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

مثلا بدل كتابة sql_string = "update transactions set CustomerID='2'  where amount =1000 "

يمكنك كتابة sql_string = "update transactions set CustomerID= "& "'" &   range("a2") &  "'"  & " where amount =" & range("b2") 

لاحظ إضافة

'

امام وخلف أي قيمة لا تكون مبنية في اس كيو ال انها قيمة

int

وشكرا

 

 

  • Like 1
رابط هذا التعليق
شارك

اولا جزاك الله خيرا على سرعة الرد والاسترسال بالحل ....

ارجو التعديل بالملف ان امكن ليتناسب مع المرفقات 

(تحديد اسم الجدول في SQL)

هل هذه الطريقة مجربة ... 

 

CODE.rar

تم تعديل بواسطه الذيب 2015
رابط هذا التعليق
شارك

اوك.. سيتم عمل المطلوب

ساستعمل نفس الكود السابق

ولكن مع استخدام

loop

لكي يتم استبدال كل البيانات بالجدول

والطريقة مجربة طبعا

ولكن من الأفضل عمل تست للكود على جدول تست

 

  • Like 1
رابط هذا التعليق
شارك

لا ... بس احنا شغالين على

NETWORK

في

SERVER 

في

DOMAIN 

بس عاملين  windows authentication  عملت USER ID 

تبع جهازي 

عملت الادمن ايضا تبع جهازي 

ما فاد 

 

اشكرك على سعة صدرك ......

ارجو أن تكون الفكرة وصلت ....

 

تم تعديل بواسطه الذيب 2015
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information