Solved

Open a table through dropdown combo

Posted on 2002-04-27
11
241 Views
Last Modified: 2010-04-04
Just for learning sake....
How can I open (Database is Access using ADO) a table when I select an entry in dropdown combo?
Example:
I have city names in my strings in combo so when I select a name I get the db table open in db grid and so on...
0
Comment
Question by:Enej
  • 4
  • 2
  • 2
  • +3
11 Comments
 
LVL 6

Expert Comment

by:Stuart_Johnson
Comment Utility
If you're using a TADOTable to open the tables, and provided the table names are the same as the city names, then do this:

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  ADOTable1.Close;
  try
    ADOTable1.TableName := ComboBox1.Text;
    ADOTable1.Open;
  except
    on E: Exception do
      MessageDlg('Unable to open table ' + Combo1.Text + #13+ E.Message, mtError, [mbOK], 0);
  end;
end;

Hope this helps,

Stu
0
 

Author Comment

by:Enej
Comment Utility
First, on ...exception is malfunctioning?
I added nonexistent table name to combo string just to test it but did not get the above msg,only windows warning that it cant open table.(?)

0
 
LVL 24

Expert Comment

by:Tomas Helgi Johannsson
Comment Utility
Hi!

I'm guessing that you are using 1 table with information about cities.
If so you should have index on the city-name field in the table and do the following.

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
 ADOTable1.Close;
 try
   ADOTable1.TableName := sTableName; // 1)
   ADOTable1.Open;
   ADOTable1.FindKey([ComboBox1.Text]);
 except
   on E: Exception do
     MessageDlg(E.Message, mtError, [mbOK], 0);
 end;
end;

1) sTableName is a string variable which holds the tablename. This could be set at design time.

I beleive that you know how to connect the table to a datasource and the datasource to a dbgrid. ;)
The information about the selected city should appear in the dbgrid.

Regards,
Tomas Helgi


0
 
LVL 1

Expert Comment

by:Moondancer
Comment Utility
Hi, Enej.

I posted comments in two of your old, open questions; please update and finalize them.

Thank you,

Moondancer - EE Moderator
0
 
LVL 4

Expert Comment

by:nestorua
Comment Utility
HI,
First use GetTableNames method of TSession to fill your Combo,
then choose the Table Name from that list.
Sincerely,
Nestorua.
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 

Author Comment

by:Enej
Comment Utility
Mind detailing nestor????
0
 
LVL 6

Accepted Solution

by:
Stuart_Johnson earned 100 total points
Comment Utility
Say your combo is called TableListCombo.

Session.GetTableNames('ALIASNAME', '*', false, false, TableListCombo.Items);

This will populate your combo with all the tables in that alias.  That will ensure you don't get the error you mentioned above.

Stu
0
 
LVL 4

Expert Comment

by:nestorua
Comment Utility
HI,
I have nothing to add after Stuar_Johnson comment.
Sincerely,
Nestorua.
0
 

Author Comment

by:Enej
Comment Utility
OK !Thanks !
0
 
LVL 1

Expert Comment

by:SJohnson
Comment Utility
Wow!  Almost a year to finalise a question :)
0
 

Author Comment

by:Enej
Comment Utility
I forgot about this Q really ....
Sorry !
0

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now