محمد ايمن قام بنشر أكتوبر 29, 2012 قام بنشر أكتوبر 29, 2012 الاخوة الاكارم تحية طيبة الجملة التالية تقوم باضافة بيانات الى الجدول logaction DoCmd.RunSQL ("insert into logaction (username) values (UName)") المشكلة تكمن في UName لانه في كل مرة يحمل قيمة جديدة !!!! ماهو التعديل المطلوب لاستطيع استخدام هذا المتغير ملاحظة المتغير من نوع Variant
Bluemind قام بنشر أكتوبر 30, 2012 قام بنشر أكتوبر 30, 2012 الاخ محمد اعتقد ان الكود ناقص او انك لم تضع كامل الكود من اي تاتي قيمه UName بالاساس؟؟ اي من اي كائن تاخذ القيمه؟؟ على العموم هذا مثال بسيط لتوضيح اسناد القيمه الى متغير وهو غير مجرب Dim varValue As Variant varValue = me.TextUserName If not IsNull(varvalue) Then DoCmd.RunSQL ("insert into logaction (username) values (varValue)")
محمد ايمن قام بنشر أكتوبر 30, 2012 الكاتب قام بنشر أكتوبر 30, 2012 اخي bluemaind المتغير Uname يتحكم به اكثر من نموذج فعند فتح اي نموذج يقوم هذا النموذج بوضع قيمة في هذا المتغير عند التجربة ظهرت لي هذه الصورة ( طبعا المتغير كان يحوي قيمة )
Bluemind قام بنشر أكتوبر 30, 2012 قام بنشر أكتوبر 30, 2012 اذا عليك تعريف متغير عام او globle variable و استدعائه عن تشغيل البرنامج من نموذج البداء قم بالتالي انشاء module جديد وضع الكود التالي به Option Compare Database ' Access global variables definition Global Gbl_Username As String Option Explicit Public Sub Start_Globals() Gbl_Username = Environ("username") End Sub ثم في حدث عن الفتح لنموذج البداء قم بوضع الكود التالي Option Compare Database Option Explicit Private Sub Form_Open(Cancel As Integer) DoCmd.Maximize Call start_Globals End Sub و ان انت تستخدم اكسس 2007 فهناك Tempvars معرف وجاهز
محمد ايمن قام بنشر أكتوبر 30, 2012 الكاتب قام بنشر أكتوبر 30, 2012 اذا عليك تعريف متغير عام او globle variable و استدعائه عن تشغيل البرنامج من نموذج البداء قم بالتالي انشاء module جديد وضع الكود التالي به Option Compare Database ' Access global variables definition Global Gbl_Username As String Option Explicit Public Sub Start_Globals() Gbl_Username = Environ("username") End Sub ثم في حدث عن الفتح لنموذج البداء قم بوضع الكود التالي Option Compare Database Option Explicit Private Sub Form_Open(Cancel As Integer) DoCmd.Maximize Call start_Globals End Sub و ان انت تستخدم اكسس 2007 فهناك Tempvars معرف وجاهز هذا ما فعلته و لكن لم يعمل كود الادراج DoCmd.RunSQL ("insert into logaction (username) values (UName)") حيث تظهر الصورة السابقة دائما
محمد ايمن قام بنشر أكتوبر 30, 2012 الكاتب قام بنشر أكتوبر 30, 2012 للتوضيح النموذج main يحتوي على ثلاثة ازرار و هي تقوم بفتح النماذج frm1 - frm2 - frm3 و كل نموذج عند الفتح يقوم بتخزين قيمة في المتغير UName يوجد في كل نموذج رز ادخال قيمة المتغير و هو الذي ينفذ الكود التالي DoCmd.RunSQL ("insert into logaction (formname) values (uname)") SQLVariable.rar
عبد الفتاح كيرة قام بنشر أكتوبر 30, 2012 قام بنشر أكتوبر 30, 2012 (معدل) تفضل هذا مجرب كود الزر mysql = "INSERT INTO logaction ( formname )SELECT [Forms]![frm1]![rrr] AS Expr1;" DoCmd.RunSQL mysql بعد إضافة مربع نص( يمكنك إخفاؤه) به اسم النموذج SQLVariable_2.rar وهذا لإخفاء التحذير Private Sub cmd1_Click() DoCmd.SetWarnings False Dim myvar As String myvar = Me.Name AddAction myvar DoCmd.SetWarnings True End Sub Private Sub Form_Open(Cancel As Integer) Me.rrr = Me.Form.Name End Sub تم تعديل أكتوبر 30, 2012 بواسطه أبو لميس
محمد ايمن قام بنشر أكتوبر 30, 2012 الكاتب قام بنشر أكتوبر 30, 2012 اخي ابو لميس تحية طيبة الكود لا يصلح لسبب ان من يتحكم بقيمة المتغير عناصر متغيرة و ليست ثابتة بصورة اخرى في بعض الاحيان يتم تخزين اسم نموذج و احيانا اسم مستخدم و احيانا اسم زر و بالتالي لايمكن ربط المتغير بحقل نصي
عبد الفتاح كيرة قام بنشر أكتوبر 31, 2012 قام بنشر أكتوبر 31, 2012 نحتاج لمتغير نصى أى حروف تصلح للدخول فى الاستعلام عن طريق الكود كل الأنواع التى تفضلت بذكرها هى نص مع الشكر
Bluemind قام بنشر أكتوبر 31, 2012 قام بنشر أكتوبر 31, 2012 تفضل المرفق بعد التعديل عليه SQLVariable.rar
محمد ايمن قام بنشر أكتوبر 31, 2012 الكاتب قام بنشر أكتوبر 31, 2012 Chr (code) تقوم الدالة Chr بتحويل رقم بين ( 0 - 255 ) الى كود ASCII المخزن في جدول هذه الدالة مثلا العبارة التالية: Hi, I'm "mubarmej" ستجد انه لايمكنك كتابتها بهذا الشكل myText = "Hi," & vbCrLf & "I'm "mubarmej"" لان البرنامج سيعتقد ان نهاية السلسلة النصية هي عند علامة الاقتباس التي تقع قبل كلمة mubarmej لذلك نستخدم الدالة Chr للتعبير عن علامات الاقتباس المزدوجة و بذلك تصبح العبارة السابقة myText = "Hi," & vbCrLf & "I'm " & chr(34) & "mubarmej" & chr(34) وفيما يلي اهم الارقام و مايقابلها في جدول ASCII chr(33) اشارة التعجب ! chr(34) علامة الاقتباس المزدوجة " chr(35) اشارة المربع # chr(36) اشارة الدولار $ chr(37) اشارة النسبة المئوية % chr(38) اشارة جمع السلاسل النصية & chr(39) علامة الاقتباس المفردة ' chr(40) اشارة القوس ( chr(41) اشارة القوس ) chr(42) اشارة النجمة * chr(44) اشارة الفاصلة , chr(58) النقطتين : chr(59) الفاصلة المنقوطة ; اتمنى ان أكون قد وفقت في الشرح منقول لعموم الفائدة
محمد ايمن قام بنشر أكتوبر 31, 2012 الكاتب قام بنشر أكتوبر 31, 2012 (معدل) بارك الله فيك اخي الكريم الكود يعمل 100 % و لعموم الفائدة الكود يكتب بهذا الشكل ("Insert Into logaction (formname) Values (" & Chr(34) & UName & Chr(34) & ")") UName هو متغير تم تعديل نوفمبر 1, 2012 بواسطه Bluemind
Bluemind قام بنشر نوفمبر 1, 2012 قام بنشر نوفمبر 1, 2012 بارك الله فيك تم دمج الموضوعين لتعم الفائده من المثال
ابو عارف قام بنشر نوفمبر 1, 2012 قام بنشر نوفمبر 1, 2012 سلام الى الجميع للاختصار بسيط يمكن نكتبه بهذالشكل ("Insert Into logaction (formname) Values ('" & UName & "')")
محمد ايمن قام بنشر نوفمبر 2, 2012 الكاتب قام بنشر نوفمبر 2, 2012 اخي كنعان تحية طيبة و بارك الله فيك لكن لي توضيح لما ذكرته الكود الذي اضفته يقبل التعامل مع متغير واحد فقط و عند محاولة استخدام اكثر من متغير تظهر رسالة خطأ بالكود str = ("insert into logaction(username) values ('" & UName & "' & "," & '" & utime & "')") بينما الكود المرفق من اخينا bluemaind يقبل اكثر من متغير str = ("Insert Into logaction (username,tmstamp,dastamp,frmname,actionname) Values(" & Chr(34) & UName & Chr(34) & "," & Chr(34) & UTime & Chr(34) & "," & Chr(34) & UDate & Chr(34) & "," & Chr(34) & UForm & Chr(34) & "," & Chr(34) & UAction & Chr(34) & ")") لاحظ ان uname - utime - udate - uform - uaction جميعها متغيرات قد اكون اخطأت في تطبيق الكود و لكن جميع محاولاتي بائت بالفشل عند دمج اكثر من متغير
ابو عارف قام بنشر نوفمبر 2, 2012 قام بنشر نوفمبر 2, 2012 السلام عليكم و رحمة الله وبركاته أخي محمد اليك المثال كيفية اضافة قيم المتعددة نص,رقم, تاريخ,والوقت ترحيل بيانات.rar
محمد ايمن قام بنشر نوفمبر 2, 2012 الكاتب قام بنشر نوفمبر 2, 2012 اعذرني اخي الكريم في مثالك عدنا الى المشاركة 10 حيث يتم الادخال عن طريق مربعات من موجودة في نموذج بينما التطبيق يدور على متغيرات يتحكم فيها التطبيق ككل و ليس مربعات نص موجودة في نموذج محدد ارجو ان تكون قد اتضحت الفكرة دمتم بحفظ الله و رعايته
ابو عارف قام بنشر نوفمبر 2, 2012 قام بنشر نوفمبر 2, 2012 ممكن تغير أسماء مربعات في الكود الى اسماء متغيرات و مسح مربعات
أبو آدم قام بنشر نوفمبر 2, 2012 قام بنشر نوفمبر 2, 2012 اذا كنت قد أحسنت الفهم عنكم ما تريدونه متغيرات تذهب للجدول كسجل جديد تحت شرط معين المرفق فيه تعديل آمل أن يفي بالغرض ، إسم النموذج والوقت والمستخدم إستلزم الأمر تعديل الجدول Function AddAction(strFormName As String) Dim strSQL As String strSQL = "INSERT INTO logaction(cUserCode, dDateTime,FormName) VALUES ('" & CurrentUser & "', #" & Now & "#, " & Chr(34) & Replace(strFormName, Chr(34), Chr(34) & Chr(34)) & Chr(34) & ")" CurrentDb.Execute strSQL, dbFailonerror End Function جرب ووافني بالنتيجة .... والله من وراء القصد وهو حسبي ............ NA_SQLVariable_UP.rar
محمد ايمن قام بنشر نوفمبر 3, 2012 الكاتب قام بنشر نوفمبر 3, 2012 اخي كنعان لم تتضح الفكرة ممكن تغير أسماء مربعات في الكود الى اسماء متغيرات و مسح مربعات الموجود بين المربعات هو اسماء حقول الجدول التي سادخل القيم اليها ؟؟ ارجو التوضيح اخي ابو آدم تحية طيبة الفكرة هي متغيرات عامة في قاعدة البيانات ( مخزنة ضمن وحدة نمطية ) هذه المتغيرات تستخدمها كافة نماذج قاعدة البيانات و تخزن فيها قيم متعددة ( احيانا نص احيانا رقم احيانا تاريخ ) حسب النموذج المشكلة هي كيف ساعبر عن المتغيرات في جملة SQL الحل تم بفضل الله ثم فضل اخينا bluemaind في المشاركة 15 وضعت الطريقة الصحيحة للحل مرفق اخينا كنعان يمثل ايضا احدى طرق الحل و لكن هناك اختلاف بسيط في طريقة الاخ bluemaind استطعت و ضع اكثر من متغير ( المشاركة 18 ) في طريقة اخينا كنعان لم استطع وضع سوى متغير واحد !! ملاحظة المطلوب هو ادخال البيانات الى الجدول بدون شروط ايضا مرفقك يمثل احدى الحلول التي يمكن استخدامها ولكن هل لك ان تشرح لنا الكود قليلا
أبو آدم قام بنشر نوفمبر 3, 2012 قام بنشر نوفمبر 3, 2012 أخي محمد أيمن إعتقدت أنني قد فهمت مرادك من مجمل المشاركات ، وقد أكون غفلت عن شيئ ما ... حسبت أنك تسعى لإدخال معلومات رقابية على إستخدامات النماذج كاسم النموذج واسم المستخدم وتاريخ فتح النموذج (مثلاً) ، فأرفقت التطبيق الذي يؤرخ لفتح النموذج أو ضغط زر الأمر أو غيره ، حيث يتم توثيق الإجراء بسجل يحفظ في الجدول . وكون تطبيق الفكرة فرع عن تصورها ، كان التطبيق المرفق كما رأيتم . أما إن كان مرادك غير ذلك فأفصح و أسهب بالشرح و عزّز بمثال فعلي لكامل مقصدك كيما يتم السعي لتطبيق يحقق المراد. و إخوتك كما ترى سباقون للعون وأنت منهم ومثلك لا يرّد طلبه إلا بعجز عنه ... والله الموفق و المستعان ...........
محمد ايمن قام بنشر نوفمبر 3, 2012 الكاتب قام بنشر نوفمبر 3, 2012 بارك الله فيك اخي ابو آدم و الله اخجلتني بكلامك فعلا المراد من كل هذا هو انشاء سجل عن تحركات المستخدم ضمن قاعدة البيانات ( اضافة - حذف - دخول - اغلاق - كل شيئ تقريبا ) و سارفع المثال عند الانتهاء منه إن شاء الله
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.