اگرميشه كمك كنيد من ميخوام ديتا را به يك combo وصل كنم و داراي جستجو باشه مثل دستور like تو sql باشه
اينم عكسش
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
Printable View
اگرميشه كمك كنيد من ميخوام ديتا را به يك combo وصل كنم و داراي جستجو باشه مثل دستور like تو sql باشه
اينم عكسش
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
یه برنامه ی دیکشنری فارسی به ترکی توی [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] ت تو قسمت برنامه های ویژوال بیسیک هست که یه مثال جالبی از دیتا بیسه.
من پيدا نكردم اگر ميشه لينكو بزاريد
در ضمن چطور ميشه ادرسه يك فايلو چك كرد مثلا c:\hh\mo.dll اگر بود پيغام بده
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
کد:Dim filename As String
Private Sub Command1_Click()
Static checkfile As Boolean
filename = "c:\hh\mo.dll"
If checkfile = False Then Call DoesFileExist(filename)
End Sub
Public Function DoesFileExist(filename As String) As Boolean
DoesFileExist = Dir(filename) <> ""
If DoesFileExist Then
MsgBox "It does exist!"
Else
MsgBox "It does not exist!"
End If
End Function
\خیلیث ممنون اون تاپیک که گزاشتید مال خودو من اینکارو با combo \ میخواستم ممنون میشم بزارید
سلام
آقا بازم ما پابرهنه اومدیم وسط بحث، بلکه موفق بشیم.
متحول شید بیایید با Vb8 کار کنید!
در Vb8 امکان اینکار به صورت داخلی تعبیه شده و شما فقط باید لیست کلمات رو بدید، همین!
اگر متحول شدید، چشم نمونه کدهم مینویسم. (ولی الآن امیدی به تحولتون ندارم)
فرق وي بي 8 با دات نت چيه
سلام
هیچی! VB8 همون Microsoft Visual Basic.Net 2005 است.
من در تاپیکی این مسئله را توضیح داده ام، اگه عشقتون کشید نگاهی بندازید.
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
مرسي خيلي ممنون _-جواب سوال رو هم بديد ممنون ميشم
سلام
به قول یکی از بروبچ خواهشم دارم، خداحافظ شما، سلام علیکم!!!
ComboBox ها و TextBox های دات نت مجهز به سه Property مخصوص همین مسئله هستند. (و دو عدد هم به طور غیر مستقیم برای این منظور هم کمک میکنند).
- 1 - اولی AutoCompleteMode است که چگونگی این عمل را مشخص میسازد. و چهار نوع را می پذیرد
SuggestAppend
Append
Suggest
None
مثلاَ اینکه کلاَ لغت را خودش تایپ کند یا قسمت بعدی را که حدس زده تایپ کند ولی Select شده باشد(مثل Excel) و .... که گزینه مطلوب مورد نظر شما SuggestAppend است
- 2 - دومی AutoCompleteSource است که منبع را مشخص میکند و 9 قسم دارد
مثلاَ اینکه حالت Recent باشد و بر اساس آخرین چیزهایی که کاربر وارد کرده را نشان دهد (مثل کادر جستجوی ویندوز) یا اینکه منبع یک ستون از یک جدول یک بانک اطلاعاتی (برای اتصال به DataSet ها) و...
از این 9 مقدار دو تا مهم تر هستند.
مقدار ListItems موجب میشود این قابلیت لیست خود را به طور مستقیم از لیست اصلی ComboBox تغزیه کند که در این حالت این لیست همان لیستی خواهد بود که با کلیک کردن دکمه کامبو نشان داده خواهد شد.
مقدار CustomSource موجب میشود بتوانید لغات مورد نظر را به طور مستقیم (حتی در پنجره Properties در زمان طراحی برنامه) وارد کنید و در اصل Property سوم (- 3 -) را فعال میکند، وگرنه هرچه با Property سوم (- 3 -) وارد کرده باشید نادیده گرفته میشود.
- 3 - سومی AutoCompleteCustomSource است و برای کارکردنش همانطور که گفتم باید x.AutoCompleteSource=CustomSource چنین باشد.
این گزینه در زمان طراحی هم در دسترس است و میتوانید لغات خود را از طریق پنجره Properties و انتخاب ComboBox و کلیک روی این خصوصیت، وارد کنید.
- 4 - چهارمی که البته مخصوص اینکار نیست، DataSource است که منبع را برای خود محتویات گزینه های ComboBox مشخص میکند ولی همانطور که گفتم اگر x.AutoCompleteSource=ListItems آنگاه این آیتم منبع AutoComplete را نیز تایین میکند.
- 5 - آخرین خصوصیت که برای کمک به DataSource در تایین محل دقیق داده ها است DisplayMember است که در مواقعی که مثلا DataSource به یک جدول اشاره میکند DisplayMember به ستون خاصی از آن جدول اشاره میکند تا فقط یک رنج داده داشته باشیم.
(البته در VB6 هم تا حدودی این دو خصوصیت آخر بود)
در نتیجه گزینه های زیادی در دسترس است (همانطور که قبلاَ هم گفته ام Framework بسیار عظیم است!)
پس اگر فرض کنیم لیست شما ثابت است در نتیجه شما نیاز به کدی شبیه این دارید. (البته کل این دستورات را میتوانید از طریق پنجره Properties و بدون دخالت و کد نویسی مستقیم انجام دهید)
کد:
Me.ComboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend
Me.ComboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
Me.ComboBox1.AutoCompleteCustomSource.AddRange(NewString() {"Ali", "Ali Reza", "Ali shirazhaker"})
و یا کد زیر که در این حالت لیست اصلی ComboBox با لیست AutoComplete تلفیق می شود.کد:
Me.ComboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend
Me.ComboBox1.AutoCompleteSource = AutoCompleteSource.ListItems
Me.ComboBox1.Items.AddRange(NewString() {"Ali", "Ali Reza", "Ali shirazhaker"})
پایان عملیات اغفال سازی! :blink:
خوب بید! :) اغفال شدی تا دست از سر VB6 درپیت برداری؟ :)
نه من اغفال نشدم من فقط وي بي 6 كار ميكنم .... خلاص!!!!
خودو جواب خودم رو دادم از يك منبع معتبر به همه سفارش ميكنم از اون استفاده كنيدکد:Option Explicit
Private Const WM_SETREDRAW = &HB
Private Const KEY_A = 65
Private Const KEY_Z = 90
#If Win32 Then
Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Long) As Long
#Else
Private Declare Function SendMessage Lib "User" ( _
ByVal hwnd As Integer, ByVal wMsg As Integer, _
ByVal wParam As Integer, lParam As Any) As Long
#End If
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim strSQL As String
Private Sub Combo1_KeyUp(KeyCode As Integer, Shift As Integer)
Dim sComboText As String
Dim iLoop As Integer
Dim sTempString As String
Dim lReturn As Long
If KeyCode >= KEY_A And KeyCode <= KEY_Z Then
'only look at letters A-Z
sTempString = Combo1.Text
If Len(sTempString) = 1 Then sComboText = sTempString
lReturn = SendMessage(Combo1.hwnd, WM_SETREDRAW, False, 0&)
For iLoop = 0 To (Combo1.ListCount - 1)
If UCase((sTempString & Mid$(Combo1.List(iLoop), _
Len(sTempString) + 1))) = UCase(Combo1.List(iLoop)) Then
Combo1.ListIndex = iLoop
Combo1.Text = Combo1.List(iLoop)
Combo1.SelStart = Len(sTempString)
Combo1.SelLength = Len(Combo1.Text) - (Len(sTempString))
sComboText = sComboText & Mid$(sTempString, Len(sComboText) + 1)
Exit For
Else
If InStr(UCase(sTempString), UCase(sComboText)) Then
sComboText = sComboText & Mid$(sTempString, Len(sComboText) _
+ 1)
Combo1.Text = sComboText
Combo1.SelStart = Len(Combo1.Text)
Else
sComboText = sTempString
End If
End If
Next iLoop
lReturn = SendMessage(Combo1.hwnd, _
WM_SETREDRAW, True, 0&)
End If
End Sub
Private Sub Refresh_Click()
On Error GoTo Er1
Combo1.Clear
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" & App.Path & "\bankfilm.mdb"
rst.Open "kerayeeh", cnn, adOpenKeyset, adLockOptimistic, adCmdTable
Do While Not rst.EOF
Combo1.AddItem rst!nmosh
rst.MoveNext
Loop
rst.Close
cnn.Close
Set cnn = Nothing
Set rst = Nothing
Combo1.ListIndex = 0
Exit Sub
Er1:
MsgBox Err.Description
End Sub
Sub Form_load()
On Error Resume Next
Refresh_Click
End Sub
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
نقل قول:
سلام
کد جالب و راحتی بود
ولی میشه در مورد این دستور یه توضیحی بدین ؟
DoesFileExist = Dir(filename) <> ""
این دقیقا چه کاری انجام میده ؟:rolleye:
سلام
گرافیک کارها را میبینم، له له میزنند برای ورژن های جدید Photoshop و Corel و...
یک انیمیشن کار میشناسم که وقتی فهمید ورژن جدید Maya اومده کلک و پر خودشو کند تا بالاخره گیرش آورد.
و.... و.... و....
من واقعاَ لذت میبرم! این جوانان VB6 کار را می بینم که سایه ورژن جدید نرم افزارشون رو با تیر میزنن.
آخه تا کی میخوهید بچشبید به ورژن های قدیمی، در طول عمر کوتاه کامپیوتر نرم افزارهای بسیاری اومدند و رفتند و دیگه حرفی ازشون نیست VB8 هم چند روزی دوران داره بعدش دوباره ورژن جدید می آید، این ما هستیم که باید با اونا به جلو بریم.
خود من اگه میخواستم به یه چیزی تعصب داشته باشم الآن باید از گشنگی می مردم و هنوز باید با اسمبلی و تحت DOS برنامه درست میکردم.
راستی خاطره کاملاَ جدی و صددرصد معتبر و تاریخی یادم اومد:
ما تو یکی از جنگ ها که با داداش بن بودیم ( بابا داداش ناپئون بناپارت رو میگم، چون ما باش صمیمی بودیم بش می گفتیم داداش بن) وقتی توصیفات سینه چاکان VB6 رو براش گفتم، با حسرتی از ته دل جواب داد:
"آه! حیف H2، حیف! ما اگر ده تا از این طرفدارهای VB6 را داشتیم، جهان را فتح میکردیم!"
باور کنید، h2 اش را هم گفت! من که به شما دروغ نمیگم!
h2 جان یه سوال داشتم .net تو 98 هم کار میکنه ؟؟؟؟ برنامه ای که باهاش نوشته شده رو میگم ها
میخواستم برم سراغ .net یا دلفی یا سی شارپ تقریبا با دستورات اولیه هر کدومشون آشنایی مختصری هم دارم ولی نمیدونم کدوم واسه من بهتره ؟؟؟؟
سبک برنامه هایی هم که قراره روش کار کنم عموما برنامه های تجاریه .
اول سلام
کد:سلام
کد جالب و راحتی بود
ولی میشه در مورد این دستور یه توضیحی بدین ؟
DoesFileExist = Dir(filename) <> ""
این دقیقا چه کاری انجام میده ؟
عزیزجان این دستور در VB6 در پیت چک میکند که آیا فایل مورد نظر وجود دارد یا نه.
دستور جدیدش هم در VB8 این است (System.IO.File.Exists(filename
فک نمیکنم کسی منکر قدرت vb8 نسبت به 6 باشه بخصوص مطالبی که در مورد نخ ها تو vb8 شنیدم که ظاهرا خیلی تو سرعت برنامه تاثیر داره ولی خوشبختانه یا متاسفانه در بعضی موارد حتما باید از نسخه های قدیمی تر استفاده کنی !!!! نمونش همین برنامه خودم رو سیستمای گازوئیلی ای که میخواد اجرا بشه :blush:نقل قول:
انشا الله همینو تموم کنم میرم سراغ یه زبون دیگه شنیدم vb6 خیلی باگ داره که تو دات نت بر طرف شده ولی چه باگی نمیدونم و یه مورد دیگه که خیلی به دردم میخورد این بود که تو vb8 به راحتی میشه تو گرید از کمبو ، چک و . . استفاده کنی در صورتی که تو vb6 این کار آسونی نیست
اول سلام
مطمئن نیستم و فوق العاده بعید میدانم که VS8 روی 98 نصب بشه ولی ارگر هم نصب نشه احتمال دارد که برنامه های ساخته شده توسط آن در 98 کار کند.نقل قول:
میتوانید آزمایش کنید.
اول ببینید Framework.Net در 98 نصب میشود، اگر نصب شد به احتمال زیاد حداقل برنامه های تحت VS.Net در 98 قابل اجرا هستند. (که البته آنهم قابل امتحان است)
شاید هم یکی از اساتید پا پیش گذاشتند و جواب قطعی را که میدانند بدهند.
فرق VB8 با VB6 مثل فرق VB6 است با QBasic.نقل قول:
یاشاید هم مثل فرق پیکان جوانان گوجه ای با ماکسیما. :blink:
راستی به اون صاحب کارهای عزیزت هم بگو برن اون کامپوترها را بدن به یه لبو فروش احمق (که نفهمه چه کلایی سرش رفته)، به جاش یه سیر لبو بگیرند حالشو ببرند. :blink:
:biggrin: :biggrin: :biggrin: :biggrin: :biggrin:
شاید سیستمهای قدیمی واسه کارای ما بسیار بسیار ضعیف باشه ولی همیشه میشه بهترین استفاده رو از کم کاربرد ترین قطعات برد .
اینا 6 ملیون واسه این برنامه سرمایه گذاری کردن 10 تا سیستم پنتیوم 1هم دارن اگه بخوان همه رو با هم بفروشن نهایتا 500 تومن دستشون میاد و لا اقل باید 5 تومن هزینه سیستمای جدیدشون کنن :rolleye: با توجه به اینکه سرعت اجرا و کارایی این برنامه رو سیستم پنتیوم 1 با 4 تفاوت زیادی نداره نهایتا 1 یا 2 ثانیه !!!! پس راه عاقلانه همینیه که در پیش گرفتن :biggrin:
از راهنماییت ممنون H2 جان ببینم .NET FRAMWORK رو 98 نصب میشه اگه شد کارمو میبرم تو VB8 که واسه توسعه هم راحت تر باشم البته تا الان یکم شروع کردم باقی بچه ها هم با VB6 تا الان کار میکردن البته همه تمایل دارن به سمت .NET بریم
فکر کنم اسم تاپیک رو فراموش کردید ـــــــــــــــــــــــــ ــــــــــــــــ برای اغفال دیگران یک تاپیک دیگر رو انتخاب کنید
اگر کس راه حل دیگری داره بگه