نمایش نتایج 1 تا 19 از 19

نام تاپیک: فیلتر کردم فرم قبل از باز کردن آن

  1. #1

    Lightbulb فیلتر کردم فرم قبل از باز کردن آن

    ا سلام و احترام
    من یک فرم و ساب فرم دارم که کار جستجوی لحظه ای انجام میده میخواستم ببینم میتونم یکی از ردیف های اون فرم جستجو رو قبل از وارد شدن به فرم از طریق یک تکست باکس بیرونش که سه وضعیت انجام شد، جهت اطلاع و در دست اقدام داره رو بزنم وقتی که وارد فرم می‌شم یکی از این موارد فیلتر بشه و بعدش بشه جستجو کرد؟؟
    فایل رو ضمیمه کردم
    پشتیبانی.rarب
    با سپاس

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    برنامه شما رو ندیدم ولی اگر با docmd.openform فرم رو باز میکنین:
    1- هم میتونین برای رکوردست فرم شرط where تعیین کنین
    2- هم میتونین filter مشخص کنین
    3- هم میتونین یک عبارت string به نام openargs فرم pass کنین (این چیزی هست که باید استفاده کنین)

    در فرم میتونین openargs رو بخونین و هر کاری که میخواین باهاش انجام بدین!

    استفاده از global variable یا tempvars هم که همیشه هست.

  3. #3

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    برنامه شما رو ندیدم ولی اگر با docmd.openform فرم رو باز میکنین:
    1- هم میتونین برای رکوردست فرم شرط where تعیین کنین
    2- هم میتونین filter مشخص کنین
    3- هم میتونین یک عبارت string به نام openargs فرم pass کنین (این چیزی هست که باید استفاده کنین)

    در فرم میتونین openargs رو بخونین و هر کاری که میخواین باهاش انجام بدین!

    استفاده از global variable یا tempvars هم که همیشه هست.
    سلام

    ممنون از پاسختون من اینجوری فرم رو باز کردم
    docmd.openform
    متاسفانه مبتدی هستم این مواردی که گفتید رو جایی هست که بتونم به صورت رون ببینم و یاد بگیرم؟
    سپاس فراوان

  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    مطمئنم که تمام این موارد قبلا بحث شده و نمونه و احتمالا آموزش هم هست براش!

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

  5. #5
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    فرم start سه بخش مجزا داره که هر کدوم برای نشون دادن یک مورد هست:

    1- باز کردن فرم customers و انتخاب کشور بعنوان شرط WHERE

    1.PNG

  6. #6
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    کد بخش 1

    Private Sub B1_Click()  ' WHERE
    If Me.Country.Value = AnyItem Then
    TempVars!Location = ""
    DoCmd.OpenForm "Customers", , , , , acDialog
    Else
    TempVars!Location = " Country=" & Me.Country.Value
    DoCmd.OpenForm "Customers", , , "Country='" & Me.Country.Value & "'", , acDialog
    End If
    End Sub


  7. #7
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    2- باز کردن فرم customers و انتخاب کوئری CustomersByCity بعنوان فیلتر:

    2.PNG

  8. #8
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    کد بخش 2

    Private Sub B2_Click()  ' FILTER
    If Me.City.Value = AnyItem Then
    TempVars!Location = ""
    DoCmd.OpenForm "Customers", , , , , acDialog
    Else
    TempVars!Location = " City=" & Me.City.Value
    DoCmd.OpenForm "Customers", , "CustomersByCity", , , acDialog
    End If
    End Sub


  9. #9
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    دقت کنید که با توجه به انتخاب کشور یا شهر caption فرم customers متناسب با اون تغییر میکنه

    اینکار با تعیین TempVars!Location در فرم start و خوندن اون در form open فرم customers انجام میشه:

    Private Sub Form_Open(Cancel As Integer)
    Me.Caption = "Customers " & TempVars!Location
    Me.InsideHeight = Me.Section(acHeader).Height + Me.Section(acDetail).Height * 10
    End Sub



  10. #10
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    3- چهار تکسباکس داریم که مقادیر هر یک رو به یک روش به فرمی به نام Form1 میفرستیم:

    3.PNG

  11. #11
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    کد بخش 3

    Private Sub B3_Click()  ' OpenArgs
    TempVars!Text2 = Nz(Me.TB2.Value, "")
    Text3 = Nz(Me.TB3.Value, "")
    DoCmd.OpenForm "Form1", , , , , acDialog, Nz(Me.TB1.Value, "")
    End Sub


  12. #12
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    کد form open فرم form1 برای خوندن مقادیر:

    Private Sub Form_Open(Cancel As Integer)
    Me.TB1.Value = Me.OpenArgs
    Me.TB2.Value = TempVars!Text2
    Me.TB3.Value = Text3
    If CurrentProject.AllForms("Start").IsLoaded Then
    Me.TB4.Value = Forms!Start!TB4.Value
    End If
    End Sub


  13. #13
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    Option Compare Database
    Option Explicit
    Private Sub B1_Click() ' WHERE
    If Me.Country.Value = AnyItem Then
    TempVars!Location = ""
    DoCmd.OpenForm "Customers", , , , , acDialog
    Else
    TempVars!Location = " Country=" & Me.Country.Value
    DoCmd.OpenForm "Customers", , , "Country='" & Me.Country.Value & "'", , acDialog
    End If
    End Sub
    Private Sub B2_Click() ' FILTER
    If Me.City.Value = AnyItem Then
    TempVars!Location = ""
    DoCmd.OpenForm "Customers", , , , , acDialog
    Else
    TempVars!Location = " City=" & Me.City.Value
    DoCmd.OpenForm "Customers", , "CustomersByCity", , , acDialog
    End If
    End Sub
    Private Sub B3_Click() ' OpenArgs
    TempVars!Text2 = Nz(Me.TB2.Value, "")
    Text3 = Nz(Me.TB3.Value, "")
    DoCmd.OpenForm "Form1", , , , , acDialog, Nz(Me.TB1.Value, "")
    End Sub
    Private Sub City_AfterUpdate()
    Me.City.Value = Nz(Me.City.Value, AnyItem)
    End Sub
    Private Sub Country_AfterUpdate()
    Me.Country.Value = Nz(Me.Country.Value, AnyItem)
    End Sub
    Private Sub Country_NotInList(NewData As String, Response As Integer)
    Me.Country.Value = Me.Country.ItemData(0)
    Response = acDataErrContinue
    End Sub
    Private Sub City_NotInList(NewData As String, Response As Integer)
    Me.City.Value = Me.City.ItemData(0)
    Response = acDataErrContinue
    End Sub
    Private Sub Form_Open(Cancel As Integer)
    TempVars.Add "Location", ""
    TempVars.Add "Text2", ""
    Me.Country.Value = AnyItem
    Me.City.Value = AnyItem
    End Sub
    Private Sub Form_Close()
    TempVars.RemoveAll
    End Sub



  14. #14
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    متغیرهای global باید در یک ماجول جدا تعریف بشن (نه ماجول فرم یا ریپورت)

    برای همین برای نگهداری مقدار تکسباکس TB3 یک متغیر public در یک ماجول جدا (module1) تعریف شده:

    Option Compare Database
    Option Explicit
    Public Text3 As String
    Public Const AnyItem As String = "------"


  15. #15
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    برنامه پیوست :
    فایل های ضمیمه فایل های ضمیمه

  16. #16
    کاربر دائمی آواتار linktaz
    تاریخ عضویت
    دی 1387
    محل زندگی
    C:\WINDOWS\Temp
    پست
    309

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    نقل قول نوشته شده توسط parsa70 مشاهده تاپیک
    ا سلام و احترام
    من یک فرم و ساب فرم دارم که کار جستجوی لحظه ای انجام میده میخواستم ببینم میتونم یکی از ردیف های اون فرم جستجو رو قبل از وارد شدن به فرم از طریق یک تکست باکس بیرونش که سه وضعیت انجام شد، جهت اطلاع و در دست اقدام داره رو بزنم وقتی که وارد فرم می‌شم یکی از این موارد فیلتر بشه و بعدش بشه جستجو کرد؟؟
    فایل رو ضمیمه کردم
    پشتیبانی.rarب
    با سپاس
    پشتیبانی.zip

    سلام
    پیوست رو بررسی نمائید

  17. #17

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    سلام دست هر دو شما بزرگوار درد نکنه.

  18. #18

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    سلام
    برای ریپورت ها چطوری باید اینکارو کرد؟؟ یعنی یک فیلد که چنتا گذینه رو داره فیلتر کنیم؟
    سپاس

  19. #19
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: فیلتر کردم فرم قبل از باز کردن آن

    در این مورد تفاوتی در روش کار بین فرم و ریپورت نیست

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •