PDA

View Full Version : سوال: نمایش اطلاعات پایگاه داده در combo?



sogand.star
دوشنبه 01 شهریور 1389, 13:34 عصر
دوستان سلام
من در صفحه فرم ام یک combo یک data و یک dbgrid دارم تنظیمات database name و record source مربوط به data و datasourceو data fild مربوط به combo و datasource مربوط به dbgrid رو انجام دادم
1ـ اما نمی دونم برای اینکه تمام اسامی که در یکی از فیلدهای پایگاه داده است رو در combo نشون بدم از چه دستوری استفاده کنم؟
2ـ دستوری که باید بنویسم برای اینکه بعد از انتخاب یکی از اسامی مربوط به combo اطلاعات مربوط به پایگاه داده رو در dbgrid نشون بده چیه؟:عصبانی++:
(من در combo نام چند استاد رو قرار دادم و می خوام با انتخاب یکی از اساتید نام دانشجویان اون استاد در dbgrid نمایش داده بشه)
ممنون میشم اگر با کد برام توضیح بدید آخه تازه کارام :خجالت::خجالت:

Javad-2010
دوشنبه 01 شهریور 1389, 13:46 عصر
جواب سؤال 1 ؛
از دستور زیر استفاده کن:

(While Not (Adodc1.Recordset.EOF

Combo1.AddItem Adodc1.Recordset.Fields!Field_Name

Adodc1.Recordset.MoveNext

Wend

sogand.star
دوشنبه 01 شهریور 1389, 18:16 عصر
ممنون از این که راهنماییم کردی ولی خط دوم خطا می ده:افسرده:میشه دوباره کدی که نوشتی رو چک کنی:ناراحت:

mds_boy
دوشنبه 01 شهریور 1389, 18:54 عصر
(While Not (Adodc1.Recordset.EOF

Combo1.AddItem Adodc1.Recordset.Fields!Field_Name

Adodc1.Recordset.MoveNext

Wend


ضمن تشکر از Javad-2010 (http://barnamenevis.org/forum/member.php?u=122091) نکته ای که میتوان در این جا فقط گفت اینکه نباید فیلد مورد نظرتان خالی باشد !
و منظورش از Field_Name نام فیلد مورد نظرتان است.
و این کد به نظرم هیچ مشکلی نداره .

Javad-2010
سه شنبه 02 شهریور 1389, 06:28 صبح
کد مشکلی نداره.

Javad-2010
سه شنبه 02 شهریور 1389, 08:15 صبح
جواب سؤال 2 ؛
از دستور زیر استفاده کن:


Dim F As String
F = Combo1.Text
Adodc1.Recordset.Filter = "Field_Name='" & F & "'"e

sogand.star
سه شنبه 02 شهریور 1389, 16:37 عصر
کد سوال اول مشکلی نداره اطلاعات رو تو combo نشون میده
اما مشکل من از جایی شروع میشه که اطلاعات تو combo نشون داده میشه بعد که دوباره از برنامه اجرا می گیرم فیلدی که اطلاعات پایگاه داده اش در combo بوده بطور کامل پاک شده
در واقع فقط یکبار می تونم از این دستور استفاده کنم چون برای بار دوم اطلاعات پایگاه داده ام پاک شده
میشه یه کد دیگه برای باقی موندن اطلاعات در پایگاه داده بعد از نمایش در combo پیشنهاد کنی :خجالت::خجالت::خجالت:
ممنون

returnx
سه شنبه 02 شهریور 1389, 18:39 عصر
برای سوال دومت این برنامه رو دانلود کن امید وارم بدردت بخوره:
http://up.iranblog.com/Files3/82ca391464b24c488038.zip
چون من از طریق کد نویسی Database رو به Adodc متصل نکردم شاید Error بده برای همین این برنامه رو تو My Document کپی کن.

sogand.star
چهارشنبه 03 شهریور 1389, 07:45 صبح
کسی نیست درمورد سوال اولم راهنماییم کنه؟
با کدی که دوستان گفتن فقط یکبار اطلاعات رو تو combo میذارم اجرای بعدی اطلاعات از پایگاه داده پاک میشه:گریه::گریه:

Javad-2010
چهارشنبه 03 شهریور 1389, 11:10 صبح
دوست عزیز sogand.star در مورد سؤال اول شما؛ کد مشکلی نداره، چون خودم از همین کد استفاده می‌کنم و اطلاعات هم پاک نمی‌شه.
سورس برنامه خودت را بذار تا ببینیم کجای کار را اشتباه کردی.

Javad-2010
چهارشنبه 03 شهریور 1389, 11:18 صبح
دوست عزیز ms2222 ، هنگام اتصال Database کل مسیر را وارد نکن و فقط نام بانک (مثل db.mdb) را وارد کن تا برنامت بعد از تغییر مسیر، موقع اجرا Error ندهد.

returnx
چهارشنبه 03 شهریور 1389, 11:59 صبح
این هم جواب سوال اولت به دو روش:
http://www.4shared.com/file/QYmkJWId/Data_combo.html
--------------------

کسی نیست درمورد سوال اولم راهنماییم کنه؟
با کدی که دوستان گفتن فقط یکبار اطلاعات رو تو combo میذارم اجرای بعدی اطلاعات از پایگاه داده پاک میشه:گریه::گریه:
دلیل این مشکل اینکه شما Combo رو به Adodc متصل می کنید.

sogand.star
چهارشنبه 03 شهریور 1389, 18:24 عصر
دوستان عزیز ممنون از راهنماییتون

sogand.star
پنج شنبه 04 شهریور 1389, 15:02 عصر
جواب سؤال 2 ؛
از دستور زیر استفاده کن:


Dim F As String




F = Combo1.Text

Adodc1.Recordset.Filter = "Field_Name='" & F & "'"


e



دوست عزیز من می خوام اسامی تکراری رو از combo حذف کنم برای این کار از دستور distinct استفاده می کنم اما خطا میده میشه راهنماییم کنی؟
ممنون

Javad-2010
جمعه 05 شهریور 1389, 23:41 عصر
یه سری به اینجا بزن، شاید مشکلت حل بشه:
http://www.barnamenevis.org/forum/showthread.php?t=240990

sogand.star
شنبه 06 شهریور 1389, 15:07 عصر
دستور gruop by هم فایده نداشت:ناراحت:
میشه نگاهی به این کد بکنید؟


Dim f As String
Private Sub Combo1_Change()
f = Combo1.Text
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from student where pname'" & f & "" '"
Adodc1.Refresh
datagrid1.Refresh
End Sub

M.T.P
شنبه 06 شهریور 1389, 18:54 عصر
دستور gruop by هم فایده نداشت:ناراحت:
میشه نگاهی به این کد بکنید؟


Dim f As String
Private Sub Combo1_Change()
f = Combo1.Text
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from student where pname'" & f & "" '"
Adodc1.Refresh
datagrid1.Refresh
End Sub




Adodc1.RecordSource = "select * from student where pname = '" & f & "'"

sogand.star
شنبه 06 شهریور 1389, 23:57 عصر
Adodc1.RecordSource = "select * from student where pname = '" & f & "'"

دوست عزیز ممنون از توجهی که کردی تو تایپ دستور بالا عجله کردم درستش این کدی که شما گفتید:لبخندساده:
ولی اگر مطالب بالاتر رو نگاه کنید منظورم از رفع اشکال این کد این بود که می خوام اسامی تکراری در combo رو حذف کنم اما نمی دونم چطوری؟:متفکر: با دستور group by هم نشد:افسرده:
ممنون میشم راهنماییم کنید

ALIMAHDE54
یک شنبه 07 شهریور 1389, 12:54 عصر
سلام دوستان واساتید محترم وبرجسته برنامهخ نویسی من چند روزی هست که دارم یه برنامه کوچیک برای مدرسه خودمون مینویسم
و تو این برنامه به همین مشکلی برخورد کردم که دوست عزیز به اون مشکل برخورد کرده
من چند تا سوال دارم
سوال اول 1:
من میخوام اطلاعات رو وقتی تو combo ریختم با کلیک بر روی اون بتونم اطلاعات اون رکورد رو ویرایش کنم و بعد از ویرایش ذخیره کنم
سوال دوم 2: من میخوام وقتی تو combo یک فرد رو انتخاب کردم و دکمه حذف رو فشار دادم اون رکورد کلا حذف بشه
سوال سوم 3: شما میدنید که تو مدرسه بچه ها غیبت هم میکنن من یه فرمی درست کردم برای حضور غیاب دانش آموزان بعدش اومدم تو یه فرم دیگه یه قابلیت گذاشتم برای جستجو الان با جستجو یک فرد تاریخ هایی که یک فرد در اونها غایب شده رو میخوام تو کمبو باکس قرار بدم توجه کنید تاریخ هایی که یه فرد در اون غیبت کرده رو میخوام نمایش بده و تعداد غیبت ها رو هم بدست میارم که اونو خودم نوشتم
دوستان عزیز ممنون میشم که راهنمایی کنید هم مشکل من هم مشکل دوست عزیز و هم مشکل دیگرون میتونید با این جواب ها حل کنید
درسته این سوالات من برای شما مبتدیه ولی خود من هم مبتدی هستم
ممنون :قلب::قلب::قلب::خجالت: