PDA

View Full Version : سوال در خصوص دستور آپدیت در VBA



mhamedm2008
چهارشنبه 24 مهر 1392, 20:44 عصر
با سلام
من می خوام از دستور زیر برای آپدیت استفاده کنم.یه سوال دارم.در دستور زیر gh_makan.kod_makan1 باید تا gh_makan.kod_makan20 بر اساس انتخاب کاربر آپدیت بشه
یعی اگر کاربر خواست مکان 15 رو آپدیت بشه.یه راه اینه که با دستور if یا select این کار رو انجام بدیم که حجم کد بالا میره
آیا از اساتید راه دیگه رو می دونن
با تشکر

strupdate = "UPDATE gh_makan SET gh_makan.kod_makan1='" & [goruhkod] & "'" & _
" WHERE (((gh_makan.makan_kod)= " & [makankod] & " )); "
DoCmd.RunSQL strupdate

Abbas Amiri
چهارشنبه 24 مهر 1392, 20:53 عصر
با سلام
من می خوام از دستور زیر برای آپدیت استفاده کنم.یه سوال دارم.در دستور زیر gh_makan.kod_makan1 باید تا gh_makan.kod_makan20 بر اساس انتخاب کاربر آپدیت بشه
یعی اگر کاربر خواست مکان 15 رو آپدیت بشه.یه راه اینه که با دستور if یا select این کار رو انجام بدیم که حجم کد بالا میره
آیا از اساتید راه دیگه رو می دونن
با تشکر

strupdate = "UPDATE gh_makan SET gh_makan.kod_makan1='" & [goruhkod] & "'" & _
" WHERE (((gh_makan.makan_kod)= " & [makankod] & " )); "
DoCmd.RunSQL strupdate

دوست عزیز مگر بلوک های شرطی چقدر فضای برنامه را اشغال می کنند که شما نگران بالا رفتن حجم کد هستید؟ . نگران 2 خط کد نباشید .

mhamedm2008
چهارشنبه 24 مهر 1392, 22:02 عصر
دوست عزیز مگر بلوک های شرطی چقدر فضای برنامه را اشغال می کنند که شما نگران بالا رفتن حجم کد هستید؟ . نگران 2 خط کد نباشید .
یعنی اینجوری بنویسیم

if text1=1 then
strupdate = "UPDATE gh_makan SET gh_makan.kod_makan1='" & [goruhkod] & "'" & _
" WHERE (((gh_makan.makan_kod)= " & [makankod] & " )); "
DoCmd.RunSQL strupdate
else
if text1=2 then
strupdate = "UPDATE gh_makan SET gh_makan.kod_makan2='" & [goruhkod] & "'" & _
" WHERE (((gh_makan.makan_kod)= " & [makankod] & " )); "
DoCmd.RunSQL strupdate
else
.
.
.
if text1=20 then
strupdate = "UPDATE gh_makan SET gh_makan.kod_makan3='" & [goruhkod] & "'" & _
" WHERE (((gh_makan.makan_kod)= " & [makankod] & " )); "
DoCmd.RunSQL strupdate
end if

mmbguide
چهارشنبه 24 مهر 1392, 22:41 عصر
سلام

نه نیازی نیست کلی کد بنویسی. من کد زیرو امتحان کردم جواب داد

Dim strupdate As String
strupdate = "UPDATE gh_makan SET kod_makan" & Me.Text0.Value & "= 'ahsdkajshdk' WHERE id=2"

حالا شما بجای Me.Text0.Value میتونید هر چیزی که در واقع مشخص کننده شماره فیلد اون ردیف هست رو بنویسید.
درضمن در خط آخر که اجرا کننده دستور sql هستش، و اگه دوست دارید پیغام اکسس رو نبینید، از کد زیر استفاده کنید

CurrentDB.Execute strupdate

تست کن ببین جواب میده

mmbguide
چهارشنبه 24 مهر 1392, 22:44 عصر
راستی عبارت ahsdkajshdk یه چیزی بود همینطوری با کیبورد نوشتم و مقداریه که باید تو جدول ثبت میشد. واسه این هم میتونید روش دریافت داده رو هم تعیین کنید.

mhamedm2008
چهارشنبه 24 مهر 1392, 22:54 عصر
ممنون
کد شما را خطا گرفت .لی به صورت زیر تغییر دادم مشکل حل شد
بازم ممنون

Dim strupdate As String
strupdate = "UPDATE gh_makan SET gh_makan.kod_makan" & Me.Text0.Value & "= 'ahsdkajshdk' WHERE id=2"