تحياتي لجميع الاعضاء
ارجو توضيح كيف يتم الربط ما بين نموذج ادخال بيانات بمشاريع الاكسس مع الاجراء المخزن بحيث اني عرفت متغيرات في الاجراء واريد ان اربط هذه المتغيرات بمربعات النصوص في النموذج
تحياتي لجميع الاعضاء
ارجو توضيح كيف يتم الربط ما بين نموذج ادخال بيانات بمشاريع الاكسس مع الاجراء المخزن بحيث اني عرفت متغيرات في الاجراء واريد ان اربط هذه المتغيرات بمربعات النصوص في النموذج
يمكنك استخدام OpenQueryDef مع تمرير متغير نصى يحمل اسم الاجراء المخزن و الباراميترات التى يأخذها كما يلى
MySQLStr= "MySP'Tarik'"
هنا فرضت وجود اجراء مخزن اسمه MySP و مررت له قيمة Tarik المفترض انه سيجرى عليها عملية معينه و لكن فى حال اردت ان تمرر له قيمة لا تعرفها مسبقاً فسيكون بالشكل التالى
MySQLStr= "MySP'" & TextBox.Text & "'"
ثم بعد ذلك ستمرر اسم المتغير النصى MySQLStr للدالة OpenQueryDef
سافترض ان لديك كود بشكل ما و ستعرف به المتغير التالى
Dim MyDB as DatabASE Dim MyQuery as QueryDef Set MyDB = ' Put Your DB Connection Here Set MyQuery = MyDB.OpenQueryDef(MySQLStr) MyQuery.Execute MyQuery.Close MyDB.Close DoEvents
اعتقد ان الكود واضح و يمكن للاخوة فى منتدى الاكسيس مساعدتك اكثر إن احببت يمكن نقل الموضوع للنقاش المشترك هناك
Technical Lead Developer
اللهم قنى شر الجهل و الجهلاء
( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}
أخي الكريم ..
هذا مثال قمت بعمله وتحققت منه وأعطى النتائج بشكل صحيح ..
1- إجراء مخزن باسم InsertTo لإدراج سجل في الجدول tbl1 في حقلين باسم no1 وباسم name1
@nom int, @Nam varchar(50) As insert into tbl1(no1,name1)values(@nom,@nam)
2- إجراء مخزن باسم selectOut لسحب بيانات من الجدول tbl1
@OtNom int output As select @OtNom = no1 from tbl1
كود ADO لإدخال السجلات :
Private Sub cmdInsert_Click() Dim db As New ADODB.Connection Dim cmdInsert As New ADODB.Command Dim prm As ADODB.Parameter db.Open CurrentProject.Connection With cmdInsert .ActiveConnection = db .CommandText = "InsertTo" .CommandType = adCmdStoredProc End With Set prm = New ADODB.Parameter With prm .Name = "الرقم" .Type = adInteger .Value = Me.txtNO .Direction = adParamInput End With cmdInsert.Parameters.Append prm Set prm = New ADODB.Parameter With prm .Name = "الاسم" .Type = adVarChar .Value = Me.txtName .Size = 50 .Direction = adParamInput End With cmdInsert.Parameters.Append prm cmdInsert.Execute
على افتراض أن قيمة الحقلين ستؤخذ من مربعي نص موجودة في النموذج باسم txtNo وباسم txtName
كود سحب البيانات من جدول tbl1 من حقل الرقم No1 فقط :
Dim db As New ADODB.Connection
Dim cmdselect As New ADODB.Command
Dim prm As ADODB.Parameter
db.Open CurrentProject.Connection
With cmdselect
.ActiveConnection = db
.CommandText = "selectOut"
.CommandType = adCmdStoredProc
End With
Set prm = New ADODB.Parameter
With prm
.Name = "الرقم"
.Type = adInteger
.Direction = adParamOutput
End With
cmdselect.Parameters.Append prm
cmdselect.Execute
Me.txtNOIn = cmdselect.Parameters("الرقم").Value
db.Close
Set db = Nothingعلى افتراض وجود مربع نص باسم txtNOIn ليحمل القيمة المعادة من الإجراء المخزن
ودمت بخير ورضا
شكرا اخي احمد على التجاوب السريع جدا ويعلم الله ان لساني عاجز عن الشكر لك ففعلاً هكذا نرتقي وهكذا نبدع ما دام هناك اشخاص مثلك
سوف اقراء الكود واطبق عليه واعلمك بالنتيجة لكي ستفيد الجميع ان شاء الله
هذا الموضوع مغلق.