MS Access Forum / New Users / April 2005
Access combo box-show name, not ID, in table?
|
|
Thread rating:  |
write on - 22 Apr 2005 01:01 GMT I have read through some old posts relative to my question, but came away three times as confused and intimidated. Here is a simple and common example of the equivalent of what I want to do:
Let's say I have a Suppliers table and form, and a Products table and form. On the Products form I want to create a combo box for the Supplier field that will use the Supplier table as a source to look up data. I want the combo box to show me a list of names (not ID#s), AND I want to store Supplier NAMES (not ID#s) in the Products table. When I look at the table, I want that info (Supplier NAME) to just be there, without having to fish through subdataforms, separate queries, or reports.
Is there a REASONABLE way for a non-programmer to accomplish this?
I notice that the sample Northwinds database shows names (as opposed to IDs) in tables routinely. I have carefully studied design, field properties, and relationships until my eyes glazed over. But for the life of me I cannot duplicate this.
Then there's the question of expressions vs. SQL statements. How do I tell the difference? How do I know which I need? How do I learn to write either one?
I am using Access (in Office) 2003--with an Idiot's Guide for Access 2000. (That's where I started, but didn't get far. This time I mean it--but I'm beginning to wonder if I'm crazy.)
Wayne Morgan - 22 Apr 2005 01:11 GMT Yes, you can set up the equivalent of a combo box in the table. However, tables are just to store data. They shouldn't be used by regularly going to the table. As you indicate, the combo box on the form does show the name and it is possible to have the name show in the results of a report with just the ID being stored in the table.
What you are looking for is setting up the Lookup tab for that field in the table. You would set it up just as you do the combo box on the form. The problem with doing this is that if you do look at the table, what you see isn't what is really there and this can cause confusion and problems later.
See item #2 at this link. http://www.mvps.org/access/tencommandments.htm
 Signature Wayne Morgan MS Access MVP
>I have read through some old posts relative to my question, but came away > three times as confused and intimidated. Here is a simple and common [quoted text clipped - 29 lines] > (That's where I started, but didn't get far. This time I mean it--but I'm > beginning to wonder if I'm crazy.) write on - 23 Apr 2005 15:45 GMT Thanks, Wayne.
OK, you've convinved me to do things the "normal" way--a rarity for me. That list of the Evils of Lookup Fields is pretty scary, all right. Between you, the Ten Commandments you linked me to, and the other response to this post, some (not all) of my "Why?" questions have been answered. (See my response to Albert Kallal).
I love the Ten Commandments, but I don't understand all of them. To wit:
#4 What's a "procedure"--as in "write comments in your procedures and explain each variable"? #5 What's error handling? #6 What does it mean to split a database? #9 I'm not even going to touch it. #10 I dread to ask, although this sounds like the really important one-- *Back-up my database? I regularly backup my documents (to a zip disk). I assumed my Access files (databases) would be included in that. Am I wrong? Does this mean something different? *Work only on the Production Database? What? How? *Prototype copy? What? How?
Thanks for your help.
> Yes, you can set up the equivalent of a combo box in the table. However, > tables are just to store data. They shouldn't be used by regularly going to [quoted text clipped - 43 lines] > > (That's where I started, but didn't get far. This time I mean it--but I'm > > beginning to wonder if I'm crazy.) Fred Boer - 24 Apr 2005 03:58 GMT Dear "write on":
While I am not an expert like Wayne or Albert, perhaps I can suggest some answers:
> I love the Ten Commandments, but I don't understand all of them. To wit: > > #4 What's a "procedure"--as in "write comments in your procedures and > explain each variable"? A procedure is a piece of programming code. Access uses Visual Basic for Applications as its programming language. A procedure might look like this:
Private Sub Form_Open(Cancel As Integer) On Error GoTo Errorhandler Me.cboAuthor.SetFocus ExitPoint: Exit Sub Errorhandler: fncWRMSErrMsg Err.Number, Err.Description Resume ExitPoint End Sub
This procedure, which runs when a form is opened, sets the focus to a combobox on the form called "cboAuthor".
> #5 What's error handling? Error handling is programming code which deals with errors that might occur with your program. In the procedure above, the lines 2,4,6,7, and 8 are error handling code.
> #6 What does it mean to split a database? To actually have two MDB files: one which has only data tables, (the back end), and one with all the forms, queries and reports (the front end). The front end links to the tables in the back end. Usually the back end is on a server, and the front end on individual workstations.
> #9 I'm not even going to touch it. > #10 I dread to ask, although this sounds like the really important one-- > *Back-up my database? I regularly backup my documents (to a zip disk). I > assumed my Access files (databases) would be included in that. Am I wrong? > Does this mean something different? You back up a database by copying the database file to a backup location. No one should be using the file when this is done. If you mean that you copy the files in the folder "My Documents" to a zip disk, you may or may not be backing up your Access database, depending on whether those files are in that folder.
> *Work only on the Production Database? What? How? > *Prototype copy? What? How? Production Database=finished database application actually in use. Prototype=unfinished database application
HTH Fred Boer
> Thanks for your help. > [quoted text clipped - 45 lines] > > > (That's where I started, but didn't get far. This time I mean it--but I'm > > > beginning to wonder if I'm crazy.) write on - 24 Apr 2005 14:40 GMT Fred,
Most of that is pretty scary, but thanks for the enlightenment. At least it tells me what I need to worry about, and what I don't. That's helpful.
write on
> Dear "write on": > [quoted text clipped - 123 lines] > I'm > > > > beginning to wonder if I'm crazy.) Jeff Conrad - 24 Apr 2005 04:55 GMT > I love the Ten Commandments, but I don't understand all of them. To wit:
> #6 What does it mean to split a database? Just to add some additional information to Fred's excellent response, here are some great links on splitting databases which should help explain the purpose:
http://www.granite.ab.ca/access/splitapp/index.htm
http://allenbrowne.com.au/ser-01.html
http://www.access-experts.com/default.aspx?selection=TutorialSplitDB&sm=18
http://www.access.qbuilt.com/html/gem_tips.html#SplitDB
How to manually split a Microsoft Access database in Access 2002 or in Access 2003: http://support.microsoft.com/kb/304932/
-- Jeff Conrad Access Junkie Bend, Oregon
Albert D. Kallal - 22 Apr 2005 02:40 GMT As others mentioned, the WHOLE idea of relational database system is hat you only need to store the id field, and then the rest of the fields (like supple name) can then be viewed.
The way the northwind works is that the id is stored, but the form (or sub-form) is based on a query. When you set the id, then the name etc magically will appear!. Those queries need to be left join queries..
Also, it is not clear:
> I want the combo box > to show me a list of names (not ID#s), AND I want to store Supplier NAMES > (not ID#s) in the Products table. what do you mean list of names? do you mean suppler names? or do you look up a name..and what the suppler name to appear? (I guess you are not clear on name vs product name...or do you mean one and the same?).
> When I look at the table, I want that info > (Supplier NAME) to just be there, without having to fish through > subdataforms, separate queries, or reports. Yes...you build query to do this. You then build combo box on the form that displays that returns the id..and this comb box can search/display by any column you want..but you always still store the id.
> Is there a REASONABLE way for a non-programmer to accomplish this? You can use a query to do the above. Just make the combo box return the "id"...and make sure the query has as many (or all) fields from the other table. once done, then no code at all needs to be written here...
 Signature Albert D. Kallal (Access MVP) Edmonton, Alberta Canada pleaseNOOSpamKallal@msn.com http://www.members.shaw.ca/AlbertKallal
write on - 23 Apr 2005 17:17 GMT Thanks for the response.
You wrote,
> As others mentioned, the WHOLE idea of relational database system is hat you > only need to store the id field, and then the rest of the fields (like > supple name) can then be viewed. First, viewed how? I find subdatasheets to be too cumbersome. (I am visually impaired, so the less I have to scan through and pick out the better.) Is there a better way to link to the Supplier Table that I'm missing? I guess my reasoning went something like this: Queries and reports are useful for sorting or displaying data in a format that's not readily available in a table (especially using fields from more than one table). But if I can set up a table to show exactly what I want to see, why not do that, rather than bothering to write a query, which I then have to go to and run just to see what I want? Put another way, why duplicate the table with a query, if I can just have the table show what I want in the first place? (Answer: Because that ain't so easy after all!)
But it turns out that I apparently have to write a query anyway to put the info in the table the way I want it. Still, that saves navigating to and running another object every time I want to see the info. But then, I could just open the query, rather than even opening the table, which I guess is the point after all. Sorry I'm rambling; I'm "thinking out loud" here.
You say:
> The way the northwind works is that the id is stored, but the form (or > sub-form) is based on a query. When you set the id, then the name etc > magically will appear!. Those queries need to be left join queries.. I'm sorry, but I have to ask: If the normal and recommended way is to store and display the [Supplier] ID# in the [Products] table, WHY is the sample database written to display [Supplier] Names in the [Products] tables, which is the ABnormal and NOT recommended way? This is confusing to us newbies (at least this newbie), who presumably use the sample to help us understand the normal way to use a database.
Also, I'm afraid I don't quite follow. 1) Are you implying that I should be looking at the form within the table somehow? 2) Are you saying that the combo box in the form, which displays Supplier Names to choose from for data entry, but stores the ID in the table, is itself a kind of query? 3) I don't understand what you mean by "set the ID." 4) I guess I'm not clear yet on join queries, and I'm not sure which queries you are referring to here.
You asked:
> Also, it is not clear: > > I want the combo box [quoted text clipped - 4 lines] > a name..and what the suppler name to appear? (I guess you are not clear on > name vs product name...or do you mean one and the same?). Sorry I wasn't clear. What I had in mind was this: I would use a Products Form for data entry, to feed a Products Table. The Products Table would have a Supplier field. The corresponding field on the Products Form would be a combo box (or list box, if you prefer). In order to enter the Supplier to go with a particular product, I would use this combo/list box (on the Products Form) to choose the Supplier Name (so I don't have to memorize all Supplier ID#). I understand the norm is to then store the Supplier ID in the Supplier field, in the Products Table. What I originally intended, however, was to store, or at least display, the Supplier Name (rather than ID) in the Products Table, as well as displaying it in the form. My thinking was, "If I view the data in the Products Table, what good is the Supplier ID to me, unless I have memorized which Supplier belongs to which ID?" But I guess I'm SUPPOSED TO view the data either one record at a time in a form, or in a query, or in a report. The table is apparently not MEANT for viewing; it's just a storage closet from which to pull out whatever I want to view somewhere else. Did I finally get it?
I guess most of this is a moot point if I just stick to the normal way of doing things. Thanks again for your help.
> As others mentioned, the WHOLE idea of relational database system is hat you > only need to store the id field, and then the rest of the fields (like [quoted text clipped - 26 lines] > "id"...and make sure the query has as many (or all) fields from the other > table. once done, then no code at all needs to be written here... Fred Boer - 24 Apr 2005 03:46 GMT Dear "write on":
It caught my eye that you say you are visually impaired. I teach at a school for blind and visually impaired students. I have taught computer courses involving Access to totally blind and low vision students. If you have problems with Access related to your vision, perhaps I might be of assistance; or, perhaps I can learn from you!
Fred Boer
> Thanks for the response. > [quoted text clipped - 101 lines] > > "id"...and make sure the query has as many (or all) fields from the other > > table. once done, then no code at all needs to be written here... write on - 24 Apr 2005 15:39 GMT Dear Fred,
Wow! That's pretty cool!
I use ZoomText for screen magnification, and I love it. The downside is, it doesn't play well with my graphics card (or visa versa), so mouse control can be a hassle. The mouse can be difficult to position exactly where I need it; it's hard to control highlighting of text, and may not stop highlighting when I let go of the mouse button; mouse pointer may jump around the screen out-of-control.
This has led me to learn and use keyboard shortcuts as much as I can. But that presents its own set of challenges. First of all, There are cases where the ZoomText hotkeys conflict with Microsoft shortcuts. ZoomText always wins. Then I have to do the MS function another way--usually ALT+menu keys. But even that doesn't always work. (Case in point: If I open a new message window in Outlook Express, there is an address book icon next to the "To:" box label. The idea is, you click that icon to open your address book and select an address to put in the "To:" field. I cannot find a way to open that icon without a mouse. I cannot even get it to receive focus so I can try to open it. And this function can't be done with ALT+menus either. Do screen readers have a way around this?)
Receiving focus is often a problem when trying to navigate. ZoomText has a function that lets me ALT+TAB through all open windows, until I get to the one I want. But the window I stop at doesn't always receive focus the way it should, so that my next keyboard command will work there. I particularly have trouble with Outlook in this regard.
Navigating within a window is usually a pain. The F6 key doesn't work most of the time (to move between panes) the way MS shortcut key lists say it is supposed to, and I don't even know why. I can't even find ZoomText conflicts to explain that. There are certain areas of the Outlook main window, for example, that just can't be had without a mouse.
Internet Explorer is a nightmare without a mouse. I can't even TAB or F6 out of the menu bar/toolbar area, into the actual web page. This is where MS MouseKeys comes in handy. I can use keys to move and click the mouse; once you get used to it, control is much better than handling the mouse, although it's slower. (See Accessibility Wizard in Control Panel. You can also adjust the thickness and blink rate of the cusor.) ZoomText does have the Web Finder feature that works with IE. That is useful, if I am determined to use the keyboard just on principle, but it is more cumbersome and time-consuming than using the mouse.
As for Access and keyboard shortcuts--well, I haven't even gotten that far yet. Just getting comfortable with Access itself is all I can handle right now. The shortcut learning curve will have to wait. And I'm leary of it, because I supsect all the navigating between multiple objects and views will be really hairy. Again, the ALT+TAB does help for switching windows. But receiving focus...? I don't know.
Do you work with ZoomText much? Got any tips for me?
write on P.S. Should we change the subject, and/or move this discussion to a different forum? Can we? Will "Notify me of replies" work if we do?
> Dear "write on": > [quoted text clipped - 141 lines] > other > > > table. once done, then no code at all needs to be written here... Fred Boer - 24 Apr 2005 21:02 GMT Dear write on:
I'm at home today, and can't really respond appropriately to your message, but I will post back tomorrow from work (where I have Zoomtext and can try to reproduce the example you mention...). Chat more tomorrow! :)
Fred
> Dear Fred, > [quoted text clipped - 199 lines] > > other > > > > table. once done, then no code at all needs to be written here... Fred Boer - 25 Apr 2005 18:17 GMT Hi:
Ok, well, I am at work now (my lunchtime...). What version of Zoomtext are you using? Have you contacted AiSquared about your graphics card incompatability issue?
I *still* can't try to reproduce your issue with Outlook Express, since the school workstations (which have Zoomtext) don't have Outlook Express, and my computer (which has Outlook Express) doesn't have Zoomtext. I hope to grab the systems officer and install Zoomtext this afternoon. Then I can try to reproduce the problems you describe.
> As for Access and keyboard shortcuts--well, I haven't even gotten that far > yet. Just getting comfortable with Access itself is all I can handle right Yes, well, Access has a steeper learning curve than Excel or Word. You have to learn a bit about "normalization" and other things before you can start setting up an effective Access application. The "10 Commandments" were meant to help beginners avoid certain pitfalls, but I suppose they can be confusing.
One thing I will add to other responses, is that you really must avoid working directly with tables. The general concept is that you set up the tables, but you do all your data entry/editing only through forms. This has an advantage for you, btw, in that you can design the forms with whatever font size you want - so, if you prefer a 24 point Arial font for visual comfort, this is no problem.
I have many students that use Zoomtext. I have explored the program, but, I am not blind or low vision, so I don't use it regularly. However, my students can often answer questions I might need answering, and I can experiment myself if necessary. As I say, I'll grab an installation this afternoon, so that I can play with it on my own machine.
> P.S. Should we change the subject, and/or move this discussion to a > different forum? Can we? Will "Notify me of replies" work if we do? If you wish, feel free to email me privately. The "reply to" email address for this post will give you a "munged" copy of my email address. Just remove the "NO" and "SPAM" to derive my actual email address. Revealing an un-munged email address in newsgroups is a surefire way to be inundated with spam....
I think as long as we are even peripherally dealing with Access this forum will be ok. If we want to move more exclusively into Zoomtext, we might want to move. I'll have a look around for a Zoomtext oriented newsgroup...
Looking forward to chatting more with you...
Fred
write on - 26 Apr 2005 01:53 GMT Dear Fred,
I was running ZoomText 8.12.2.2. Your question reminded me to check for updates, so I just downloaded 8.13.0.6.
I think I discussed graphics cards with AiSquared tech when I was having a problem with a driver update. The tech was using the same card I have, I think, but had no problems. I think my card might be just plain quirrely, but I can't get any tech support for that. I never know when I start up whether my display is going to be nice and sharp and clean, or too blurry to look at. There's no rhyme or reason to it. But I have tested my graphics with and without ZoomText, and there is a definite problem with ZT running. I've even had my mouse pointer up and disappear a couple of times. The first time, I was so glad I knew how to close programs and shut down from the keyboard. The second time, I discovered that if I disable ZT, the pointer comes right back.
Access and shortcuts: Try to create a new query in Design View. How do you drag and drop the fields from the Table list to the grid without using the mouse? Then navigate to the sort field; now open the drop down list of choices. Finish the grid and save your file. Now you want to close that desing window. The first--andlast--time I tried to do something like that, I opened the window shortcut menu (ALT+SPACEBAR
> Hi: > [quoted text clipped - 46 lines] > > Fred Fred Boer - 26 Apr 2005 13:57 GMT Hi!
Well, if AiSquared tech support couldn't solve the graphics card issue, I don't think there is anything I can suggest. However as far as the Access shortcut keystrokes goes:
Dragging and dropping to the design grid issue:
You don't need to drag and drop here. Just navigate to the top of the column in the design grid. As you enter, a dropdown arrow is displayed. Press F4 and you will get a dropdown list of all available fields. Simply select the field you need.
Closing design view window:
To close the design window, try Ctrl-F4.
HTH Fred
> Dear Fred, > [quoted text clipped - 93 lines] >> >> Fred write on - 26 Apr 2005 16:51 GMT Dear Fred,
I don't even know what else I was going to say when my post went POOF, except that one time I tried to close a design window with shortcuts, and ended up somehow closing the whole Access program-along with a whole bunch of object windows I had open.
Your Access keyboard shortcuts sound workable. It may be a while before I mess much with that, but your help will give me a good head start, and more courage to try. Thanks.
A ZoomText newgroup would be nice, except that you'll then have to teach me how to use a newsgroup! I'm clueless. I know they exist, and that I can theoretically use them in Outlook Express (which I currently use for email) or in Outlook (which is where I plan to shift my email soon), but that's all I know.
Thanks,
write on
> Hi! > [quoted text clipped - 113 lines] > >> > >> Fred Jeff Conrad - 26 Apr 2005 17:01 GMT > A ZoomText newgroup would be nice, except that you'll then have to teach me > how to use a newsgroup! I'm clueless. I know they exist, and that I can > theoretically use them in Outlook Express (which I currently use for email) > or in Outlook (which is where I plan to shift my email soon), but that's all > I know. A Google search revealed several newsgroups you may find of interest:
http://groups-beta.google.com/groups?q=zoomtext
 Signature Jeff Conrad Access Junkie Bend, Oregon
write on - 28 Apr 2005 19:34 GMT Thanks, Jeff. I linked over there and bookmarked it. I will check it out when I have a chance, but I'm in the middle of too many things right now.
> > A ZoomText newgroup would be nice, except that you'll then have to teach me > > how to use a newsgroup! I'm clueless. I know they exist, and that I can [quoted text clipped - 5 lines] > > http://groups-beta.google.com/groups?q=zoomtext Jeff Conrad - 28 Apr 2005 20:06 GMT > Thanks, Jeff. I linked over there and bookmarked it. I will check it out when > I have a chance, but I'm in the middle of too many things right now. You're welcome, glad to help. Don't hesitate about taking Fred up on his offer for off-line assistance. He really knows this stuff.
 Signature Jeff Conrad Access Junkie Bend, Oregon
Fred Boer - 26 Apr 2005 17:51 GMT The Access shortcuts should work, try them when you get to that point...
Well, I don't know if I have to "teach you to use a newsgroup"! That is exactly what you are doing now... This is a newsgroup, and you and I are posting messages in the newsgroup. So... you already know how to use a newsgroup.. you just didn't know that you did!
I see Jeff has found a suitable newsgroup for Zoomtext issues. Certainly if you have Access related questions, you can post here. I expect you will have better luck in, perhaps, comp.speech.users for adaptive technology questions. Even better, perhaps would be AiSquared's own forums which you can get to via the following link:
http://www.aisquared.com/forums/index.php
Good Luck! Fred
> Dear Fred, > [quoted text clipped - 21 lines] > > write on write on - 28 Apr 2005 20:16 GMT Fred,
>The Access shortcuts should work, try them when you get to that point... I did start using the shortcuts, like typing in a box the first letter or two and letting it fill in. Neat.
> Well, I don't know if I have to "teach you to use a newsgroup"! That is > exactly what you are doing now... This is a newsgroup, and you and I are > posting messages in the newsgroup. So... you already know how to use a > newsgroup.. you just didn't know that you did! Fascinating. But how do I set this up to use it in Outlook Express or Outlook, especially with that dreadful-NET.Passport-sign-in-business-which-I-hate-so-passionately (Microsoft, are you listening???)? And is there a difference between a newsgroup and a chatroom?
> I see Jeff has found a suitable newsgroup for Zoomtext issues. Certainly if > you have Access related questions, you can post here. I expect you will have > better luck in, perhaps, comp.speech.users for adaptive technology > questions. Even better, perhaps would be AiSquared's own forums which you > can get to via the following link: I will check out both your and Jeff's ZoomText newsgroup suggestions. They look interesting.
> The Access shortcuts should work, try them when you get to that point... > [quoted text clipped - 39 lines] > > > > write on Fred Boer - 30 Apr 2005 17:49 GMT Hi!
Whoops! I was being a little OE-centric here, and forgot that many people use web based newsgroup readers. How to set up OE as a newsreader is off topic here, but I'll outline the basics. If you have problems, just email me privately, and I'll walk you through it.
To use OE to access newsgroups:
1. Go to Tools>Accounts. Click on "Add>News".
2. Enter a display name.
3. Enter an email address: NOTE! Do not enter your real email address, since these addresses might be harvested for spam. You should "munge" your email address, i.e. put spurious words in that your address to foil spammers. Mine, for example, is fredboer1@NOyahooSPAM.com; see how that works? Easy to determine the real address, but machines might be foiled.
4. In the "News (NNTP) Server" box, enter" news.microsoft.com
5. Leave the "Server requires me to login" checkbox empty
6. Click "Finish"
7. When it asks if you want to download newsgroups, click "yes"
8. Scroll through the list of newsgroups and "Subscribe" to those you wish to use, for example, this newsgroup is microsoft. public.access.gettingstarted
9 The click on "Go To"
10. Voila: You are using OE to read the newsgroup..
Note: This will set up OE to use Microsoft's newsgroup servers, which houses only Microsoft newsgroups. To use all the newsgroups on the Internet, you need to contact your Internet Service Provider and obtain the name of their newsgroup server..
Newsgroups and chat rooms are different things. Chat groups provide for real-time messenging. Newsgroups allow you to post and read messages when you wish. In public newsgroups, by the way, the messages are available to everyone, and, since most newsgroups are archived, messages will be easily searchable and readable by anyone. So you might want to be careful about what you post: remember, what you say in a newsgroup will be available to anyone on the Internet for all time! (or until the collapse of our civilization! ;).
HTH
Fred Boer
> Fred, > [quoted text clipped - 66 lines] > > > > > > write on Fred Boer - 26 Apr 2005 17:56 GMT Other possibilities:
http://groups.yahoo.com/group/zoomtext/
http://www.magnifiers.org./
Cya! Fred
> Dear Fred, > [quoted text clipped - 163 lines] >> >> >> >> Fred write on - 26 Apr 2005 01:55 GMT Ok...So I'm typing away, and all of a sudden look up and see that my post has been sent, and I'm "Done!" What???
I need to deal with this later. GRRRR.
> Hi: > [quoted text clipped - 46 lines] > > Fred Fred Boer - 25 Apr 2005 20:01 GMT Well, looked at three things you mention:
Outlook Express, "To" button issue: It is in the menus: Alt-T,R
You say "ZoomText has a function that lets me Alt-Tab...". Alt-Tab is a Windows shortcut keystroke. If you simply hit Alt-Tab it cycles to the next open window. If you hold the Alt key, you can tab through the list of open windows to pick the one you want.
When I open Internet Explorer, I am placed on the web page and I can simply tab through all the links. Seems to work the same with or without Zoomtext running...
Cheers! Fred
Albert D. Kallal - 25 Apr 2005 07:03 GMT > But then, I could > just open the query, rather than even opening the table, which I guess is > the > point after all. Sorry I'm rambling; I'm "thinking out loud" here. Correct. And, in fact, if you do things right..then you will open a nice form, or whatever. Think of using a application...you don't want to "guess" what table to open etc...but provide a nice menu that opens up a nice form. Users don't care about tables...and stuff like that. Of course..now that you are starting to wear the developers hat..then a different view of things needs to be taken.
> I'm sorry, but I have to ask: If the normal and recommended way is to > store and display the [Supplier] ID# in the [Products] table, WHY is the > sample > database written to display [Supplier] Names in the [Products] tables, > which is the ABnormal and NOT recommended way? This is confusing to us > newbie's Ah, the got the above wrong!!
>If the normal and recommended way is to store > and display the [Supplier] ID# No, the normal and recommend way is to start the ID, but display the suppler name!!! Your users will NEVER EVER see the internal ID. So, store the id, but display the suppler name.
To make such a control on a form, you simply use the wizard, and drop in a combo box into the form. The wizard will guide you thought the rest of this process..but just make sure the ID is the first field you select for the combo box..and the 2nd field the "text description", or supplier name in this case. The result will be a combo box that searches, and displays by suppler name..but SAVES THE ID in a appropriate (long integer) field. Ms-access will thus do (solve) this common solution to your problem.
> Also, I'm afraid I don't quite follow. 1) Are you implying that I should > be > looking at the form within the table somehow? For you end users, you most certainly do want a nice form, and a nice comb box solves this for you.
However, if you must display and "open" the data table directly (which is not a good idea for end users), then you have to use the query builder, and join in those additional fields from the suppler table that you want. And perhaps you want a few more then just the suppler name to be available in this query. Once you make this query, you save it, and then as you stated open this query in place of the table..and you will see the "text" suppler name in the table, along with any other fields that you want from the "other" table.
2) Are you saying that the
> combo box in the form, which displays Supplier Names to choose from for > data > entry, but stores the ID in the table, is itself a kind of query? It does in fact behind the scenes use a query. However, just let the combo box wizard make it for you. You can take a look at the settings for the combo box, and you will note that some query is used "inside" the combo box...but you don't have to make this query if you use the wizard.
3) I don't
> understand what you mean by "set the ID." 4) You got the above idea right. When I said "id", I meant suppler id. However, for consistency sake, 100% of my tables use "ID" as the key field, and then I never have to "guess" as what the primary key id used for a table is.
> The table is apparently not MEANT for viewing; > it's just a storage closet from which to pull out whatever I want to view > somewhere else. Did I finally get it? Yes...and of course you "can" use a query in place of a table anyway..and it will/can display data from other tables.
 Signature Albert D. Kallal (Access MVP) Edmonton, Alberta Canada pleaseNOOSpamKallal@msn.com http://www.members.shaw.ca/AlbertKallal
write on - 26 Apr 2005 17:58 GMT Dear Albert,
But I tried started with the Control Wizard, and it dsplayed the (Supplier) ID instead of the name in the (Products) table. That's when I started taking Northwinds apart with a fine-toothed comb. I never did figure out what was wrong with mine. Sigh.
I won't have time to mess with this again until tomorrow. I'll try again, this time with a new database that I haven't had time to screw up yet, and following your instructions instead of the Idiot's Guide. I'll let you know.
Thanks,
write on
> > But then, I could > > just open the query, rather than even opening the table, which I guess is [quoted text clipped - 72 lines] > Yes...and of course you "can" use a query in place of a table anyway..and it > will/can display data from other tables. BruceM - 26 Apr 2005 19:37 GMT I'm just going to chime in here, realizing that I am running the risk of repeating something. There are occasions when you will want to store the name. For instance, if you need to know a person's name at the time they created a record you would store that person's name. We use a database to create a sort of certificate, and it needs to contain the person's name at the time they signed the certificate. If, however, you need to keep track of an account through several changes of company name you will want to store the ID. Think of your social security number, which is associated with you no matter what name you use. It is your primary key, so to speak, with the Social Security Administration. If, however, you want an account to remain through a name change, you MUST store the primary key field. For instance, you would want payments into the company's 401(k) plan to be associated with you if you change your name, without having to alter every payroll record containing your old name. Try using autoform (a sort of lightning bolt icon on the toolbar) to make a form based on a table. It will give you an idea how a form can display the data. Now use the Combo Box Wizard to create a combo box to find a record based on what you select. A combo box (or a text box, etc.) can be bound or unbound. If it is bound it means that the record source is linked to a field in an underlying table. If you created a combo box with the wizard, right click the combo box and select Properties. Click the Data tab and look at the Bound Column, which is probably 1. Now click on the Format tab and look at the column widths, which will be 0";1.5" or something like that if you followed the suggestions in the wizard to hide the key field. Now click Row Source on the Data tab, and click the three dots. What you are looking at could be called the row source query (maybe that IS what it's called). Now that you have a form, you can make a query based on the form's Record Source table. Sort by something convenient in the query design grid, save the query, then go back to the form and change its record source from the table to the new query. It will be just the same as before, except the records will be sorted. You can also use a query to combine first name and last name, and things like that. Once you have done something like that you can add the field to the form without having to store it as you would if it were a table field. I'm not trying to be comprehensive here, just trying to add a piece to the puzzle if I can. I
> Dear Albert, > [quoted text clipped - 87 lines] > > Yes...and of course you "can" use a query in place of a table anyway..and it > > will/can display data from other tables. write on - 28 Apr 2005 19:26 GMT OK, here is what I did that finally worked...almost.
I created the table (actually, two tables) in design view first. I created a combo box in the table, where I wanted the (in this case) CategoryName, from the previously created Category Table. I used the expression builder to add the CategoryID and CategoryName fields to the grid. (An aside: In the field list, the first choice is an "*". I have found instructions for how to use it, but I can't figure out what it does, or when/why I should or shouldn't use it. Will someone please educate me?) I set the Bound Column to 1, and the Column Count to 2. I set the Column Width for the first column (CategoryID) to 0". I switched to table view, and verified that this worked as desired: I could use the drop down combo box list to select the CategoryName I wanted for each record. When the table was complete, I used AutoForm to create a form based on that table, and it put the combo box in for me. I don't remember if I had to tweak the combo box properties in form design--maybe. I did this for two sets of table-and-form.
With those in place, I started using the form to enter data in the first table. I was happy as a clam, until... I came to a category field where I wanted to enter something that wasn't in my list (from Category Table). Since this was a combo box, that shouldn't be a problem, right? Wrong. Access wouldn't let me enter a value that wasn't on the list. I went to design view to figure out why. I looked at properties for the combo box. I noticed that "Limit to List" was marked "Yes." I thought setting that to "No" would solve the problem. But Access said it couldn't change that setting right now, because the first visible row was not equal to the bound column. The message instructed me to adjust the column width appropriately, then change the setting. But if I put a column width, other than zero, in for the Bound Column, I was back to getting ID#s, instead of Names, to choose from in my combo box. So what's the point of having a combo box, if you can't enter a value that isn't in the list? Does this only work when you have manually typed in the list, and not when you are picking it from a table?
The other issue I have come across is wanting to merge these two tables together. I found an example of roughly want I want in Northwinds (sample database--the Union Query "Customers and Suppliers by City," with a "Relationship" field to show whether the Name is a customer or a supplier), but it looks as if it has to be done in SQL, and I don't think I'm up to all that.
I have these two tables with closely related, but not quite the same, groups of data. About half of the fields are the same, or close enough. One field could be accomplished with a set of three checkboxes to choose from: the first two (choose one) would apply to Table 1 item; the third box would apply only to Table 2 items. There is one field that is not quite the same thing, but the format (hyperlink) is the same, and I could use one field for both groups (may or may not be an email address for Table 1 items, will always be a website URL for Table 2 items). Then there are 3 or 4 fields that pertain only to Table 1 items.
It occurred to me that I might try merging the two groups of data into one table and form that used all the common fields. Then, use a subform for the fields that apply only to one group, and save that in a separte table, much like Northwinds' Orders and Order Detail tables, with a Order Detail subform in the Orders form. So which is easier--a union query in SQL, or deciding which fields to put in which table and setting up a subform? The latter still uses two tables, not to mention a complicated subform. Then I still have to write the query or queries I need. Maybe I'm better off with what I have for now. Thoughts, anyone?
> > But then, I could > > just open the query, rather than even opening the table, which I guess is [quoted text clipped - 72 lines] > Yes...and of course you "can" use a query in place of a table anyway..and it > will/can display data from other tables. BruceM - 29 Apr 2005 15:10 GMT For the combo box issue, on the combo box property sheet click the Event tab. One of the events is On Not in List. You could use that to open a data entry form or something like that. I am a bit puzzled about something. When you say you created a combo box in the table, are you saying that you created one on the form that is bound to the table? That seems to be the drift of the rest of that section of your question. On the other issue, when you speak of combining the tables. I expect you mean with a query and not by literally making one table out of two. The details would be much easier to address if you could describe the purpose of each table, and what you hope to gain by combining the information. Do want to list by city, or what exactly? In describing a table, do so in one sentence without using the word "and". Don't get carried away with this; address and phone number are part of personal information, and can be together in a table, but customers and suppliers do not belong in the same table, even if both have addresses and phone numbers. Instead, the tables are related to each other. A query can bring tables together to organize information, but that is very different from combining two tables into one. There are legitimate reasons for doing that, but I don't think your situation is among them.
> OK, here is what I did that finally worked...almost. > [quoted text clipped - 132 lines] > > Yes...and of course you "can" use a query in place of a table anyway..and it > > will/can display data from other tables. write on - 29 Apr 2005 20:41 GMT on the combo box property sheet click the Event tab.
> One of the events is On Not in List. You could use that to open a data > entry form or something like that. Huh? I was already in a data entry form when the problem occurred. Are you saying I need to nest another data entry form into the one I already have, in this Event List thing? And wouldn't I just have the same problems with properties? How would this help?
> I am a bit puzzled about something. When you say you created a combo box in > the table, are you saying that you created one on the form that is bound to > the table? That seems to be the drift of the rest of that section of your > question. No, I created the table first. In the Data Type field, I used the Lookup tab (properties, at the bottom) to create a combo box in the table. When I was done creating the table, I used Autoform to create the form. That combo box I created in the table automatically translated into a combo box on the form. Then I switched to the form to do data entry, and that's where the problem happened.
> On the other issue, when you speak of combining the tables. I expect you > mean with a query and not by literally making one table out of two. The > details would be much easier to address if you could describe the purpose of > each table, and what you hope to gain by combining the information. OK, I'll tell you what I'm up to, but you have to promise not to laugh or be disgusted. Remember that I did this mostly for learning curve and practice before I tackle my real database--not because this had to be done in a database, or done at all.
In describing a table, do so in one
> sentence without using the word "and". The other reason I haven't been specific is that it's really not that easy to describe. It's a non-standard thing that only I would even think of doing. (OK, I love to play with data. There; I admitted it. And I think in lists, categories, charts, and graphs.)
Part of the problem, I suppose is that I'm trying to serve two purposes with one database. Why? Because of the overlap in data records. Same basic data to start with, adding different sets of particulars and doing different kinds of sorts. Purpose 1: Keep track of all the Email newsletters (full info or links) I receive and all the websites I want to check regularly to read. I want to sort these both by Category and by DoDay (the day(s) of the week on which I will process these messages and check these websites). Purpose 2: Have a list of all the Email senders, and online accounts (telephone autobill, bank, etc.), and their addresses, websites, and instructions I need to notify them should my Email address change (could happen).
As it stands now: Table 1: Email Subscriptions Contains only Email I receive with details about how I receive it, sorting fields (Category, DoDay), and notification information Table 2: Web Reading Contains only websites I need to manually go check, and same sorting fields. No receipt info, and no need for notification. Table 3: Online Accounts - not yet created Will contain websites where I am registered, a few particulars, and their notification info. I'm trying to resist the compulsion to put the sorting fields in this one, but I don't know... (I should just do them as needed, or the day a notice comes.) Table 4: Email Correspondents - tentative, probably will not even do Would contain list of family, friends, business contacts (individuals, not listserves) to notify, with their Email address. I will probably just use my Email client address book or contacts for this purpose
I would like to have at least Table 1 and Table 2 records on one list (one table or query) that could be sorted. If I keep these as separate tables, my query would have to have two Category columns, and two DoDay columns, one set for each set of records (because the values are stored in two different tables), and the two sets of data would be separated in the query. I'd like to have the two lists (Email Subscriptions and Web Reading sources) combined into one list, with all the appropriate fields (maybe one query for DoDay, another for notifications). I would want one Category column and one DoDay column, which would require that the data come from one table. The remaining fields could be filled in or blank, according to which kind of source each record is.
If I figured out how to combine Tables 1 & 2, I could probably add Table 3 the same way, if I really wanted to. Then I could see ALL my "Web Work" and ALL the lists and registrations I would need to change in one place. How cool is that? (Well, I think it is.)
See Northwinds' Query:Customers and Suppliers by City. Customers and Suppliers are not normally related, but "Northwinds" had a special reason to want to see both groups combined, and sorted by city. (I know-the "reason" is to show us that it can be done. And now that I know that...)
So, do you understand what I want now, or are you just more confused. You asked, I tried.
> For the combo box issue, on the combo box property sheet click the Event tab. > One of the events is On Not in List. You could use that to open a data [quoted text clipped - 153 lines] > > > Yes...and of course you "can" use a query in place of a table anyway..and it > > > will/can display data from other tables. herrerany - 25 Apr 2005 13:30 GMT I am just like you a novice on this land of masters. I did it by using a simple querry selecting the names out of the table.
In the combo box: Row Source Type: Table/Querry Row Source: SELECT [Query].[NAME] FROM [Query];
This was simple and it worked for me.
> I have read through some old posts relative to my question, but came away > three times as confused and intimidated. Here is a simple and common example [quoted text clipped - 22 lines] > (That's where I started, but didn't get far. This time I mean it--but I'm > beginning to wonder if I'm crazy.)
|
|
|