PDA

View Full Version : سوال: اضافه کردن یک گزینه به لیست کمبو باکس



hf.farhadi
چهارشنبه 24 فروردین 1390, 23:05 عصر
با سلام خدمت اساتید گرامی
من یه کدی برای اضافه کردن یه گزینه به لیست کمبو باکس نوشتم ولی نمیدونم مشکلش چیه که عمل نمیکنه . لطف کنید راهنمایی کنید.




Private Sub Combo4_NotInList(NewData As String, Response As Integer)
Dim ctl As Control
Set ctl = Me.Combo4
If MsgBox(" aya be list ezafe shavad ?", vbOKCancel) = vbOK Then
Response = acDataErrAdded
ctl.rowsourse = ctl.rowsourse & ";" & NewData
Else
Response = acDataErrContinue
ctl.Undo
End If
End Sub

amirzazadeh
پنج شنبه 25 فروردین 1390, 08:40 صبح
سلام
كد مورد استفاده شما به صورت موقت داده جديد رو به ليست كومبو اضافه ميكنه و بعد از بسته شدن فرم از بين ميره .در ضمن رديف 8 كد بايد با Response = acDataErrAdded جايگزين بشه. براي اين منظور شما بايد از يك كوئري insert كمك بگيريد كد نمونه ميتونه به اين شكل باشه:


Private Sub combo4_NotInList(NewData As String, Response As Integer)
Dim strSQL As String
Dim i As Integer
Dim Msg As String

'Exit this sub if the combo box is cleared
If NewData = "" Then Exit Sub

Msg = "نام مورد نظر در ليست نيست آيا مايل به افزودن آن هستيد؟" & vbCr & vbCr

i = MsgBox(Msg, vbQuestion + vbYesNo + vbMsgBoxRight, "جديد ")
If i = vbYes Then
strSQL = "Insert Into manufaturer ([manufacturer]) values ('" & NewData & "')"
CurrentDb.Execute strSQL, dbFailOnError
Response = acDataErrAdded
Else
Response = acDataErrContinue
End If
End Sub

hf.farhadi
پنج شنبه 25 فروردین 1390, 18:12 عصر
با سلام و عرض تشکر
شرمنده من منظور شما رو از " کوئری insert " متوجه نشدم با این حال یه کمبو باکس ساختم و کد رو تو اون اجرا کردم ولی Error زیر را داد .

stabesh
پنج شنبه 25 فروردین 1390, 19:12 عصر
با سلام
اینم نمونه

hf.farhadi
پنج شنبه 25 فروردین 1390, 19:17 عصر
ممنون خیلی لطف کردی
من چون برنامه رو تحت شبکه کردم وهر کاربر نسبت به نیاز بخش خود به این لیست می خواهد گزینه اضافه کند واین گزینه برای بخش های دیگر قابل استفاده نیست . امکانش هست که بدون وارد کردن داده به داخل جدول این کار انجام بشه وبه خود کمبوباکس اضافه بشه .

hf.farhadi
شنبه 03 اردیبهشت 1390, 21:51 عصر
سلام دوستان
آیا امکانش هست که گزینه ها رو به خود کمبو باکس در قسمت row source اضافه کرد و نیازی به وارد کردن داده ها به جدول نباشه.
ممنون میشم راهنمایی کنین

stabesh
یک شنبه 04 اردیبهشت 1390, 20:27 عصر
سلام
یعنی میخواهید هم از داده های جدول استفاده کنید و هم کاربر هر چی دوست داره وارد کنه ؟

hf.farhadi
یک شنبه 04 اردیبهشت 1390, 21:26 عصر
سلام
نه میخوام کمبو باکس به هیچ جدولی وصل نشه و گزینه ها در قسمت row source اضافه بشن هدفم از کد اولیه که تو اول تاپیک گذاشته بودم همین بود . ممنون

stabesh
یک شنبه 04 اردیبهشت 1390, 22:15 عصر
لطفا ضمیمه رو مشاهده بفرمایید

hf.farhadi
یک شنبه 04 اردیبهشت 1390, 22:33 عصر
ممنونم خودشه
فقط یه چیزی کم داره اونم یه msgbox هست که از کاربر اضافه شدن یا نشدن به لیست رو استعلام کنه .در نمونه قبل این مورد به خوبی ذکر شده بود .آیا شدنیه؟

stabesh
دوشنبه 05 اردیبهشت 1390, 11:23 صبح
البته خوب کدی که در فایل ضمیمه پست قبلی هست را جایگزین دو خط کنید در ضمن ظریقه درست کردن این گونه کلمبوهارو هم ضمیمه کردم دیشب فراموش کردم آپلود کنم


strSQL = "Insert Into manufaturer ([manufacturer]) values ('" & NewData & "')"
CurrentDb.Execute strSQL, dbFailOnError

hf.farhadi
دوشنبه 05 اردیبهشت 1390, 16:28 عصر
با سلام
ممنون از زحمتی که کشیدی . مشکل پیام با لطف شما حل شد فقط یه مشکلی که داره اینه که موقعی که فرم بسته میشه دوباره کمبو باکس خالی میشه (فایل نمونه پیوست شده)
نمونه شما هم همین شرایط رو داره .

c4soft
دوشنبه 05 اردیبهشت 1390, 19:52 عصر
سلام
با اجازه دوستان
برای نشان دادن پیغام کد زیر رو اضافه کنید
Me.Combo0.AddItem (Me.Combo0.ListCount + 1 & " ;" & NewData)
MsgBox "آيتم جديد به ليست جاري اضافه شد"
Response = acDataErrAdded
با تشکر

hf.farhadi
دوشنبه 05 اردیبهشت 1390, 20:03 عصر
ممنون دوست عزیز
الان مشکل خالی شدن کمبو در هنگام بسته شدن فرم هستش

c4soft
دوشنبه 05 اردیبهشت 1390, 20:18 عصر
دوست عزیز
از نمونه پیوستی استفاده کنید
موفق باشید

hf.farhadi
دوشنبه 05 اردیبهشت 1390, 20:42 عصر
ممنونم دوست عزیز عالی و جالب بود
میشه یه کم در موردش توضیح بدین .مثلاً اگر بخوایم گزینه ای رو ازش حذف کنیم باید چیکار کنیم . راستی گزینه هارو کجا نگهداری میکنه من در قسمت row sourse همه گزینه ها رو ندیدم یا جدولی که گزینه ها رو تو خودش ذخیره کنه

c4soft
دوشنبه 05 اردیبهشت 1390, 21:29 عصر
سلام مجدد
خاصیت allow value list edit کمبو باکس رو برابر با yes کنید
برنامه رو اجرا کنید
کمبو باکس رو باز کنید در اخر لیست آیکنی جهت ویرایش لیست هست
کلماتی که ذخیر شدن در لیست جاری نمایش داده میشن که قابل حذف هم هستن

hf.farhadi
دوشنبه 05 اردیبهشت 1390, 21:49 عصر
دوست عزیز میشه بگین خاصیت allow value list editتو 2003 است یا 2007 استفاده کرین .اگه 2007 است تو 2003 میشه برای ویرایش چیکار کرد

c4soft
دوشنبه 05 اردیبهشت 1390, 22:13 عصر
آقا من جداً شرمندم
این گزینه هم تو اکسس 2007 موجوده
متاسفانه یا خوشبختانه من اکسس رو با 2007 شروع کردم الان که 2003 رو نصب کردم دیدم این گزینه هم نیست که نیست