PDA

View Full Version : سوال: کار با combobox



Juventus FC
دوشنبه 26 مرداد 1394, 14:53 عصر
درود بر اساتید

آقا من یک تکست ، یک دکمه Run و یک combobox دارم ، اول اینکه میخواهم متنی که تو تکست مینویسم بعد که دکمه Run زدم با چیزی که تو دیتابیس هست مقایسه بشه و در صورت وجود مثلا یک پیغامی بده ، بعد اگر مشکلی نبود با زدن دکمه Run اون متنی که تو تکست نوشتم بره تو پایگاه داده ، سپس اون combobox رکوردهایی که توسط تکست باکس نوشتیم و رفت تو پایگاه داده بخونه و نمایش بده !

من کد ها رو دقیقا میدونم ولی نمیدونم چرا سر تا پا Error میگیره ! از مقایسه بگیر الی آخر !



Private Sub XPButton1_Click()


ado.RecordSource = "SELECT * FROM combo WHERE coment=" & Val(Text1.Text)
ado.Refresh


If ado.Recordset.RecordCount > 0 Then
MsgBox "ÔãÇÑå ÝǘÊæÑ æÇÑÏ ÔÏå ÏÑ ÓíÓÊã ãæÌæÏ ãíÈÇÔÏ"
Else


On Error Resume Next
ado.Recordset.AddNew
ado.Recordset.Fields!coment = Trim(Text1.Text)
ado.Recordset.Update
ado.Refresh


End If
End Sub





الان به اون شرط error میگیره ! به اون ado.Refresh پیغام خطا میده. بعدش به اون ado.Recordset.Fields!coment = Trim(Text1.Text) و بعدش اینکه بعضی وقت ها با وحود Error رکورد در بانک اطلاعاتی ثبت میشه ! منتها وقتی combobox به دیتابس وصل میکنیم فقط رکورد اولی که وارد شده رو نمایش میده و باقی رکوردها علی رغم وجود در دیتابیس ولی توسط combobox نمایش داده نمیشه.

isaac23
دوشنبه 26 مرداد 1394, 18:44 عصر
در ابتدا اون On Error بزار بالای بالا

واسه اتصال به دیتا بیس از این کد استتفاده کن

On Error Resume Next

Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Anbar.mdb;"
Adodc1.RecordSource = "SELECT * FROM VKala "
Adodc1.Refresh



واسه استخراج اطلاعات دیتابیس در داخلCombo از این دستور استفاده کن

Combo1.Clear
Adodc1.Recordset.MoveFirst
Do While Adodc1.Recordset.EOF = False
Combo1.AddItem (Adodc1.Recordset.Fields!Namek)
Adodc1.Recordset.MoveNext
Loop



واسه اضافه کردن به Comboو دیتا بیس هم از این کد استفاده کن

With Adodc1.Recordset
.AddNew
.Fields!Namek = Trim(Text1.Text)
.Update
End With
Combo.AddItem Trim(Text1.Text)

Juventus FC
چهارشنبه 28 مرداد 1394, 17:49 عصر
حالا دو تا سوال

اول اینکه ، دستور "
استخراج اطلاعات دیتابیس در داخل Combo" در حالت اولیه error میگیره اونم به خط اولش :


Adodc1.Recordset.MoveFirst





باید حداقل دو رکورد در جدول دیتابیس وجود داشته باشه که پیغام خطا نده.

مورد دوم اینکه ، به فرض اینکه 7 8 تا رکورد در combo وجود داشت کاربر چه طور میتونه با انتخاب هر کدام ، اونو از combo حذف کنه ؟

isaac23
پنج شنبه 29 مرداد 1394, 09:02 صبح
در مورد سوال اولت یه On Erorr اضافه کن مشکل حل میشه

On Erorr Resume Next
این دستور رو بذار قبل از دستوراتت.

اما در مورد سوال دومت نگفتی فقط از کمبو حذف بشه و یا نه از دیتا بیس هم می خوای حذف بشه ...

دستور حذف در کمبو

Combo1.RemoveItem (Combo1.ListIndex)