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

تنفيذ جملة SQL من خلال db.excute

مغلق
بدأه mometo في 14 مايو 2007 · 7 رد · 786 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

وظهرت أمامي هذه المشكلة

لدي جدول بقاعدة البيانات بفرض ان أسمة "tb" ويحتوي علي حقلين الأول أسمة "Val" والثاني "Sts"

وقد أستخدمت هذه الجملة لعمل تحديث لبيانات الحقل "val" بضربه في 10 عندما تكون قيمة السجل في الحقل "sts"

هي "Y"

db.Execute "UPDATE tb SET tb.val = [val]*10 WHERE (tb.sts)="Y");"

المشكلة عند كتابة الكود يظهر خطا وبصراحة انا غلبت ولا أعرف الحل

كيف يمكن تنفيذ هذه الجملة

من ناحية أخرى أريد معرفة ماذا لو كان الحقل sts من نوع Date أو من نوع Number هل سيختلف الكود

كذلك ماذا لو كنت أريد تنفيذ الكود إعتمادا علي قيمة يحددها المستخدم في الفورم من خلال text box

مثلا ان يدخل المستخدم تاريخ معين أو أسم معين ليتم تنفيذ الكود السابق عندما تكون قيمة الحقل sts

تساوي القيمة المدخلة في التكست بوكس

مرفق مثال للتعديل علية

وشكرا علي تعاونكم

Project.rar

#2

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

الاخ الفاضل بالطبيعي لابد من هذا الخطأ :

حيث الحقل الذي تريد التنفيذ على اساسه من نوع TEXT فلابد من القيمه التى ستسند اليه توضع بين علامتي التنصيص !!! هذه ' ' وليس هذه " " .

فا الكود الصحيح هو :

db.Execute "UPDATE tb SET tb.val = [val]*10 WHERE tb.sts='y';"

وبالنسبه لسؤالك التاني يمكن فعل ذلك :

فا عند كتابة جملة الـ SQL وعند بداية اسناد القيمه تقوم بإسناد القيمه الاتيه من الـ TextBox .

الكــود التالي يوضح المقصود :

db.Execute "UPDATE tb SET tb.val = [val]*10 WHERE tb.sts='" & Textbox1.Text & "';"

وذالك بإفتراض ان الـ Textbox المراد التعامل معها تسمى بـ Textbox1 .

بالتوفيق ,,,,

A7med_prof

تم تعديل هذه المشاركة بواسطة A7med_prof في 15 مايو 2007 في 00:17

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</
#3

أخي أحمد الكود ناجح ولك الشكر

لي أستفسار أخر ماذا لو كان الحقل من نوع Date

كتبت هذا الكود ولا يتم تحديث الحقل

db.Execute "UPDATE tb SET tb.val = [val]*10 WHERE tb.dtd=#" & Format(txt.Text, "dd/MM/yyyy") & "#;"

أرجو الإفادة ... مرفق مثال للتعديل إن أمكن

وشكرا جزيلا

Project1.rar

#4

الكود صحيح .

ولكن يبدو انك ترسل له التاريخ ليست بالصيغه الصحيحه :

فانصحك بعمل Valadation على التكست بوكس :

	If IsDate(Trim(txt.Text)) = False Then
		MsgBox "يجب ادخال تاريخ"
		Exit Sub
	End If
	db.Execute "UPDATE tb SET tb.val = [val]*10 WHERE tb.dtd=#" & Format(txt.Text, "dd/MM/yyyy") & "#;"
اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</
#5

أخي احمد

السلام عليكم

أولا احب أشكرك علي مجهودك الكبير في المنتدى وما قدمتة لي شخصيا من مساعدات

أخي أحمد لي أستفسار بسيط

أحاول تنفيذ هذه الجملة ولكن يظهر خطأ ولا أعرف السبب

db.Execute "Insert into tb(txt,no,dtd)values('Man',10,#31/05/07#)"

وأيضا أريدك أن توضح لي ماذا لو كنت أريد أن يتم أخذ القيم من مربعات نصوص فكيف سيكون شكل الكود

مرفق مثال به المطلوب لتعديله ...

ولك جزيل الشكر

Project.rar

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

الحطأ في جملة الـ SQL

db.Execute "Insert into tb(txt,no,dtd)values('Man',10,#31/05/07#)"

فا من الطبيعي ان يحدث خطأ لأنك قمت بتسميه الحقول بأسماء محجوزه اي مستخدمه من قبل النظام سواء معرفه على انها دوال او كلمه محجوذه مثل Not - True- False ...... الخ.

وايضا بحملتك مثل ... :.

- no

- dtd

فإذا اردت حقا استخدام هذه المسميات لن يتثنى لك الا ان تضع هذه الأسماء بين علامتي []

فا تصبح جملة الـ SQL كما يلي :

"Insert INTO tb([txt],[no],[dtd]) values ('Man',10,#31/05/07#)"

بالتوفيق ,,,,

A7med_prof

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</
#7

أشكرك أحمد باشا علي سرعة الإستجابة ... وده شىء أعتدنا عليه منك

فأنت دائما في خدمة الأخرين

بالنسبة للكود انا عدلته وأصبح علي هذا الشكل

db.Execute "Insert into TB(t,n,d)values('" & txtT.Text & "'," & txtN.Text & ",#" & txtD.Text & "#)"

وهو الأن يعمل معي بشكل ناجح مع الأكسس

وكذلك قمت بتجربة مع قاعدة بيانات SQL Server 2000

وأصبح الكود بالشكل الأتي

db.Execute ("Insert into TB(t,n,d)values('" & txtT.Text & "'," & txtN.Text & "," & txtD.Text & ")")

ولكنه لا يقوم بتسجيل التاريخ في الحقل D وهو من نوع datetime وطوله 8

فالكود يقوم بتسجيل السجل في كافة الحقول ولكن تكون قيمة السجل في الحقل D هي 01/01/1900 مهما كات القيمة المدخلة في مربع نص D

فهل لك أنت ترشدي إلي الكود السليم مع SQL Server

#8

اشكرك ,

يبدو انك نسيت علامتي ##

قم بوضع القيمه المسنده الى حقل التاريخ بين علامتي ##

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</

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

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