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

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

قام بنشر

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

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

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