Hi,
OK my main form is unbound and I have a subform in it which is shown as a datasheet. What I'm trying to do is have a list box control at the top that allows the user to filter the records shown in the subform.
Q1. Do I need to have this set-up like this? Is it possible to just use one form? I have tried doing this but when I add my list box, lables etc to the top of the form or the header they just do not appear in datasheet view.
Q2. If I do need to use a subform how do I reference it when using DoCmd.ApplyFilter from my main form:
DoCmd.ApplyFilter , "DrawingNum = '32-35612'"
At the moment this gives an error saying that the action or method is invalid because the form is unbound.
How do I apply a filter that automatically loads when a form is opened? For example, I have a check box and I only want to load records where the box is checked.
I have a form (Record Source = Report_TBL). I've brought in a subform (Record Source = Patient_TBL). I linked the 2 on the field PID. I've added a command button (Submit). OnClick for the Submit button I've added in the Event Procedure
Private Sub cmdSubmit_Click()
DoCmd.Save
End Sub
It only saves the data I've put in for the subform.
Can anyone give me any information on how to save all the information from both forms?
I have a continuos form (list of records) with a tool bar with "filter by form buton". This buton allow to users filter the list of records showed by the form by diferent field criterias.
After applied a filter I need a buton in the tool bar to print the filtered records on a report with a specific design: logo company, header, footer, etc.
I don't know how to apply the same filter used by the form to a report. Notice the filter by form continuos change depending the user.
I have not too much experiencie in programming. So I appreciate in advance any help.
Hi! I am making a form that will be composed of two subforms. Each subform will be based on a differrnt table, however the tables are identicle as far as the number of columns. I designed form_1 to be based on table_1. Now, is there a way to copy form_1 (which will be changed to form_2 in the copied version) and redirect it to table_2?
I tried copy and pasting form_1, opened it in design view, looked at the Form properties, specifically: Data-> Record Source, and changed it to table_2, but.....the form didn't pick up table_2 field names, values, etc. I am guessing this is not the way to do this but how does one do this? Thanks John
I am trying to create a form with control buttons on the form for all the letters of the alphabet. When a user clicks on the button for A, I would like them to only see records that starts with an "A". I assume that I should apply an event to the button's OnClick-property, with a filter, but I can't seem to get it right...any suggestions would be very much appreciated!
Hello everyone. I am having trouble with applying filter on 2 date fields in form. I have succeeded by applying fiter on report by Date, but I just can't seem to work it out on Form! I believe there has to be something to do with the DoCmd code.
I have a main form (frmRate) which has fields (txtDate & txtValidity) that contain dates. I have a subform called (frmSearchRateCustomer) which has 4 fields (txtStartDate, txtEndDate, txtStartDate2, txtEndDate2) where the data range should be filled in as search criteria. I have also an additional combobox (cboCustomer) where user can select customer as a search criteria as well. I have a button that has to do the Search in frmRate. The combobox criteria works very well, just the date filtering is not working. I am pasting my code as follows:
Code:Private Sub cmdSearch_Click()On Error GoTo Err_cmdSearch_ClickDim strCustomer As StringDim strFilter As StringDim stDocName As StringDim strForm As StringDim strField As String 'Name of your Order field.Dim strWhere As String 'Where condition for OpenReport.Const conDateFormat = "#dd/mm/yyyy#"Dim strField2 As String 'Name of your Arrival field.Dim strWhere2 As String 'Where condition for OpenReport.Const conDateFormat2 = "#dd/mm/yyyy#" strForm = "frmRate" strField = "txtDate" strField2 = "txtValidity" ' For the Order Date Search Criteria Date range If IsNull(Me.txtStartDate) Then If Not IsNull(Me.txtEndDate) Then 'End date, but no start. strWhere = strField & " < " & Format(Me.txtEndDate, conDateFormat) End If Else If IsNull(Me.txtEndDate) Then 'Start date, but no End. strWhere = strField & " > " & Format(Me.txtStartDate, conDateFormat) Else 'Both start and end dates. strWhere = strField & " Between " & Format(Me.txtStartDate, conDateFormat) & " And " & Format(Me.txtEndDate, conDateFormat) End If End If ' Debug.Print strWhere 'For debugging purposes only. ' For the Arrival Date Search Criteria Date rangeIf IsNull(Me.txtStartDate2) Then If Not IsNull(Me.txtEndDate2) Then 'End date, but no start. strWhere2 = strField2 & " < " & Format(Me.txtEndDate2, conDateFormat2) End If Else If IsNull(Me.txtEndDate2) Then 'Start date, but no End. strWhere2 = strField2 & " > " & Format(Me.txtStartDate2, conDateFormat2) Else 'Both start and end dates. strWhere2 = strField2 & " Between " & Format(Me.txtStartDate2, conDateFormat2) & " And " & Format(Me.txtEndDate2, conDateFormat2) End If End If If IsNull(Me.cboCustomer.Value) Then strCustomer = "Like '*'" Else strCustomer = "='" & Me.cboCustomer.Value & "'" End If ' Build filter string strFilter = "[txtCustomerName] " & strCustomer DoCmd.OpenForm strForm, acNormal, , strWhere ' for date DoCmd.OpenForm strForm, acNormal, , strWhere2 ' for date stDocName = "frmRate" DoCmd.OpenForm stDocName, acNormal ' Apply filter to report With Forms![frmRate] .Filter = strFilter .FilterOn = True End WithExit_cmdSearch_Click: Exit SubErr_cmdSearch_Click: MsgBox Err.Description Resume Exit_cmdSearch_Click End Sub
I have used the same code as I have used for my Report, just changed few things like rpt --> frm etc...
I have a form with a bottom that has a macro that uses applyfilter to filter the current form based on what is within a textbox located on the form.
I used the macobuilder and have my where condition as
[num] Like "*" & [Forms]![frm_Main]![Text181] & "*" Or [name] Like "*" & [Forms]![frm_Main]![Text181] & "*"
This works when I open the form by itself but when I try adding the form to a navigation form I get prompted to put in "num" and "[Forms]![frm_Main]![Text181] " etc. when I click the bottom.
I Have 2 combo box on a form: Product_Type (6 values) and Product_Name (30 values and each belongs to a type), I want to narrow down the Product_Name to related Product_type whenever I select a type in the first field. Is there anyway to do this?
I've msgbox'd the txtProblemID and the correct ID is being passed. Where I fall into an error is on the frmUserInformation's onLoad event which uses the ID form the frmUserInformation.txtUserID box. The error I get is "Syntax error (missing operator in query expression '[fldUserID]='."
What I've narrowed it to is the timing between the docmd.openform and the onload of the form. I've tried changing the onload to be on activate - and it just opens empty.
how to get the docmd to open the form correctly before the onload tries to fire?
I'm creating a database about Vets and I need to make a button on my menu form that will open something like message box that will allow me to type in something (in my case Customer ID) which will then apply the filter on the customer form and allow me to do edits. I have only done the macro that will open the customer form but can't figure out how to do the filter part.
Hi all. I've created a database which contains information about stores. I want to have the forms automaticly sorted by the department number. I've tried to sort the table by department, but when I try to add a department, the sorting doesn't seem to affect the form at all.
Lets say I have department 1,2,3,6,7,8 in the form, and I add department 4, it will be the last post in the form. I want it to be the fourth, and so on..
I'd apreciate some help with this :) Thanks
Here's the database (http://www.access-programmers.co.uk/forums/attachment.php?attachmentid=12934&stc=1&d=1142018915&PHPSESSID=f730b7f11f6983965698faeacbe5a1ee)
I am trying to develop a page where users can click on alphabets to look for a company name that starts with the selected letter. Searching through the forums i came across the method of using DoCmd.
alpha = Request.QueryString("alp") if alpha <> "" then DoCmd.ApplyFilter "", "[com_name] Like ""[" & alpha & "]*""" end if
The 'alpha' variable here holds the alphabet selected by user from another page. However, I'm getting an error message saying
Microsoft VBScript runtime (0x800A01F4) Variable is undefined: 'DoCmd'
Initially i tried the usual filtering
if alpha <> "" then rs.Filter = "com_name LIKE " & alpha end if
The pages are suppose to display records in 10s. But instead of showing only the records of company starting "A" (example) it shows everything.
Please kindly point me to the correct direction to solve this problem.
I have a query where on an IIF result a field is displayed or an "OK"
I have an imported field of 6 chrs where I only want the left 5 so I use Loc:=Left([Location],5) ,
I then compare the result in, MoveTo: to another fixed field [PreferLoc]
MoveTo: IIf([Loc]=[PreferLoc],"OK",[PreferLoc])
I wish to citeria out all the "OK" values so I have <>"OK" in the critria section but when I try to run the query I am presented with a selection box asking for Loc This Query feeds a report so I set the filter to yes in the report properties and use [MoveTo]<>"OK" as the filter and this works great until I close and reopen the app where the filter has gone ? Can anyone advise where I am going wrong with my query and or my report ?
I have a form with a "Keyword Search" This functions great. It applies a filter when I do the search. Which is what I want. But when I'm done, I want the filter removed. I can do this with a macro "ShowAllRecords". This works fine when I click on the command button it is applied to. The only thing is, it is no longer sorted by the "Auto" number field :( . I would like this to be done automatically when I remove the filter.
Is there any way to do this without clicking on my field, and then clicking on the "sort" button on the toolbar?
Thanks for any help.
:p Up to now, I've been able to find the answers to my questions by doing a search on this forum. So thanks to everyone who has been answering everyone's questions
Can someone tell me the difference between 'Call' and 'DoCmd' and how each are executed. For my level of programming, an newbie at that, I've used it interchangably so far without a problem. But I'm beginning to think that there is a difference. I don't want to later have to go back to redo my code down the line. I'm beginning to think that I've been very lucky so far in being able to use it interchangebly and my luck will run out soon.:eek:
I need to execute an append query from my vba code but I have to pass in a parameter. I can't set the parameter equal to a form control. I have to actually pass in a value. I don't want to use a querydef because I don't have any result sets.
im creating a small database and am extremely new to vba, ive got stuck on running a select query from within the vba code itself, the book im currently reading while learning about this stuff suggests my code whould work but after looking into it i believe its wrong as ive read various threads saying you cannot use docmd.runsql with a select query, just wondering if anyone could help and throw some light on how to get this little bit of code working. below is the part of my code that falls over,
basicaly it should lookup the weight based on what the parcel type is and find the price, the parcel type is worked out earlier in my code and is held in strParcelType, theirs probably an easier way to do this as well but have'nt got that far in my book :)
intWeight = Me.txtWeight
Select Case intWeight Case 0 To 100 intCost = DoCmd.RunSQL "SELECT pricetable1.[Postage Name], pricetable1.[0-100g] FROM pricetable1 WHERE (((pricetable1.[Postage Name]) = strParcelType))" Case 101 To 250 intCost = DoCmd.RunSQL "SELECT pricetable1.[Postage Name], pricetable1.[101-250g] FROM pricetable1 WHERE (((pricetable1.[Postage Name]) = strParcelType))" Case 251 To 500 intCost = DoCmd.RunSQL "SELECT pricetable1.[Postage Name], pricetable1.[251-500g] FROM pricetable1 WHERE (((pricetable1.[Postage Name]) = strParcelType))" Case 501 To 750 intCost = DoCmd.RunSQL "SELECT pricetable1.[Postage Name], pricetable1.[501-750g] FROM pricetable1 WHERE (((pricetable1.[Postage Name]) = strParcelType))" Case 751 To 1000 intCost = DoCmd.RunSQL "SELECT pricetable1.[Postage Name], pricetable1.[751-1000g] FROM pricetable1 WHERE (((pricetable1.[Postage Name]) = strParcelType))" Case 1001 To 1250 intCost = DoCmd.RunSQL "SELECT pricetable1.[Postage Name], pricetable1.[1001-1250g] FROM pricetable1 WHERE (((pricetable1.[Postage Name]) = strParcelType))" End Select
Me.txtEstimate = strParcelType & intCost
many thanks to any gurus who can point me in the right direction or show me a easier way to do this
I have got an unbound access form, and in this form I gather 2 dates (i.e. through txt fields). Once I have these fields, I want to open a form that has one list box on it. This list box should populate based on the dates that I gather on the previous form. How do I specify this through the DoCmd.OpenForm arguments? Currently I have the following code, but it is not working:
Form 1: Dim whereClause As String whereClause = "SELECT * FROM qryInvoice WHERE tblInv.InvDate Between #" & txtStartDate & "# And #" & txtEndDate & "#" & ";" DoCmd.OpenForm "frmInvoiceFax", acNormal, , , , , whereClause
Form 2: public Sub Form_Load(args As String) MsgBox args lstInvoice.Rowsource = whereClause End Sub
I know I am not doing it the right way (because it is not working), but I can't actually find how to do it. Help!
I have a form(frmGetRecord) with a subform(frmSubGetRecord). frmGetRecord has a combobox cmbCNO to choose the patient. The subform displays the admit date and discharge date(if there is one). There can be multiple admit/Discharge dates for a patient. Based on the values from fields on the form and subform, I would like to open a data entry form(frmEvents) for the particular record. I have a command button to run the code to open frmEvents. I am having trouble with the criteria in the where condition.
When I click on the command button I get a type mismatch error. If I test the StLinkCriteria separately, the DoCmd.OpenForm will work for just the CNO field or just the AdmitDate field. If I test those two strings together, I get the type mismatch. Also, DischDate could be blank and I'm not sure how to add an IIf statement to the string to test for that in the where statement. I'm also not sure how to make sure it picks the correct record if there is more than one admit date. I would like to select the desired date record, then have the command button open the appropriate record.