Microsoft Access Re query after Ctrl F is used - ms-access

I have a button that brings up the find popup using the code:
SendKeys "^f", True
Currently when it finds the correct record the combo boxes do not refresh. The are dependent on one another like a tree (what is displayed in the second box depends on what you select in the first) so without a refresh the correct information is not displayed and I qould like this to be automatic with the search. I have tried:
cb1.requery
after the find popup is brought up and this did not work so I am not sure where to go from here...

Related

Finding Next Select Control on HTML page using Selenium in VB.net

On my Webpage I have three Dropdown Controls. When First Option is selected in the First Combo, the Second Combo Control Gets Populated and similarly on selecting an Option in the Second Combo populates the Third Combo Control.
Each Combo Control has a above it. Using Selenium in VB.net, I am able to find the First Combo Control and iterate through each Option Available. The Challenge I am facing is that, the label on Second and third Combo gets its text from the the Selected Option of the First and Second Combos, respectively. However, the XPath changes randomly with each option selected due to which the FindElement(By.Xpath) fails.
The example Combos are available this Link Set of Three Combos
I tried using the following VB.net Code
Dim CWEstring = "./following-sibling::select"
GE = New SelectElement(driver.FindElement(By.XPath(CWEstring)))
and
Dim GEString = "./following-sibling::select"
GE = New SelectElement(driver.FindElement(By.XPath(GEString )))
I did my research for few days but couldn't get the answer, so posting here for help.
Use the following xpath to identify the element.
1st dropdwon:
//select[#id='edit-field-select-zone2-value']
2nd Dropdown:
//select[#id='edit-field-cce-army-no-1dinjan-cwe-tid']
3rd dropdown:
//select[#id='edit-field-pm-khonsa-tid']
Please note you have to provide some wait after selecting each dropdown item to appear next dropdown on the webpage.
I Downloaded the webpage Source and Edited the code to bear minimum HTML content so that all three Combo Controls are visible and save the html content as a .htm file on local disk.
Using chrome I opened the .htm file. Then Using MS-Excel From Web under Data tab Scraped the data from the local .htm file.
Now I had all values under one Column Header name. I converted all values under column name into an array.
Using VB.net and Selenium technology, I iterated through each combo control and saved the data to a New Excel File.
More Challenges came to fore. Therefore, I used Try...Catch method to trap the error and Continue the Iterations (Loops).
And now I have all the values the way I wanted them.

MS Access: Easiest way to implement a "check all" box in a form with a datasheet subform

I have a form whose main purpose is to contain a datasheet subform (the form provides a common visual theme across the pages as well as navigation buttons and sometimes selection criteria for the subform).
One of my subforms has a check box.
The user behavior will be to:
Open this form
Filter the datasheet according to some specification
Do something off-line involving, e.g., the ten visible line items
Check the field (yes/no field) on those ten line items to indicate that it's been done
What I'd like is for the user to be able to check one box that then checks all the visible boxes.
The challenge is that it must only be the visible ones, i.e. dependent on what filters are in place.
I tried to create a checkbox in the main form labeled "Check All" which runs code something like:
me.sfrmReport.Control.reported.value = me.chkCheckAll.value
But unfortunately, this only checked the active row, not all of them. I know I could run a query on the underlying table, but it would need to replicate the user filters.
In fact, what might be even cooler would be a "Check highlighted" box that checks the highlighted rows only.
But I think "Check all" would be better.
I tried to find this, but my searching skills failed me. I'd have thought this was something somewhat common, but perhaps I'm thinking about this incorrectly. I do note that there's a sum function which automatically sums just the filtered/visible rows in a datasheet, so the notion of interacting with just the visible rows is at least somewhat standard.
Well, the check all box certainly should not be on a "row". So one would assume that say beside the combo box, you place a check all box. (can't imagine that the button or code would be place on the row(s)).
So, say beside the combo box in your screen shot, you have a button called check all.
The code behind that button would/could be:
dim rst as dao.RecordSet
set rst = me.MySubForm.Form.RecordSetClone
rst.movefirst
do while rst.EOF = false
rst.edit
rst!ResultReported = true
rst.update
rst.moveNext
loop
me.MySubForm.Form.Refresh
So above will operate directly against the sub forms data source (current filtered recordset).
I "think" from your screen shot, the top part of the form (with combo) is the main form, and the sub form you have displayed is the sub form.
So, of course you will have to replace the name of the controls I used above, and also the field name for the check box.
So the format to get that recordset is:
me.MySubFormControlName.Form.RecordSetClone
and to fire off a refresh of the sub form after the code runs is of course.
me.MySubFormControlName.Form.Refresh
Note that intel-sense should work and help you. if the code does not compile, then don't try and run it until it compiles.

VBA ACCESS - SQL statement after Print

In my DB i have a table called "PrintList" populated with a random number of records and a report called "ReportList", which is linked to "PrintList", that is used to print all the records of the table above.
EDIT: I would let the user to see a print preview in Access to check the list and then choose if print it or not, so i prefer to avoid using code to print.
Is it possible to handle the "ReportList" print event and delete all "PrintList" records after the report is printed? Right now I use a button to empty the list via SQL, but it will be more useful to empty it after printing it.
Report/section events like On Format or On Print are fired both for Print Preview and for actual printing. So the report doesn't know, and thus can't handle your requirement.
I'd use a form with buttons for Preview and Print, and delete the records when the form is closed (because you can't prevent the user from printing from the preview).
The whole requirement looks a bit strange, TBH.
Open your report in design mode.
If the properties pane on the right isnt visible, press F4 to make it visible.
In the properties pane, click on the Events tab.
Find the OnPrint event and click the little ellipses to the right of it to open a VBA window ready to accept your code for that event.

How to make a button in ssrs

There is a report contains 1000s of pages of data.Is there any way to make a button on the first page of the report so that ,if click on the button it goes to the end of the pages.
Is there any expression to be written,with out writing the vb.net code?
There is a button like that in SSRS (you can also type page number in the box and press enter):
EDIT:
You can add a bookmark at the end of your report and then make a textbox which will jump to it (textbox properties->Action->mark "go to bookmark" and select the bookmark you made. I am not sure, however, if it works well in excel.
Web viewer control, this button already exists.
I don't believe you can add a button to SSRS and export to Excel to go to last row.
You can use Excel command to go to last cell which should work.
Refer to [http://office.microsoft.com/en-ca/excel-help/excel-shortcut-and-function-keys-HP010073848.aspx][1]
CTRL+G
Displays the Go To dialog box.
F5 also displays this dialog box.
Click on "Special..." button and select "Last Cell" option and click OK
Sorry .. Tried posting images for you but not enough points to do so.
There are 2 ways of reaching the last page or the data on the last page:
Sol 1. #kyooryu has already mentioned above in his solution along with a screenshot.
Sol 2. You can freeze the header and set the display result to show the data on a single page. This way you will not have multiple pages and you can directly hit the end button from keyboard on the report manager to reach the bottom result set. Freezing the header will help you in identifying the column names.

Microsoft Access z-index property

I have a form including listboxes. I'm trying to change order of listboxes. I tried bring front or send back but they are not working in form view. I found z index property for arranging their priority. However, following codes are not working. Is this correct way to do it? Or is there any other way with or without codes to do this?
Me.Controls.SetChildIndex (Me.List0 , Me.List1)
Thanks for any help.
Without using code:
You can change the z-order by right-clicking any control and selecting "Position" then selecting either "Bring to Front" or "Send to Back."
Unfortunately, Access does not support the ZOrder method for manipulation using code. Microsoft Forms does support the ZOrder method which can get confusing when it comes up on Access Help.
As I reread your question, I wonder if you're talking about tab order. If so, right-click and bring up "Properties," select the "Other" tab, then adjust the "Tab Index" property. Also, make sure that the "Tab Stop" property immediately beneath is set to "Yes." In code you would use FormName.ControlName.TabIndex=0 to set a control to the first tab position.
Hope this helps!
Reference: Personal experience (and hours of frustration)
docmd.RunCommand acCmdDesignView
forms("form1").Controls("text0").inselection=true
docmd.runcommand acCmdSendToBack '(or docmd.runcommand acCmdBringToFront)
docmd.RunCommand acCmdFormView
Also, ZOrder is still not supported by Access 2016. As such, I have not yet learned a way to write a single line of code that puts a control in between two others, I just send the middle to back and then the back to back, and expand this to however many controls have to overlap.
And last, even though you use the VBA for ZOrder, your English does ambiguously sound like forms("form1").Controls("text0").TabIndex=34, which as Olek suggested, is also quite simple.
I did this on one Access form: The control I wanted on top I just cut and pasted it back to the form, then moved it over the one I wanted to cover. In this case, it was a text box (bound), almost the same size as a combo box (unbound); only the dropdown of the combo extended a bit to the right of the text box, so when the form was loaded the text box looked like a combo box. The user clicked the dropdown and made a choice and the record(s) pulled up were reflected in the text box.