PDA

View Full Version : سوال: بازگرداندن آیتم انتخاب شده combobox



سیده ساناز
سه شنبه 08 مهر 1393, 10:23 صبح
سلام
من یک dbcombobox در دلفی ایجاد کرده ام که آیتم های آن از sql server فراخوانی می شود تا اینجا خودم نوشتم حالا می خواهم وقتی یکی از آیتم ها توسط کاربر انتخاب شد ، همه فیلدهای این فرم از sql بازیابی شوند و در فرم نشان داده شوند تا کاربر اگر خواست آن را ویرایش کند ولی نمی دانم چطور این کد را بنویسم.
خواهش می کنم اگر ممکنه کمکم کنید
با تشکر

دلفــي
سه شنبه 08 مهر 1393, 12:37 عصر
سلام
من یک dbcombobox در دلفی ایجاد کرده ام که آیتم های آن از sql server فراخوانی می شود تا اینجا خودم نوشتم حالا می خواهم وقتی یکی از آیتم ها توسط کاربر انتخاب شد ، همه فیلدهای این فرم از sql بازیابی شوند و در فرم نشان داده شوند تا کاربر اگر خواست آن را ویرایش کند ولی نمی دانم چطور این کد را بنویسم.
خواهش می کنم اگر ممکنه کمکم کنید
با تشکر

كافيه در روال Change از DBComboBox ، جدول خودتان را با مقدار انتخاب شده در DBComboBox جستجو كنيد و مقادير ركورد انتخاب شده از نتيجه ي جستجو را در كنترلهاي مورد نياز قرار دهيد
پس از انجام تغييرات مقادير كنترلها توسط كاربر و اتمام ويرايش بر روي دكمه ي ويرايش از دستور Update استفاده كنيد .



procedure TForm1.DBComboBox1Change(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From TableName Where Field = '+
QuotedStr(DBComboBox1.Text));
ADOQuery1.ExecSQL;
ADOQuery1.Open;
if ADOQuery1.IsEmpty = False then
begin
Edit1.Text := ADOQuery1.FieldByName('Field1').AsString;
.
.
.
end;
end;

سیده ساناز
سه شنبه 08 مهر 1393, 14:23 عصر
كافيه در روال Change از DBComboBox ، جدول خودتان را با مقدار انتخاب شده در DBComboBox جستجو كنيد و مقادير ركورد انتخاب شده از نتيجه ي جستجو را در كنترلهاي مورد نياز قرار دهيد
پس از انجام تغييرات مقادير كنترلها توسط كاربر و اتمام ويرايش بر روي دكمه ي ويرايش از دستور Update استفاده كنيد .



procedure TForm1.DBComboBox1Change(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select * From TableName Where Field = '+
QuotedStr(DBComboBox1.Text));
ADOQuery1.ExecSQL;
ADOQuery1.Open;
if ADOQuery1.IsEmpty = False then
begin
Edit1.Text := ADOQuery1.FieldByName('Field1').AsString;
.
.
.
end;
end;


از راهنماییتون خوبتان ممنون
وقتی که من کد بالا را اضافه کردم این مشکل به وجود می آید که لیست dbcombobox باز می شه اما وقتی روی یکی از آیتم ها کلیک می کنم انتخاب نمی شه و مقدار انتخابی خالی می ماند و در combo box هیچ مقداری انتخاب نشده ولی مقادیر در لیست کشویی موجود است و خطای زیر را هم می دهد 'Invalid column name 'Field و هیچ مقداری را از sql بازیابی نمی کند
من از کد زیر برای دریافت آیتم ها از sql استفاده کردم، من از دلفی xe5 استفاده می کنم و در DBComboBox خاصیت onshow وجود ندارد به همین دلیل در قسمت form create دستور زیر را نوشتم
ADOQuery1.Edit;
with ADOQuery1 do
begin
Sql.text:= 'select * from table_1';
open;
first;
while not eof do
begin
DBComboBox1.items.add(fieldbyname(‘columnname’ ).asstring);
Next;
End;
End;
خواهش میکنم اگر ممکنه کمکم کنید
با تشکر

دلفــي
سه شنبه 08 مهر 1393, 17:12 عصر
از راهنماییتون خوبتان ممنون
وقتی که من کد بالا را اضافه کردم این مشکل به وجود می آید که لیست dbcombobox باز می شه اما وقتی روی یکی از آیتم ها کلیک می کنم انتخاب نمی شه و مقدار انتخابی خالی می ماند و در combo box هیچ مقداری انتخاب نشده ولی مقادیر در لیست کشویی موجود است و خطای زیر را هم می دهد 'Invalid column name 'Field و هیچ مقداری را از sql بازیابی نمی کند
من از کد زیر برای دریافت آیتم ها از sql استفاده کردم، من از دلفی xe5 استفاده می کنم و در DBComboBox خاصیت onshow وجود ندارد به همین دلیل در قسمت form create دستور زیر را نوشتم
ADOQuery1.Edit;
with ADOQuery1 do
begin
Sql.text:= 'select * from table_1';
open;
first;
while not eof do
begin
DBComboBox1.items.add(fieldbyname(‘columnname’ ).asstring);
Next;
End;
End;
خواهش میکنم اگر ممکنه کمکم کنید
با تشکر

بنده نام فيلد را به صورت فرضي Field نوشتم ، شما بايد نام فيلدي كه به DBComboBox اختصاص داديد را به جاي آن بنويسيد و به جاي
TableName نام جدول خودتان را وارد كنيد ، در قسمت Field1 هم نام فيلدهايي كه مي خواهيد بخوانيد را وارد مي كنيد . در ضمن خاصيت OnShow در DBComboBox نيست و از رويداد هاي Form است .

سیده ساناز
دوشنبه 14 مهر 1393, 09:20 صبح
بنده نام فيلد را به صورت فرضي Field نوشتم ، شما بايد نام فيلدي كه به DBComboBox اختصاص داديد را به جاي آن بنويسيد و به جاي
TableName نام جدول خودتان را وارد كنيد ، در قسمت Field1 هم نام فيلدهايي كه مي خواهيد بخوانيد را وارد مي كنيد . در ضمن خاصيت OnShow در DBComboBox نيست و از رويداد هاي Form است .

شرمنده از اینکه دوباره مزاحمتون شدم
من می خواهم در یک فرم کاربر یکی از مقادیر COMBOBOX را انتخاب کند و با کلیک بر روی یک دکمه به یک فرم دیگر برود (با SHOWMODAL این کار را انجام دادم )دستورات تا اینجا رو نوشتم و اطلاعات آیتمی از COMBOBOX که در مرحله قبل انتخاب کرده بود در فرم جدید از SQL نمایش داده بشه ، من دو تا DBRadiogroup هم دارم که نمی دانم آنها را چطور فراخوانی کنم
خواهش می کنم اگر امکان داره کمکم کنید
با تشکر