با سلام خدمت دوستان
میخواهم اطلاعات آیتم ایندکس یک کامبو باکس را با دستور sql در یک جدول اکسس ثبت نمایم . عبارت مورد نظر را به صورت باید نوشته شود؟ متشکرم.
با سلام خدمت دوستان
میخواهم اطلاعات آیتم ایندکس یک کامبو باکس را با دستور sql در یک جدول اکسس ثبت نمایم . عبارت مورد نظر را به صورت باید نوشته شود؟ متشکرم.
Adotable.fieldbyname('fieldname').asinteger:=combo box1.itemindex[/quote]
اين دستور شماره ايندكس كامبو رو بر ميگردونه اگر مي خواي item اون ايندكس برگردونده بشه از اين دستور استفاده كن
Adotable.fieldbyname('fieldname'):=ComboBox1.Items[ComboBox1.ItemIndex];
ببنید من با عبارت زیر سعی در ثبت اطلاعات در یک جدول مینمایم. ولی خطای سینتکس گرفته میشود.
cmdSave.CommandText:='INSERT INTO tblCodHesab(cod,Name,Level) values('+quotedstr(edtCod.text)+','+
quotedstr(edtName.text)+','+quotedstr(cobLevel.Items.Strings[cobLevel.ItemIndex])+')';
پیام خطا گرفته شده:
syntax error in insert into statement.
سلام دوست عزيز؛
شما بايد از ItemIndex منهاي يك استفاده كنيد. يعني:
quotedstr(cobLevel.Items.Strings[cobLevel.ItemIndex - 1])
يا علي... موفق باشيد...
سلام
من مشکلی ندیدم ولی فکر کنم مال فیلد اولیتون باشه!!
احتمالا نوع فیلد code عددی است ولی شما از quotedstr(edtCod.text) که باعث میشه دو طرف اون سینگل کوتیشن قرار بگیره.اگه حدس من درست باشه همون
edtCod.text کفایت میکنه.
ضمنا پیشنهاد میکنم قبل از ExecSql رشته ارسالی را با showmessage مشاهده کنید تا کد Sql واقعی اونا ببینید اون موقه شاید خودتون بتونین حلش کنید.
showmessage(cmdSave.CommandText)
[quote=alinikaein;858720]سلام دوست عزيز؛
شما بايد از ItemIndex منهاي يك استفاده كنيد. يعني:
quotedstr(cobLevel.Items.Strings[cobLevel.ItemIndex - 1])
با تشکر از پاسختان
من تازه متوجه شدم که با عبارت بالا به جای ItemIndex کامبو باکس رشته هر آیتم را ثبت خواهد نمود. لذا به جای عبارت فوق این عبارت را قرار دادم.
که به هر حال مشکل حل نشد. ولی با مشاهده نتیجه عبارت همان ItemIndex مورد نظر را آماده ثبت مینماید.پس ما به جاری استفاده از جمله اول برای انتقال .ItemIndex باید از جمله دوم استفاده نماییم.اما هنوز مسئله عدم ثبت اطلاعات حل نشده باقی ماند. ضمنا دوست عزیز به نظر میرسد به جای علام منهی باید از علامت جمع جهت شماره .ItemIndex استفاده نمود. متشکرم
quotedstr(cobLevel.ItemIndex - 1
دوست عزیز من با اطمینان از مشکل نداشتن عبارت اقدام به حذف بخش کامبوباکس از عبارت مورد بحث نمودم و اطلاعات به درستی در جدول مربوطه ثبت شد. لذا احتمال اشتباه در بخشهای دیگر عبارت منتفی میباشد. ضمنا من از showmessage(cmdSave.CommandText استفاده نمودم که متوجه شدم میباست به جای آیتم از آیتم ایندکس استفاده گردد(موضوع پست شماره 7). متشکرم
[quote=khoshblagh;858968]
ItemIndex ايندكس Itemهاي ComboBox شما را بر مي گرداند كه ايندكس آيتم اول با 0 شروع مي شود و ايندكس آيتم انتهايي برابر cobLevel.Items.Count -1 خواهد بود پس براي دسترسي به مقادير آيتم ها فقط نوشتن كد زير كفايت مي كند :
cobLevel.Items.Strings[cobLevel.ItemIndex]
البته شما مي توانيد قبل از اين دستور ItemIndex رو توسط دستور زير تست كنيد و ببينيد آيا موردي در ComboBox انتخاب شده است يا نه !
if cobLevel.ItemIndex <> -1 then
// انتخاب شده
else
// انتخاب نشده
براي حل مشكل ثبت در جدول هم با توجه به فرمت فيلدهايي كه مي خواهيد اونها رو درج كنيد عمل نماييد :
اگر فيلدهاي شما از نوع Text باشند بايد هنگام درج آنها را در بين '' توسط دستور QuatedStr قرار داده و ثبت كنيد براي فيلدهاي عددي فقط درج مقدار كافيست و اين كار لزومي ندارد .
[quote=دلفــي;858984][quote=khoshblagh;858968]
cobLevel.Items.Strings[cobLevel.ItemIndex]
با جمله بالا به جای آیتم ایندکس رشته های آیتم را برگشت میدهد که مورد نظر من نیست
بنابر این من جمله را مثل پست 7 تغییر دادم که در showmessage آیتم ایندکس مورد نظر صحیح نمایش میدهد. پس اطلاعات صحیح انتخاب میشودولی در موقع ثبت خطای سینتکس بوجود می آید. متشکرم.
سوالات شما در پست هاي مختلف باهم متفاوته !!!
اين سوالتون مربوط به ذخيره خود ايندكس ميشه كه دوستان در 2 پست بعدي بهش جواب كامل رو دادن .میخواهم اطلاعات آیتم ایندکس یک کامبو باکس را با دستور sql در یک جدول اکسس ثبت نمایم .
در اين قسمت شما با توجه به نوع دستورتون ذخيره مقادير combo از رو ي اينكس آنها مد نظرتون است نه ذخيره خود ايندكس .
به هر حال به نظر من توضيحات پست هاي 6 و 9 كه مكمل همان توضيحات ابتداي تايپيك هستند براي حل مشكل شما كافيه !
با سلام خدمت دوستان
ضمن عذر خواهی از شما من متوجه شدم که در سئوال مطرح شده به جای درخواست ذخیره مقادیرکامبو باکس اشتباها ذخیره کامبو باکس را عنوان نموده ام که درخواستم را اصلاح میکنم.
در حقیقت من به دنبال ثبت مقادیر کامبو باکس در جدول مورد نظر میباشم.
لطفا در این خصوص مرا راهنمایی نمایید. متشکرم
ثبت مقادير، يعني ثبت مقدار عددي متناظر يا ثبت مقدار متني كمبوباكس؟
در صورتي كه مقدار عددي مد نظر شماست، احتمالاً فيلدي كه شما تعريف كرديد، مشكل داره، احتمال ديگه اينه كه شما توي Syntax كوئري ايراد داريد.
از چه طريقي نسبت به ثبت اطلاعات اقدام ميكنيد؟
نوشتن متن كوئري؟ ارسال پارامتر؟
در مورد ItemIndex منهاي يك، اشتباه كردم، حواسم به يه چيز ديگه بود. ممنون از دوستاني كه تذكر دادند.
يا علي... موفق باشيد...