الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ارجو تعديل البرنامج من التعامل مع قواعد بيانات اكسس إلى SQL

مغلق
بدأه yasserstars في 27 ديسمبر 2007 · 11 رد · 1,608 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أسف لإدارة المنتدي فقد يكون العنوان صعب الفهم ولكني لم أجد عنوان أكتبة للموضوع

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

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

وحتي لا أطيل عليكم فانا سأرفق برنامج بسيط معمول بفيجول 6 وقاعدة بيانات أكسيس 2000

وارجو من حضراتكم 1- تحويل قاعدة البيانات الموجود ل اس كيو ال سيرفر

2- تعديل الكود بنفس طريقة (DAO) الموجود في البرنامج لكي يتعامل مع اس كيو ال سيرفر وليس قاعدة بيانات الأكسيس

والبرنامج لا يحتوي الا علي كود ربط البرنامج بقاعدة البيانات وكود لحفظ البيانات وكود بحث عن سجل بالطريقة DAO

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

وارجو توضيح اسماء المكتبات المضافة ان وجدت

programs.rar

تم تعديل هذه المشاركة بواسطة yasserstars في 27 ديسمبر 2007 في 01:11

#2

انا مش فاهم الصراحه قصدك ايه

يفضل انك تقول عاوز تعمل ايه في المشروع بصوره اوضح

#3

أخي العزيز فؤاد

البرنامج اللي انا أرفقته هو برنامج قاعدة بيانات معمول بالفيجول 6 وقاعدة البيانات أكسيس 2000 ويعتمد في الربط علي طريقة الربط DAO وليس ADO وبهي كود للحفظ ( الاضافة للجدول ) و كود للبحث وهم معمولين ب DAO

وطلبي هو

تحول لي قاعدة البيانات من أكسيس إلي SQLserver وتحويل الأكود الموجودة لتتناسب مع قاعدة البيانات الجديدة (ٍَSQLserver)

وتكون عملية الربط تعتمد علي DAO وليس ADO

#4

هو الموضوع صعب قوي والا ايه

ارجو ان يفيدني أحد

#5

أرجو أن يجاوبني أحد

#6

up

تم تعديل هذه المشاركة بواسطة yasserstars في 30 ديسمبر 2007 في 15:04

#7

تفضل اخي الكريم البرنامج بعد التحويل

AdoPRog.rar

وبدل dao استخدم ado والتي هي من microsoft activex data object 2.x

والبرنامج بقي اكسس لكن يمكنك انشاء قاعدة بيانات SQL server وطريقة الربط موجودة داخل البرنامج ايضا (تقريبا لايوجد اختلاف بين الاكسس وال SQL server الا في طريقة الربط (بشكل عام))

#8

أخي العزيز طارق أولا أشكرك علي اهتمامك بالموضوع

ولا أخفي عليك أن من خلال كودك الذي انت أدرجته قد بدءت العملية تتضح لي حول ADO قليلا

لان الكودين الموجودين أساس شغل قواعد البيانات عموما سواء البحث أو الإضافة

لكن يا أخي الفاضل

اريد أن اري كود اس كيو ال مع طريقة الربط DAO

لان أنا معظم شغلي علي قواعد البيانات يكون ب DAO وليس ADO وانا أعلم تماما أهمية ADO

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

لذلك عايز أحاول أضبط DAO مع SQLsrver من خلال الأكواد السابقة التي أنا أرفقتها في البرنامج

لاني كما قلت لك هذان الكودان يعتمدان عليهم شغل قواعد البيانات كلها

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

والف شكر مرة أخري

#9

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

اولا متأسف لاني لم اقرأ المطلوب جيدا .

ثانيا لا انصحك باستخدام ال dao للربط مع ال SQL server فالافضل لك ان تتعمل ال ADO وكما رأيت في مثالي السابق لا توجد فروقات كبيرة بين ال dao وال ado .

ثالثا للربط باستخدام ال DAO تحتاج الى استخدام ال Odbc حيث لا يوجد طريقة مباشرة للربط مثل ال dao

كيفية الربط اعتقد هي كمايلي :

   Dim ws As Workspace
   Dim cn As DAO.Connection
   Dim strConnect As String
   Dim strSQL As String

Set ws = DBEngine.CreateWorkspace("", "", "", dbUseODBC)
Set cn = ws.OpenConnection("", , , "ODBC;DSN=Pubs;Database=Pubs;UID=<username>;PWD=<strong password>")
Dim rs As DAO.Recordset
Set rs = cn.OpenRecordset("select  * from  mytable")

فبدل استخدام database تستخدم connection

وعليك عمل مصدر بيانات dsn من خلال لوحة التحكم وادوات ادارية ثم odbc

ومتأسف هذه المرة على الاختصار

#10

أشكرك أخي طارق وارجو منك تقول لي هل ODBC هذه مكتبة يمكن اضافتها من ريفرانس

وان كان فعلا ما اسم المكتبة بالكامل كي اضيفها

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

لان خبرتي في التعامل مع ال اس كيو ال سيرفر ضعيفة لاني كنت اشتغل مع الاكسيس دائما

أرجو ان لا تمل من كثرة طلبيت

والف شكر مرة اخري

#11

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

اخي الكريم المشكلة في هذا الموضوع انه متشعب كثيرا فهو يحتوي على مواضيع كثيرة ولا استطيع تلخيصها او شرحها في هذه العجالة .

فانت بحاجة الى تركيب SQL server

انشاء قاعدة بيانات

ولو اعطيتك واحدة جاهزة فانت بحاجة الى ربطها مع ال SQl server

وبحاجة الى فهم الصلاحيات (على الاقل اساسيات حتى تستطيع الدخول اليه)

وهذا ولم نتكلم عن ال DAO لحد الان

لذا ارجو من حضرتك اولا تعلم ولو القليل في ال SQL server وهو ليس بالصعب وتجد دروس كثيرة عنه في قسمه الخاص

لتعريف DSN نذهب الى لوحة التحكم ثم ادوات ادارية وبعد ذلك كما في الصور (لا تحتاج الى مكتبات جديدة)

post-112904-1199123371_thumb.jpg

post-112904-1199123507_thumb.jpg

post-112904-1199123532_thumb.jpg

post-112904-1199123543_thumb.jpg

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

واعتقد ان بقية الكود لن يختلف معك بين الاكسس وال SQL server

#12

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

هذا كودك بعد العديل

حمل اداة ادو علي الفورم عوضا عن تعريفها من الرفرينس ثم استعمل الكود التالي

Dim mydb As Database

Dim CNN_DB As New ADODB.Connection

Dim Rs As New ADODB.Recordset

Dim SQL As String

Private Sub Command1_Click()

If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then MsgBox "ÇãáÇÁ ÇáÎÇäÇÊ ÇáÝÇÑÛÉ ": Exit Sub

CNN_DB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\db1.mdb;" & "Jet OLEDB:Database Password=636305"

CNN_DB.Open

SQL = "select * from items where items.[no]=" & Text1.Text

Rs.Open SQL, CNN_DB, adOpenStatic, adLockOptimistic, adCmdText

If Rs.RecordCount = 0 Then

Rs.AddNew

Rs("no") = Val(Text1.Text)

Rs("item") = Text2.Text

Rs("qua") = Val(Text3.Text)

Rs.Update

Else

MsgBox "åÐÇ ÇáÑÞã ãæÌæÏ "

End If

CNN_DB.Close

Text1.Text = "": Text2.Text = "": Text3.Text = ""

End Sub

Private Sub Command2_Click()

Dim v As String

v = InputBox("ÃÏÎá ÇáÑÞã ÇáãØáæÈ", "ÇáÈÑäÇãÌ")

If v = "" Then Exit Sub

CNN_DB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\db1.mdb;" & "Jet OLEDB:Database Password=636305"

CNN_DB.Open

SQL = "select * from items where items.[no]=" & v

Rs.Open SQL, CNN_DB, adOpenStatic, adLockOptimistic, adCmdText

If Rs.RecordCount > 0 Then

Text1 = Rs("no")

Text2 = Rs("item")

Text3 = Rs("qua")

Else

MsgBox ("åÐÇ ÇáÓÌá ÛíÑ ãæÌæÏ")

End If

CNN_DB.Close

End Sub

Private Sub Command3_Click()

Text1.Text = "": Text2.Text = "": Text3.Text = ""

End Sub

________.zip

هذا الموضوع مغلق.

مواضيع مشابهة