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

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

قام بنشر

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

ابحث عن كود 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