نمایش نتایج: از شماره 1 تا 10 , از مجموع 43

موضوع: آموزش فیلتر داده ها بر مبنای چند محدودیت اختیاری و نمایش در لیست باکس

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1


    آخرین بازدید
    2 هفته پیش
    تاریخ عضویت
    October 2011
    محل سکونت
    مشهد
    نوشته ها
    4,374
    امتیاز
    12614
    سپاس
    4,596
    سپاس شده
    11,990 در 3,203 پست
    سطح اکسل
    70.00 %

    آموزش فیلتر داده ها بر مبنای چند محدودیت اختیاری و نمایش در لیست باکس

    درود

    در این تاپیک هدف ارائه راهکاری برای جستجوی چندگانه است و قصد توضیح دادن کد هارو ندارم ، برای اجرا شدن کد ها ابتدا از مسیر VBA/Tools/Refrences گزینه Microsoft Activex Data objects رو فعال کنید



    فرض کنید جدولی با داده هایی به شکل زیر دارید






    هدف فیلتر کردن داده ها به صورت گام به گام و همراه با چندین شرط متفاوت و در نهایت رسیدن به رکورد مورد نیاز و نمایش آن در لیست باکس یک فرم است
    گام اول:
    ابتدا فرم مورد نیاز خود را طراحی کنید و آیتم های مورد نیاز خود را در قالب یک تکست باکس یا کمبو باکس ایجاد نمایید





    از مسیری که در تصویر زیر مشخص شده است نسبت به نام گذاری تکست باکس ها (یا کمبو باکس ها) به روش زیر اقدام نمایید





    هر تکست باکس می بایست نام ستون متناظر خود در شیت اکسل را به اضافه حروف flt در پایان آن داشته باشد به عنوان مثال ستون نام در شیت به fname نامگذاری شده است پس تکست باکس آن را با fnameflt نام گذاری کنید.

    گام سوم:
    کانکشن مورد نیاز به شیت حاوی داده ها ایجاد کنید ، با توجه به اینکه این کانکشن در طول اجرای سابروتین ها مورد نیاز است متغیر های مربوطه را به صورت public تعریف میکنیم:



    کد PHP:
    Public cnn As ADODB.Connection
    Public rsReserve As ADODB.Recordset
    Public Sub constr()
    Dim strSQL As String
    Dim fpath 
    As String
    Dim str 
    As String
    Set cnn 
    = New ADODB.Connection
    Set rs 
    = New ADODB.Recordset
    Set rsReserve 
    = New ADODB.Recordset
    fpath 
    ThisWorkbook.Path Application.PathSeparator ThisWorkbook.Name
    str 
    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""" _
                            
    fpath """;Extended Properties=""Excel 12.0 Xml;HDR=YES"";"
    strSQL "select*from [sheet1$]"
    cnn.Open str
    rsReserve
    .Open strSQLcnnadOpenForwardOnlyadLockReadOnlyadCmdText
    End Sub 
    کد زیر شیت حاوی اطلاعات را انتخاب میکند
    کد PHP:

    strSQL 
    "select*from [sheet1$]" 

    گام سوم:
    با استفاده از رویداد click کامند باتن تعبیه شده بر روی یوزر فرم کدهای زیر را وارد کنید:


    کد PHP:
    Private Sub CommandButton1_Click()
    Dim cCont As Control
    Dim fildname 
    As String
    Dim filtername 
    As String
    Dim srtfill 
    As String
    Call constr
        
    For Each cCont In Me.Controls
    If UCase(Right(cCont.Name3)) = "FLT" Then
    fildname 
    Mid(cCont.Name1Len(cCont.Name) - 3)
    filtername cCont.Value
    If filtername <> "" Then
    srtfill 
    srtfill flt(fildnamefiltername)

    End If
    End If

        
    Next cCont
       srtfill 
    Mid(srtfill1Len(srtfill) - 5)
        
    Call subfilter(srtfill)
           
    Call filllistbox

    Set rsReserve 
    Nothing
    Set rs 
    Nothing
    cnn
    .Close
    End Sub 

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

    کد PHP:


    Public Function flt(fildname As Stringfiltername As String)
    flt " " fildname "  =    '" filtername "' AND "
    End Function 
    گام چهارم:

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

    کد PHP:

    Sub subfilter
    (srtfill As String)
    rsReserve.Filter srtfill
    End Sub 
    گام پنجم:

    در پایان با فراخوانی سابروتین زیر داده ها در لیست باکس وارد می شود

    کد PHP:
    Private Sub filllistbox()

        
    Dim I As IntegerAs Integer

        With ListBox1
       
            
    .BoundColumn 1
            
    .ColumnCount rsReserve.Fields.Count
            
    .ColumnHeads False
            
    .ColumnWidths ""
            
    .ControlSource ""
            
    .RowSource ""
            
    .Clear
            I 
    0
         
            
    If Not rsReserve.BOF Then rsReserve.MoveFirst
            
    If rsReserve.EOF True Then
            MsgBox 
    "this record nor exist"
            
    End If
            Do 
    Until rsReserve.EOF
                I 
    1
                
    .AddItem
                
    For 1 To .ColumnCount
                    
    .List(11) = rsReserve.Fields(1).Value
                Next J
               rsReserve
    .MoveNext
            Loop
        End With


    End Sub 
    دقت کنید در گزاره with نام لیست باکس را صحیح وارد کنید.
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    فايل هاي پيوست شده فايل هاي پيوست شده
    ویرایش توسط ~M*E*H*D*I~ : 2018/02/18 در ساعت 18:28





اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. افزونه مدیریت تیبل
    توسط ~M*E*H*D*I~ در انجمن برنامه های کاربردی اکسل
    پاسخ ها: 0
    آخرين نوشته: 2014/03/27, 10:14
  2. طراحی تیرچه کرومیت به روش تنش مجاز asd
    توسط alieddy0 در انجمن اسپريد شيت هاي مهندسي - Engineering spreadsheet
    پاسخ ها: 0
    آخرين نوشته: 2014/03/17, 15:12
  3. پاسخ ها: 0
    آخرين نوشته: 2013/11/14, 16:11
  4. آپدیت پیوت تیبل
    توسط mokaram در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 3
    آخرين نوشته: 2013/02/21, 13:16
  5. مشکل اینسرت در یک تیبل در موقع پروتکت بودن شیت
    توسط بهنام در انجمن پیوت تیبل و پايگاه داده - Pivot Table and Database
    پاسخ ها: 3
    آخرين نوشته: 2012/03/10, 18:30

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

آموزش پيوت تيبل

فیلتر کردن لیست باکس اکسل

روش ساخت کمبو باکس در اکسل 2010

چیدن تکس باکس ها در اکسل

لیست باکس ویژوال بیسیک چند ردیف

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

اموزش فیلتر کردن محصولات در php

لیست چندین داده

فیلترکردن لیست باکس exceliran.com

فیلتر داده ها در php

کاربرد additem درلیست باکس در vb6

نمایش اطلاعات فیلتر شده در لیست باکس

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است