Page 3 of 3 FirstFirst 123
Results 31 to 41 of 41
  1. #31
    Gicu's Avatar
    Gicu is offline VIP
    Windows 10 Access 2010 32bit
    Join Date
    Jul 2015
    Location
    Kelowna, BC, Canada
    Posts
    4,101
    Yes, that is what I was referring to with the use of "OR" instead of "AND" but keep in mind that it might include more entries than you are looking for (if searching for "XXX1" all entries containing that string will be returned, including "XXX10","XXX11", "AXXX1",.....



    It really comes down to your "local" knowledge of how the item ids are structured; if you need to isolate a specific one from many that could look similar (above) some sort of separator must be included in the search and that is what my suggestion was doing; if your Item ids are very specific then probably the "OR" solution would work. Not sure if one would be faster than the other, maybe on large recordsets you might see a difference, both are somehow not optimal because of the non-normalized design, so give it a try and post back if further help is required .

    Cheers,
    Vlad Cucinschi
    MS Access Developer
    http://forestbyte.com/

  2. #32
    data808 is offline Noob
    Windows 10 Access 2013 32bit
    Join Date
    Aug 2012
    Posts
    727
    Quote Originally Posted by Gicu View Post
    Yes, that is what I was referring to with the use of "OR" instead of "AND" but keep in mind that it might include more entries than you are looking for (if searching for "XXX1" all entries containing that string will be returned, including "XXX10","XXX11", "AXXX1",.....

    It really comes down to your "local" knowledge of how the item ids are structured; if you need to isolate a specific one from many that could look similar (above) some sort of separator must be included in the search and that is what my suggestion was doing; if your Item ids are very specific then probably the "OR" solution would work. Not sure if one would be faster than the other, maybe on large recordsets you might see a difference, both are somehow not optimal because of the non-normalized design, so give it a try and post back if further help is required .

    Cheers,
    Hi @Gicu. Yes the you are correct about the results coming back with more records than what may be desired. However, our searches, for the most part, are very specific and we know the format of the values we are searching and I do like the built-in wild card feature with using the "Like" in the code. So I think for now it will work for what we need it for.

    The issue I found is that it will some times ignore one of the credentials given for the search. Just by looking at the code you may be able to figure it out but for context, basically I have a total of 5 unbound fields that the user can type in to, to narrow down the search results. I designed my other split forms like this and it works great but I think with the non-normalized design of this split form and of course the non-normalized code that I produced, there is some conflict going on when a search is executed. Here are the 5 unbound text boxes I have:

    txtItemFilter
    txtStartFilter
    txtEndFilter
    txtRefFilter
    txtUpdatedByFilter

    So the item text box is where the user types the item number. The start and end text boxes are the date ranges you want to search by for when the request was sent. The reference text box is the auto number and the updated by is who created or updated the record.

    If I do a search on the item first and narrow down the items then do another search for the date range, it will ignore the date range and just keep the item records as is with no change even if the date doesn't exist for the range I set for the search. I tried different combinations and some times the credentials will work together and other times it will ignore anything after the first search credential. Here is the code:

    Code:
    Private Sub cmdFilterAll_Click()
    
    Dim searchfor As String
    
    
    If Not IsNull(Me.txtItemFilter) Then
        searchfor = searchfor & " AND [Item1] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item2] Like ""*" & Me.txtItemFilter & "*"" or [Item3] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item4] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item5] Like ""*" & Me.txtItemFilter & "*"" or [Item6] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item7] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item8] Like ""*" & Me.txtItemFilter & "*"" or [Item9] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item10] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item11] Like ""*" & Me.txtItemFilter & "*"" or [Item12] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item13] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item14] Like ""*" & Me.txtItemFilter & "*"" or [Item15] Like ""*" & _
        Me.txtItemFilter & "*"""
    End If
    
    
    ' if both date fields are entered
    If Not IsNull(Me.txtStartFilter) And Not IsNull(Me.txtEndFilter) Then
        searchfor = searchfor & " AND [Date Sent] Between #" & Nz(Me.[txtStartFilter], _
        "1/1/1900") & "# AND #" & Nz(Me.[txtEndFilter], "12/31/2900") & "#"
    End If
    ' if only start date is entered
    If Not IsNull(Me.txtStartFilter) And IsNull(Me.txtEndFilter) Then
        searchfor = searchfor & " AND [Date Sent] Like ""*" & Me.txtStartFilter & "*"""
    End If
    ' if only end date is entered
    If Not IsNull(Me.txtEndFilter) And IsNull(Me.txtStartFilter) Then
        searchfor = searchfor & " AND [Date Sent] Like ""*" & Me.txtEndFilter & "*"""
    End If
    
    
    If Not IsNull(Me.txtRefFilter) Then
        searchfor = searchfor & " AND [Ref Num] Like ""*" & Me.txtRefFilter & "*"""
    End If
    
    
    If Not IsNull(Me.txtUpdatedByFilter) Then
        searchfor = " AND [Updated By] like ""*" & Me.txtUpdatedByFilter & "*"""
    End If
    
    
    If searchfor = "" Then
        Me.Filter = ""
        Me.FilterOn = False
    Else
        Me.Filter = Mid(searchfor, 6)
        Me.FilterOn = True
    End If
    
    
    End Sub

  3. #33
    Gicu's Avatar
    Gicu is offline VIP
    Windows 10 Access 2010 32bit
    Join Date
    Jul 2015
    Location
    Kelowna, BC, Canada
    Posts
    4,101
    Could you please try this:
    Code:
    Private Sub cmdFilterAll_Click()
    
    Dim searchfor As String
    
    
    
    
    If Not IsNull(Me.txtItemFilter) Then
        searchfor = searchfor & " AND ([Item1] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item2] Like ""*" & Me.txtItemFilter & "*"" or [Item3] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item4] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item5] Like ""*" & Me.txtItemFilter & "*"" or [Item6] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item7] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item8] Like ""*" & Me.txtItemFilter & "*"" or [Item9] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item10] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item11] Like ""*" & Me.txtItemFilter & "*"" or [Item12] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item13] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item14] Like ""*" & Me.txtItemFilter & "*"" or [Item15] Like ""*" & _
        Me.txtItemFilter & "*"")"
    End If
    
    
    
    
    ' if both date fields are entered
    If Not IsNull(Me.txtStartFilter) And Not IsNull(Me.txtEndFilter) Then
        searchfor = searchfor & " AND [Date Sent] Between #" & Nz(Me.[txtStartFilter], _
        "1/1/1900") & "# AND #" & Nz(Me.[txtEndFilter], "12/31/2900") & "#"
    End If
    ' if only start date is entered
    If Not IsNull(Me.txtStartFilter) And IsNull(Me.txtEndFilter) Then
        searchfor = searchfor & " AND [Date Sent] >= #" & Me.txtStartFilter & "#"
    End If
    ' if only end date is entered
    If Not IsNull(Me.txtEndFilter) And IsNull(Me.txtStartFilter) Then
        searchfor = searchfor & " AND [Date Sent] Like <= #" & Me.txtEndFilter & "#"
    End If
    
    
    
    
    If Not IsNull(Me.txtRefFilter) Then
        searchfor = searchfor & " AND [Ref Num] Like ""*" & Me.txtRefFilter & "*"""
    End If
    
    
    
    
    If Not IsNull(Me.txtUpdatedByFilter) Then
        searchfor = " AND [Updated By] like ""*" & Me.txtUpdatedByFilter & "*"""
    End If
    
    
    
    
    If searchfor = "" Then
        Me.Filter = ""
        Me.FilterOn = False
    Else
        Me.Filter = Mid(searchfor, 6)
        Me.FilterOn = True
    End If
    
    
    
    
    End Sub
    Cheers,
    Vlad Cucinschi
    MS Access Developer
    http://forestbyte.com/

  4. #34
    data808 is offline Noob
    Windows 10 Access 2013 32bit
    Join Date
    Aug 2012
    Posts
    727
    Quote Originally Posted by Gicu View Post
    Could you please try this:
    Code:
    Private Sub cmdFilterAll_Click()
    
    Dim searchfor As String
    
    
    
    
    If Not IsNull(Me.txtItemFilter) Then
        searchfor = searchfor & " AND ([Item1] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item2] Like ""*" & Me.txtItemFilter & "*"" or [Item3] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item4] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item5] Like ""*" & Me.txtItemFilter & "*"" or [Item6] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item7] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item8] Like ""*" & Me.txtItemFilter & "*"" or [Item9] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item10] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item11] Like ""*" & Me.txtItemFilter & "*"" or [Item12] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item13] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item14] Like ""*" & Me.txtItemFilter & "*"" or [Item15] Like ""*" & _
        Me.txtItemFilter & "*"")"
    End If
    
    
    
    
    ' if both date fields are entered
    If Not IsNull(Me.txtStartFilter) And Not IsNull(Me.txtEndFilter) Then
        searchfor = searchfor & " AND [Date Sent] Between #" & Nz(Me.[txtStartFilter], _
        "1/1/1900") & "# AND #" & Nz(Me.[txtEndFilter], "12/31/2900") & "#"
    End If
    ' if only start date is entered
    If Not IsNull(Me.txtStartFilter) And IsNull(Me.txtEndFilter) Then
        searchfor = searchfor & " AND [Date Sent] >= #" & Me.txtStartFilter & "#"
    End If
    ' if only end date is entered
    If Not IsNull(Me.txtEndFilter) And IsNull(Me.txtStartFilter) Then
        searchfor = searchfor & " AND [Date Sent] Like <= #" & Me.txtEndFilter & "#"
    End If
    
    
    
    
    If Not IsNull(Me.txtRefFilter) Then
        searchfor = searchfor & " AND [Ref Num] Like ""*" & Me.txtRefFilter & "*"""
    End If
    
    
    
    
    If Not IsNull(Me.txtUpdatedByFilter) Then
        searchfor = " AND [Updated By] like ""*" & Me.txtUpdatedByFilter & "*"""
    End If
    
    
    
    
    If searchfor = "" Then
        Me.Filter = ""
        Me.FilterOn = False
    Else
        Me.Filter = Mid(searchfor, 6)
        Me.FilterOn = True
    End If
    
    
    
    
    End Sub
    Cheers,
    Thanks @Gicu. Definitely an improvement. More search combinations work now but still finding some that don't work.

    First one I found is that if I search the Updated By field first, then add an item search afterwards it will ignore the Item field search. Example, if I search for John first, it will pull up all John's records. Then if I search for an item, nothing will get filtered out. The same amount of records will reflect.

    Second one is if I do a reference search first, example reference number is 3. It will pull up just that record with the reference number 3 and let's say John updated this record. If I then run a search for Jane with that reference 3 record still active, it will now ignore the reference 3 and just pull up all of Jane's records as if the 3 was not entered.

    Does that make sense?

  5. #35
    Gicu's Avatar
    Gicu is offline VIP
    Windows 10 Access 2010 32bit
    Join Date
    Jul 2015
    Location
    Kelowna, BC, Canada
    Posts
    4,101
    Please try this (make a backup copy of your file first), note that you need to add a couple functions and some lines at the top of the form module:
    Code:
    Option Compare Database
    Option Explicit
    Public Enum CombineFilterType
      ct_And = 0
      ct_OR = 1
    End Enum
    
    
    Private Sub cmdFilterAll_Click()
    Dim sFilter As String
    
    
    sFilter = GetFilter(ct_And)
    If sFilter = "" Then
        Me.Filter = ""
        Me.FilterOn = False
    Else
        Me.Filter = sFilter
        Me.FilterOn = True
    End If
    
    
    End Sub
    Public Function GetFilter(AndOr As CombineFilterType) As String
    'need variable for each partial filter
    Dim strRefNumFltr As String
    Dim strDate_SentFltr As String
    Dim strItemFltr As String
    Dim strUpdatedByFltr As String
    
    
    
    
    'ref number
    If (Me.txtRefFilter & "") <> "" Then
        strRefNumFltr = "[Ref Num] Like ""*" & Me.txtRefFilter & "*"""
    End If
    
    
    'Date Sent
    If Not IsNull(Me.txtStartFilter) And Not IsNull(Me.txtEndFilter) Then
        strDateFltr = "[Date Sent] Between #" & Me.txtStartFilter & "# AND #" & Me.txtEndFilter & "#"
    End If
    ' if only start date is entered
    If Not IsNull(Me.txtStartFilter) And IsNull(Me.txtEndFilter) Then
        strDateFltr = "[Date Sent] >= #" & Me.txtStartFilter & "#"
    End If
    ' if only end date is entered
    If Not IsNull(Me.txtEndFilter) And IsNull(Me.txtStartFilter) Then
        strDateFltr = "[Date Sent] Like <= #" & Me.txtEndFilter & "#"
    End If
    
    
    'UpdatedBy
    If Not IsNull(Me.txtUpdatedByFilter) Then
        strUpdatedByFltr = "[Updated By] Like ""*" & Me.txtUpdatedByFilter & "*"""
    End If
    
    
    'Item
    If Not IsNull(Me.txtItemFilter) Then
        strItemFltr = "([Item1] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item2] Like ""*" & Me.txtItemFilter & "*"" or [Item3] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item4] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item5] Like ""*" & Me.txtItemFilter & "*"" or [Item6] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item7] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item8] Like ""*" & Me.txtItemFilter & "*"" or [Item9] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item10] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item11] Like ""*" & Me.txtItemFilter & "*"" or [Item12] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item13] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item14] Like ""*" & Me.txtItemFilter & "*"" or [Item15] Like ""*" & _
        Me.txtItemFilter & "*"")"
    End If
    
    
    GetFilter = CombineFilters(AndOr, strRefNumFltr, strDateFltr, strUpdatedByFltr, strItemFltr)
    
    
    End Function
    
    
    Public Function CombineFilters(And_Or As CombineFilterType, ParamArray Filters() As Variant) As String
      Dim FilterCombiner As String
      Dim i As Integer
      Dim strOut As String
     
      If And_Or = ct_And Then
        FilterCombiner = " AND "
      Else
        FilterCombiner = " OR "
      End If
     
      For i = 0 To UBound(Filters)
        If Filters(i) <> "" Then
          If strOut = "" Then
            strOut = Filters(i)
          Else
            strOut = strOut & FilterCombiner & Filters(i)
          End If
        End If
      Next i
      CombineFilters = strOut
    End Function
    Cheers,
    Vlad Cucinschi
    MS Access Developer
    http://forestbyte.com/

  6. #36
    data808 is offline Noob
    Windows 10 Access 2013 32bit
    Join Date
    Aug 2012
    Posts
    727
    Quote Originally Posted by Gicu View Post
    Please try this (make a backup copy of your file first), note that you need to add a couple functions and some lines at the top of the form module:
    Code:
    Option Compare Database
    Option Explicit
    Public Enum CombineFilterType
      ct_And = 0
      ct_OR = 1
    End Enum
    
    
    Private Sub cmdFilterAll_Click()
    Dim sFilter As String
    
    
    sFilter = GetFilter(ct_And)
    If sFilter = "" Then
        Me.Filter = ""
        Me.FilterOn = False
    Else
        Me.Filter = sFilter
        Me.FilterOn = True
    End If
    
    
    End Sub
    Public Function GetFilter(AndOr As CombineFilterType) As String
    'need variable for each partial filter
    Dim strRefNumFltr As String
    Dim strDate_SentFltr As String
    Dim strItemFltr As String
    Dim strUpdatedByFltr As String
    
    
    
    
    'ref number
    If (Me.txtRefFilter & "") <> "" Then
        strRefNumFltr = "[Ref Num] Like ""*" & Me.txtRefFilter & "*"""
    End If
    
    
    'Date Sent
    If Not IsNull(Me.txtStartFilter) And Not IsNull(Me.txtEndFilter) Then
        strDateFltr = "[Date Sent] Between #" & Me.txtStartFilter & "# AND #" & Me.txtEndFilter & "#"
    End If
    ' if only start date is entered
    If Not IsNull(Me.txtStartFilter) And IsNull(Me.txtEndFilter) Then
        strDateFltr = "[Date Sent] >= #" & Me.txtStartFilter & "#"
    End If
    ' if only end date is entered
    If Not IsNull(Me.txtEndFilter) And IsNull(Me.txtStartFilter) Then
        strDateFltr = "[Date Sent] Like <= #" & Me.txtEndFilter & "#"
    End If
    
    
    'UpdatedBy
    If Not IsNull(Me.txtUpdatedByFilter) Then
        strUpdatedByFltr = "[Updated By] Like ""*" & Me.txtUpdatedByFilter & "*"""
    End If
    
    
    'Item
    If Not IsNull(Me.txtItemFilter) Then
        strItemFltr = "([Item1] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item2] Like ""*" & Me.txtItemFilter & "*"" or [Item3] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item4] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item5] Like ""*" & Me.txtItemFilter & "*"" or [Item6] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item7] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item8] Like ""*" & Me.txtItemFilter & "*"" or [Item9] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item10] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item11] Like ""*" & Me.txtItemFilter & "*"" or [Item12] Like ""*" & _
        Me.txtItemFilter & "*"" or [Item13] Like ""*" & Me.txtItemFilter & _
        "*"" or [Item14] Like ""*" & Me.txtItemFilter & "*"" or [Item15] Like ""*" & _
        Me.txtItemFilter & "*"")"
    End If
    
    
    GetFilter = CombineFilters(AndOr, strRefNumFltr, strDateFltr, strUpdatedByFltr, strItemFltr)
    
    
    End Function
    
    
    Public Function CombineFilters(And_Or As CombineFilterType, ParamArray Filters() As Variant) As String
      Dim FilterCombiner As String
      Dim i As Integer
      Dim strOut As String
     
      If And_Or = ct_And Then
        FilterCombiner = " AND "
      Else
        FilterCombiner = " OR "
      End If
     
      For i = 0 To UBound(Filters)
        If Filters(i) <> "" Then
          If strOut = "" Then
            strOut = Filters(i)
          Else
            strOut = strOut & FilterCombiner & Filters(i)
          End If
        End If
      Next i
      CombineFilters = strOut
    End Function
    Cheers,
    Hi @Gicu. I see the top "Option Compare Database" so I pasted that piece of code in that area. Then I saw the FilterAll Click which was much shorter now so I took everything out of that section and posted the shorter version. Then when it gets to "Public Function GetFilter(AndOr As CombineFilterType) As String" I'm not sure where to put that. Do I create a module for it? Or just paste it as is under the End Sub of the FilterAll Click? I also see "Public Function CombineFilters(And_Or As CombineFilterType, ParamArray Filters() As Variant) As String" and also not sure where to put that one.

  7. #37
    Gicu's Avatar
    Gicu is offline VIP
    Windows 10 Access 2010 32bit
    Join Date
    Jul 2015
    Location
    Kelowna, BC, Canada
    Posts
    4,101
    Hi @data808,
    You need to replace the FilterAll_Click () with the shorter version I've gave you, copy the two functions (GetFilter() and CombineFilters()) anywhere in the form module. I see you added the Enum line at the top of the module so you should be good.

    Please let me know how it goes and if you have any questions about the updated code, I have updated MajP's code from here to match your case:
    https://www.access-programmers.co.uk...2#post-1860248

    Cheers,
    Vlad Cucinschi
    MS Access Developer
    http://forestbyte.com/

  8. #38
    data808 is offline Noob
    Windows 10 Access 2013 32bit
    Join Date
    Aug 2012
    Posts
    727
    Quote Originally Posted by Gicu View Post
    Hi @data808,
    You need to replace the FilterAll_Click () with the shorter version I've gave you, copy the two functions (GetFilter() and CombineFilters()) anywhere in the form module. I see you added the Enum line at the top of the module so you should be good.

    Please let me know how it goes and if you have any questions about the updated code, I have updated MajP's code from here to match your case:
    https://www.access-programmers.co.uk...2#post-1860248

    Cheers,
    Thank you very much @Gicu for the explanation. I am in the middle of pasting the code in the form module and ran into a couple hiccups. So this Dim:

    Dim strDate_SentFltr As String

    There were a few strDateFltr so when I did a debug comple it would give an error and point to those so I had to change it to match strDate_SentFltr then it was ok.

    Now the debug compile is pointing to:

    sFilter = GetFilter(ct_And)

    Error is saying sFilter Variable Not Defined. So I added:

    Dim sFilter As String

    Now it seems to be ok. I'm going to test it out now and report back.

  9. #39
    data808 is offline Noob
    Windows 10 Access 2013 32bit
    Join Date
    Aug 2012
    Posts
    727
    So far its working great @Gicu. I tried all the combinations that didn't work before and it's filtering out everything as it should. Brilliant work. I will keep testing and report back but I think this might be the solution I was looking for thanks to you.

    Let me know if what I did in my previous post is ok. It seem to fix the debug compile errors but I'm not sure if that was the correct way to go about it.

    Thanks again @Gicu.

  10. #40
    Gicu's Avatar
    Gicu is offline VIP
    Windows 10 Access 2010 32bit
    Join Date
    Jul 2015
    Location
    Kelowna, BC, Canada
    Posts
    4,101
    Yes, you did good 😊, that is what happens when you write code in Notepad ....
    Cheers,

  11. #41
    data808 is offline Noob
    Windows 10 Access 2013 32bit
    Join Date
    Aug 2012
    Posts
    727
    Quote Originally Posted by Gicu View Post
    Yes, you did good , that is what happens when you write code in Notepad ....
    Cheers,
    That makes it even more impressive that you wrote that in Notepad with no VBA code assistance. Don't know how you do it.

    I marked this thread as solved. Thanks again @Gicu for all your help on this.

Page 3 of 3 FirstFirst 123
Please reply to this thread with any new information or opinions.

Similar Threads

  1. Replies: 5
    Last Post: 01-07-2019, 01:51 AM
  2. Filter as you type text box on Split form
    By abakhaus in forum Access
    Replies: 5
    Last Post: 12-20-2016, 12:54 PM
  3. Multiple filter with unbound text boxes
    By cbende2 in forum Access
    Replies: 2
    Last Post: 05-21-2015, 08:47 AM
  4. Replies: 4
    Last Post: 11-19-2014, 02:56 PM
  5. Replies: 3
    Last Post: 05-02-2013, 01:59 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Other Forums: Microsoft Office Forums