PDA

View Full Version : نحوه ارتباط ComboBox با دیتابیس



karbon2010
پنج شنبه 01 بهمن 1388, 15:42 عصر
با سلام و عرض ادب واحترام خدمت تمامی دوستان و برنامه نویسان بزرگ و عزیز من در حال تکمیل یک برنامه هستم که در یک قسمت به مشکل خورده ام من همین قسمت را آپلود کردم تا هم شما مجبور نباشید کل برنامه را دانلود کنید
مشکل در رابطه با ارتباط کمبو combo box و نحوه ارتباط با دیتابیس به صورتی که در برنامه قرار داده ام

دوستان بزگوار و عزیز لطف کنید حتما برنامه را دانلود کنید تا متوجه منظور کامل من بشوید

قسمت های زیادی را هم جستجو کردم اما متاسفانه به جواب کامل نرسیدم

با تشکر
ممنون از لطفتان
یا حق

polisoftco
جمعه 02 بهمن 1388, 02:01 صبح
دوست عزیز برای حذف رکوردهای تکراری از عبارت زیر :

SELECT Distinct (Room) FROM Tbl1
استفاده کن.

همچنین بهتره از آبجکت استفاده نکنی، بجاش مستقیم کدنویسی کن.
تا فردا اگه وقت شد حتما سورستو برات میذارم، چون شنبه امتحان سخت افزار دارم و ترم آخر هستم باید بکوب بخونم.

karbon2010
شنبه 03 بهمن 1388, 21:11 عصر
سلام به شما


SELECT Distinct (Room) FROM Tbl1

من کم و بیشی با دستورات sql آشنا هستم ولی متاسفانه این کد جواب نمی ده دلیلش را هم نمی دونم
به هر حال اگه می تونید راهنمایی کنید ممنون میشم
ممنون از شما
منتظر هستم
یا علی

polisoftco
یک شنبه 04 بهمن 1388, 11:51 صبح
من الان دانشگام، از همین جا این کدهارو مینویسم:
اولش اون متغیرهارو تعریف کن، strConبرای اتصال به بانک و rsOstan-RsShS-RsSh برای اتصال به جدوال مربوطه.



Public strCon As New ADODB.Connection
Public RsOstan As New ADODB.Recordset
Public RsShS As New ADODB.Recordset
Public RsSh As New ADODB.Recordset
Public Sub ConnectToDB()
If strCon.State = 1 Then strCon.Close
strCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\database.mdb;Persist Security Info=False;"

If RsOstan.State = 1 Then RsOstan.Close
RsOstan.Open "select distinct(room) from Tbl1", strCon, adOpenStatic, adLockOptimistic
If RsShS.State = 1 Then RsShS.Close
RsShS.Open "select distinct(r) from Tbl1 ", strCon, adOpenStatic, adLockOptimistic
If RsSh.State = 1 Then RsSh.Close
RsSh.Open "select distinct(t) from Tbl1 ", strCon, adOpenStatic, adLockOptimistic

End Sub


بعدش یکی دیگه تعریف کن مثل زیر :
این کدها برای افزودن اطلاعات موردنظر توی کومبو باکس هستن.
راستی کومبوباکس هایی که توی پروژت داشتی رو حذف کن و یک کومبوی معمولی بزار و اسمشونم که Combo1-Combo2-Combo3 بزار.



Public Sub GetComboData()

RsOstan.MoveFirst
Do While Not RsOstan.EOF
Combo1.AddItem RsOstan.Fields(0)
RsOstan.MoveNext
Loop

RsShS.MoveFirst
Do While Not RsShS.EOF
Combo2.AddItem RsShS.Fields(0)
RsShS.MoveNext
Loop

RsSh.MoveFirst
Do While Not RsSh.EOF
Combo3.AddItem RsSh.Fields(0)
RsSh.MoveNext
Loop
End Sub


بعدش توی Form_Loadت بنویس :



Call ConnectToDB
Call GetComboData


که این کد برای انجام عملیات بالا هنگام شروع برنامست.

شرمنده زیاد وقت ندارم.
بعدش توی چنج کومبوهات Rsهارو تغییر بده و بعداز نام جدول شرط بزار مثل این

where room='" & Trim(Combo1.Text) & "'
که این کد تمام رکوردهایی که نام استانشون Combo1(انتخابی - مثلا خراسان رضوی) باشه رو پیدا میکنه.

اگه جایی رو متوجه نشدین بگین.

موفق باشین.
درود و بدرود

karbon2010
دوشنبه 05 بهمن 1388, 18:42 عصر
سلام
ممنون از شما شرمنده کردید
دوست کدها شما را کاملا متوجه شدم اما نمی دونم من خیلی گیج تشریف دارم یا برنامه ساز ناسازگاری می زنه

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