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

كيف اربط متغيرات الاجراء بمربعات النصوص بالنموذج

مغلق
بدأه khz في 11 مايو 2005 · 4 رد · 1,346 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

تحياتي لجميع الاعضاء

ارجو توضيح كيف يتم الربط ما بين نموذج ادخال بيانات بمشاريع الاكسس مع الاجراء المخزن بحيث اني عرفت متغيرات في الاجراء واريد ان اربط هذه المتغيرات بمربعات النصوص في النموذج

#2

ارجو ان تطرح هذا السؤال في منتدى الاكسس فله منتدى خاص

/index.php?showforum=116

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#3

يمكنك استخدام 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

My LinkedIn Profile

اللهم قنى شر الجهل و الجهلاء

( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}

#4

أخي الكريم ..

هذا مثال قمت بعمله وتحققت منه وأعطى النتائج بشكل صحيح ..

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 ليحمل القيمة المعادة من الإجراء المخزن

ودمت بخير ورضا

#5

شكرا اخي احمد على التجاوب السريع جدا ويعلم الله ان لساني عاجز عن الشكر لك ففعلاً هكذا نرتقي وهكذا نبدع ما دام هناك اشخاص مثلك

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

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

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