I have to create a database for a one off work project and everyone has decided to use access as it is already installed on every machine. Now I'm new to access and new to databases in general so this has been a bit of a struggle. Still I'm getting there and have managed to make all the tables, set up relationships between them and create basically all the forms, but seem to have fallen at the last hurdle.
We have lots of different sites, each of which has lots of different rooms. What I am struggling with is the form for rooms. This is loaded from the site form. So site A will bring up a form with all the rooms in site A. The form can be loaded in read only, modify, or new record modes.
The problem is with the navigation buttons at the bottom. If you click new record using the navigation button then access creates a new record, but it loses the FK reference to the previous site. I have put a 'sort of' fix on this by making the FK on the form a combobox, so it can be corrected, but there are 40 sites so it isn't very elegant and isn't the behaviour anyone would expect.
To try and get around it I decided to try and build my own version of the access navigation controls, and eventually (with a lot of help from previous questions on stackoverflow) I succeeded and at the bottom of the form you can go to the first record, previous record, next record, last record, add a new record (keeping the FK reference) and even search through the loaded records in the recordset.
However all that becomes useless the moment I switch off the navigation controls. As soon as I set that to off for whatever reason access only loads the first record in the record set. So if site A has 10 rooms you only see room 1, and the controls I made (which work perfectly with navigation controls on) stop working, and furthermore the textbox I set up to mimic the '1 of 10' record number indicator changes to '1 of 1' making it clear that none of the other records are accessible.
This is really frustrating as it means I can only use my custom navigation controls by keeping Access's turned on. I don't want the access one turned on as it creates problems every time a new record is created.
So, after that long introduction, my question is: Why is access only loading the first record with navigation controls off, is there a way to stop this happening, and if not, can I just disable the new record bit of the navigation control?
Any help here would be greatly appreciated. I am sure it is a very simple thing, but googling has turned up nothing, and actually from what I have read I'm not even sure disabling navigation controls normally does this which makes the whole thing all the more depressing as this is literally the only form I don't want them on.
Thanks,
Dean
If your only reason to add your own navigation controls was that you couldn't have the FK in you rooms form filled, I would keep the access navigation controls and set the FK in the Form_BeforeInsert() trigger of your rooms forms with something like this:
Private Sub Form_BeforeInsert(Cancel As Integer)
Me!FK = forms!Sites!PK
End Sub
If you would like to keep your own navigation controls, it would be helpful, to see your code to be able to answer your question.
Related
I know this question has been ask thousands of time, but I couldn't find a direct answer for this problem.
I am a programmer, but I never bothered learning VBA since this is only a small project I am doing on the side. I would prefer only using macro's.
I currently have a parent form inside a navigation menu, which has a datasheet table which display all the information about all the customers.
http://i.stack.imgur.com/d3TdM.png
In this parent form, I have a button to allow the user to add a new customer which opens a pop up form.
http://i.stack.imgur.com/RDSvq.png
I want the save button in this pop up form to update the parent form onClose. I know the record is working since if I switch off to a different tab and come back to it. I can see the new record added to the table.
Put this on the form frm_addNewCustomer on close event
Private Sub Form_Close()
[Forms]![TheFormYouWantUpdated].Refresh
End Sub
In runtime when the forms are being created, 2 forms constantly keep appearing when I haven't programmed them to show as soon as they are created, and my system runs. I was wondering why this happened and whether there is anything to solve this? I don't think I need to show my code here since it's pretty basic and there is none for the OnCreate event.
From the main menu, use Project->Options->Forms, and remove the forms you don't want to see from the Auto-create list. (Click the >> button to move them from the left side to the right side.)
(It's worth mentioning that you can also affect the order in which any autocreated forms or datamodules are created from that dialog by just dragging them up or down in the list. Note that the first form to be created becomes the application main form, so when it is closed the application will close as well; this means that the only thing above your main form in the autocreate list should be datamodule(s) that are accessed by the main form.)
If you never want any forms auto-created, go to Tools->Options->Environment Options->Form Designer, and uncheck the very last item labeled Auto create forms & data modules at the bottom. Note that your main form will always be auto-created, as it's what controls the application's lifetime for form based applications.
By default delphi creates all the forms in the beginning. You can open the .dpr file and delete the ones that you don't need. You could also do that from the UI.
For the forms that you don't want to appear at the start of runtime, go to the properties of the form (lower left hand side) and uncheck Visible. This should do the trick
I'm creating an app and I need some help with design.
Launch Screen - I want to show 6-8 "category" buttons with labels loaded from an array ("normal" buttons from interface builder - not tab bar buttons or menu bar buttons).
Table Screen - When one of the category buttons is pushed on the launch screen, I want to show a table view with all of the items in that category.
Detail Screen - When one of the items on the table screen is selected, go to a new screen with details for the item. There will be an action button on this screen which will remove the item from the list if pressed.
My questions are as follows:
1) I don't want to show navigation buttons on the first screen. Can I still use a Navigation-Based application and hide the navigation controls on the first screen, or would it be better (easier) to create a view-based application and put a navigation controller "inside" one of the views? I'm totally open to any basic design approach suggestions you may have.
2) I've figured out how to create a sqlite3 file, add it to the project, query it, and generate the table view from the results, but I'm not sure about how to store the sqlite file in a way that will persist on the device when the user upgrades the app later. Any pointers on that?
Thanks for any help/links/documentation you can point me to. I've watched a million tutorials but none of the ones I've seen really address basic app design.
Now for Q1, both ways work fine but if you have buttons from the first screen, having a uinavigationcontroller might make it slightly easier if you plan to have back buttons on the screens after the first screen.
For Q2, to make the database persist when the user updates their app at some stage, simply keep the original database and include a new database (with a different name) with additional content, then modify your original database and import any additional content to it.
You can also do variations of that also, ie import content from old database to new database and etc. But the key is to keep the database file names different, ie add database_v1.sqlite, database_v2.sqlite and etc.
BTW don't forget to clean up any databases you won't use in future.
I am trying to find the most usable/accessible way to implement a simple form dropdown list which will sort a list of products by pice and alphabetical order.
In your opinion is the dropdown more usable when there is a button that governs its submission or when it automatically submits onchange of the dropdown?
The research I have read is both for and against such methods and there is a variery of implementations on the web so interest to hear the thoughts of the community.
Thanks in advance
As a blind computer user either method works fine. I find that having a button to click is slightly easier for me then the onchange event firing. I wouldn't say it's a big enough difference to take into account though assuming the majority of your users will not be disabled. If your targeting specifically blind users I would not use the onchange event.
So long as you do not change focus or navigate to another page when the selection changes, either approach should work. The classic example of a problem dropdown is where it contains a list of other pages on the site, and navigates as soon as the selection changes. This prevents a keyboard user from using the list; they can't browse it, and can't navigate to any pages beyond the first selection, since it's impossible to navigate past those. So in cases where focus changes or the page navigates as a consequence, having a separate action (eg. Go button, or handling enter) to cause the navigation to take place is essential. This is likely where the advice you've read is coming from.
In this case, however, it sounds as though you are just updating content elsewhere on the page, and not changing focus or doing navigation. Simply resorting existing content should be fine.
Depends on your users and their respective expectations and the context in which it's presented.
As a blanket, general statement, you should have the drop down accompanied by very obvious submission button. That is the safer approach.
If you are refreshing page data or if the focus moves away after the dropdown option is selected, you should use a button to be accessible. If you fire the event on change, blind or keyboard-only users will not be able to use the dropdown menu at all if they are on windows with ie and chrome (so added together, a majority of the people on windows). As soon as they use the arrows to scroll down and make a selection, the first option they hit will be selected and the page data will refresh or the focus will move, making it impossible for them to navigate or select the second option, third option, etc. Below is a thorough explanation with examples so you can see what I mean.
Designers definitely don't like the buttons, but if you are blind and on chrome/ie, it is impossible to use a lot of dropdowns without it. I'm guessing Jared uses firefox or a mac.
http://pauljadam.com/blog/javascript/onchange-event-on-a-select-inputjump-menu-accessibility-problems/
I have an application I'm working on, and I need the user to be able to add new "Shows", "Movements" and "Dots." These are all represented by classes. At the root of the application, all the shows are shown, the user can click on the show, see the movement in that show, then tap on a movement and see the dots in the movement. It works beautifully.
Now, I need the user to be able to add and edit these instances of these classes. The way I am thinking this will work is when the user clicks on the "Add Show" button (Or the "Add Movement", etc) a new view will be pushed onto the Navigation Controller. This works. When the button is pressed, a new instance of the show class is created, and passed to the new view controller. This also works. If the user wants to edit the show, then they will hit the edit button for the row, and the instance of the class (which already exists) will be passed to new view controller, and the user will be able to edit it (It should use the same view controller for adding and editing)
My question is, in the examples I have seen, it is always really dirty to create the editing view. The edit view is a table view with each row having some sort of control. Usually it is a UITextField, but it may be a slider, and it may be one where another view is popped, and the user needs to check one value. (This is similar to the address book application when adding and editing a contact)
Is there any way that is cleaner than just manually going in and creating a bunch of arrays to hold what custom table view cells need to be at what row? This gets very messy, very fast. I can do it this way, I just was wondering if there is a better, possibly faster way.
To my knowledge there's no structural solution to solve this. I'm afraid managing the cells with child UITextField or other controls yourself is the only method. This indeed gets dirty and painful very fast, I certainly feel your pain.
Although it doesn't exist, it would be very convenient if Apple added out of the box editing cells to the SDK, similar to the different normal cell styles. I haven't come across an open source project that addresses this issue, but it might exist.
If you do find a better/cleaner method to handle these situations, be sure to ping back.
as far as i know, editing mode is the only way to make the changes you describe (if i understood correctly). I agree that it doesn't seem like the most elegant approach.
http://developer.apple.com/iphone/library/documentation/UserExperience/Conceptual/TableView_iPhone/ManageInsertDeleteRow/ManageInsertDeleteRow.html#//apple_ref/doc/uid/TP40007451-CH10-SW19