Forms over Data Video Series #2 is Live!

Published 25 June 07 07:12 PM

I just uploaded more videos to Microsoft Downloads! I wanted to post the direct links here and the matching code downloads for all of you immediately even though MSDN will be creating a pretty landing page like this one for them this week, probably tomorrow or Wednesday. (I'll update this post when that's up).

Download the Forms over Data Video Series #2 and the associated code now!

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# Maarten de Keijzer said on June 28, 2007 8:58 AM:

Hi Beth,

I watched your video series and got a few questions:

- in general you create a new Dataset for each new form; is that important for separating tables or can you use one 'giant' dataset for the application?

- are there major differences when using an MSAccess back-end database instead of the SQLServer (Express) ones?

- how can you display several fields from a foreign key related record in a datagridview; e.g. showing product description, standard price, units/pkg, etc. in ao order details grid; when I try to do that, I end up either with a non-updatable grid (error at save) or troubles at starting the screen (incorrect relations for the several Fills).

# Beth Massi said on June 28, 2007 12:43 PM:

Hi Maarten,

You could go either way for small applications however you need to watch out how much data you are loading into the DataSets because as data grows in your database you can run into scalability problems. Make sure you always use parameterized queries to select only the data you need.

However, if you have a lot of different forms that need to use different parts of the database, or you need to model your DataSets more like Views or Entities into your data (where they may not map one-to-one with your database tables) then it's better to create a multiple datasets, not necessarily one for each form, but one for each "View" of the data. Or you may choose to create a separate DataSet because of different business rules (which you can put in the partial class of the DataSet so you can reuse rules across forms).

Regarding SQL-Server vs. Access. SQL-Server is a good route to take if you are going to need to scale to more users in the future since you can take a SQL-Express MDF file and attach it to an instance of SQL Server Standard or Enterprise -- so it gives you an easy upgrade path. Access, however is much easier to deploy since it is just a file, but only cannot handle as many users and is not as secure as SQL-Server. There are many other features that SQL-Express gives you for free like Reporting and Analysis services.

Regarding your last question you probably want to check out this video: http://download.microsoft.com/download/3/a/a/3aaf9e08-9d28-4e75-9da0-6ba3f65efb6e/5CreatingLookupLists.wmv

Cheers,

-B

# Steven said on June 29, 2007 9:51 AM:

Hi Beth,

you did a great job. These Videos really help to understand some things.

I've just one problem with the reportviewer. I can't create a new report. When I'm clicking on the text "Design a new report" nothing happens. May I need to set some other options first or what could be the fault.

I hope you can help me.

# Beth Massi said on June 29, 2007 10:29 AM:

Hi Steven,

I'm not sure what's wrong there. You can try adding a report by right-clicking on your project, select Add New Item and then choose Report.

HTH,

-B

# Maarten de Keijzer said on July 2, 2007 3:52 PM:

Hi Beth,

I certainly watched your video "5CreatingLookupLists.wmv" and tried to use it in my application with an MSAccess database, that's why.

1. I got rather confused by the foreign key relation set-up in your database (orders-order details), but it appeared to be 'relation only'. After changing that in my database (with sets of songs), the first thing worked (details for order and grid for the details), without errors. What is the exact difference (in application handling) for having relation only or relation and foreign key?

2. After that I created a lookup (comparable to the productlookup), dragged a BindingSource for it to the form, added a column/combobox to the grid and arraned all settings. But, consequently the compiler gives the error:

Error 1 withEvents variable 'Set_songsTableAdapter' conflicts with a member implicitly declared for withEvents variable 'SongsTableAdapter' in class 'Sets'.

What can be the cause for that?

# Beth Massi said on July 3, 2007 10:08 PM:

Hi Maarten,

The difference between a Relation Only and a Foreign Key Constraint is that if it's a FK then the DataSet will enforce the integrity of the rows so that you cannot add a child row without a parent row already existing. That would mean that you would need to call EndEdit on the parent's BindingSource before you could add any child rows. You would also need to fill the DataSet in Parent then Child order.

Your second question sounds like the code generation for the DataSet got out of sync. Try recreating the DataSet and TableAdapter to see if that resolves the problem.

HTH,

-B

# Maarten de Keijzer said on July 9, 2007 5:08 AM:

Hi Beth,

Well, I tried to recreate DataSet and TableAdapter, but withut success. Only after changing all relations (within the database) to relation only, and deleting the relation between Songs and SetSongs (the foreign key) the application started to work as designed ?!? It is all rather confusing !

Another question:

I am trying to create a form with ContactPersons, that are realted to Companies. In the main tab on the form a DataGridView shows persons, selected on a part of their name, including Name and City of the Company (builded as in your example).

Now I am trying to create on the detail tab a form with all details and the possibility to change the Company. To limit the load of Company records, the TableAdapter is filled by a query according to the selected persons. When I go to the detail tab, the Company BindingSource appears to get stuck on the last Company shown in the datagrid.

How can I sync main and detail tab with regard to this Company bindingsource and how do I get easily a combobox to be able to change the Company reference ? Do you have an example for that?

regards,

Maarten

# Beth Massi said on July 13, 2007 6:51 PM:

Hi Maarten,

Take a look at this sample application built on the Northwind database: http://blogs.msdn.com/bethmassi/attachment/3820257.ashx

It's an application I built for this post: http://blogs.msdn.com/bethmassi/archive/2007/07/11/tableadapters-and-transactions.aspx

But it demonstrates how to create a search form and then pull up the details with lookup lists.

HTH,

-Beth

# Jorge Denevi said on July 17, 2007 8:33 PM:

Beth:

Thank you for the whole video series. It's a very useful learning tool.

Now, I need some advice. How could I share a dataset between forms?

Better I tell you my application design.

I use to have forms, with a datagridview and search capabilities (a set of diferent posibilities). That's fine. But I don't do the edition (delete, inset & update) functions in the same form. Instead, I open a dialog form, with the current row from my datagridview to edit, delete or insert a new one, in a input data fashion dialog.

Which would be an easy way to implement the kind of functionatilly I've described ?

Thanks in advance

Jorge (far far away... from Buenos Aires)

# Jorge Denevi said on July 17, 2007 9:03 PM:

Beth:

I'd found "How to: Share Bound Data Across Forms Using the BindingSource Component" in msdn, but it's for .NET Framework 3.0 and I'm currently in 2.0

I think I cannot implement the BindingComplete event..

# Beth Massi said on July 24, 2007 3:29 PM:

Hi Jorge,

The BindingComplete event on the BindingSorce is available in .NET 2.0 Framework.

To share the actual DataSet between forms there's many ways you can do it. For instance, you can either expose the Dataset as a public property in a public module (shared class) that handles all your data access needs or you can expose the Dataset from a main form to any child form using a public property. Then in the Load of your forms you would use the shared dataset by setting it to the DataSource property of your Bindingsource.

But remember, you can still create separate references of the actual DataSets on the forms but only allow Add, Edit and Delete individually (you can remove the binding navigator buttons by selecting them in the toolstrip in the designer and hitting the delete key). The tables in the Database are still the same and will be updated properly.

Cheers,

-B

# shriram said on August 23, 2007 4:35 AM:

i have a datetime field in my table, it does not allwo nulls. i have a form on which i draggeddrop the data set to create automatic binding and navigation. The problem is that when i add new row the date time control shows the default time which is Now. But this time is not getting set in my current row when i try to save the table. if i click and select one date in the control it allows me to save to table. Otherwise it throws the exception of does not allow null for this column. I hope u understand my problem. Please let me know how can i solve this.

# GISPS said on August 23, 2007 10:18 AM:

follow up on Jorge's question.   Is there any examples anywhere on the web for keeping a parent to child table connection across 2 forms.  Just like in Beth's video of "How Do I: Create a One-to-Many Data Entry Form?"  Expect move the related Orders datagridview to a new form and still keep the connection.  Example have both forms open and use the bindingnavigator on the first form to scroll through the records and still have the orders form correspond to the selected record on the first or main form.

# Beth Massi said on September 7, 2007 8:44 PM:

Hi Shiram,

You may want to use a textbox and set the formatting as date instead. There are issues with the DateTime control and nulls. The other option is to enable the "ShowCheckbox" property. When this is checked then the value is pushed to the datasource. If it is unchecked then the value is NULL.

HTH,

-B

# Beth Massi said on September 7, 2007 8:47 PM:

Hi GISPS,

Sharing the connection isn't what you're looking for in this case, I think what you want is to share the DataSet and the BindingSources so that both forms can access them. I've never created a form like that but you can try exposing the child BindingSource as a public property on your first form and then binding your grid on the second form to that.

HTH,

-B

# Ravi said on September 10, 2007 2:55 PM:

Hi Beth, your video 5CreatingLookupLists.wmv is extremely useful!

I have parent table "Orders" related to child table "OrderDetails" just like in your example. So I have an "OrderDetails" node under "Orders" node.

But I have another parent table "Currencies", which is also related to child table "OrderDetails". So I have another "OrderDetails" node, this time under "Currencies" node.

Which "OrderDetails" node should I drag to my form - the top one, the one under "Orders" or the one under "Currencies"?

Thanks, Ravi.

# Beth Massi said on September 11, 2007 5:31 PM:

Hi Ravi,

It depends how you want the relation to work but I suspect in the UI that you'll want to relate the OrderDetails to the Orders, so you'd drag the OrderDetails under the Orders node. This way when the position moves in the Orders table, the OrderDetails will automatically filter for you.

HTH,

-B

# ActionJ said on September 15, 2007 10:29 PM:

Hi Beth,

First of all, your FOD videos are great and have helped me tremendously. I to have the same similar problem as "Steven" had asked you about June of this year. I know this sounds pretty simple but I've checked all over the internet trying to figure this out. When I add a report viewer control to my form, I get no response when I select "Design a new report". I did notice that "new report" is not an option when I select add new item from my project. Is there some reference that I may be missing? Any help you could provide would be greatly appreciated.

ActionJ

# Bunny said on December 1, 2007 3:57 PM:

Beth, I have watched some of your videos. In reality, you will want to create say an application where the user enters data into say textboxes and then presses Save for it to save the data into a database and not the drag and drop thing in the videos. Do you have in mind coming up with such videos?

# Beth Massi said on December 3, 2007 1:49 PM:

Hi Bunny,

All the drag and drop does is set up the BindingSources for you automatically. You have to do this same process if you do it manually. You can drop textboxes by selecting the table's drop-down from the DataSources window and selecting "Details" instead. You can also just design the form yourself and then drag the fields onto the top of the existing controls to set up the data binding.

HTH,

-B

# Doug said on December 7, 2007 1:16 PM:

May I post a question?  I imported an Access database into VB Express.  I'm going pretty well, created a parent form with child table.  I have relationships set up many-to-one, with ID keys.  My problem is that I'm starting with a blank child table, enter information but the key isn't automatically updated to reflect the parent ID.  Isn't it supposed to?  Or is there something I need to do when exiting the row to update the Key field from the parent ID?  If so, can you direct me to a coding example?  Much appreciation in advance.  -Doug

# steve said on December 12, 2007 8:56 AM:

HAI BETH. A VERY NICE  VIDEO SERIES

I HAVE  FEW QUESTIONS FOR YOU.

1.  I HAVE CREATED AN APP BY DRAG 'N DROP AS IN  YOUR VID. HOW DO I KNOW IF THERE IS A DOUBLE DATA IN PRIMARY KEY COLUMN AFTER INPUTING NEW DATA. WHAT I MEAN IS WITH WHICH ROW (DATAGRIDVIEW). I USED TRY -CATCH CODE BUT IT DOESN'T SHOW WHICH ROW.

2.  WHILE USING MS. ACCESS AS DB, I SEE THERE ARE 2 *.MDB INSIDE AND OUTSIDE THE BIN FOLDER, SO WHERE MY CURRENT DB IS. BECAUSE OF THAT, I HAVE DIFFICULTY IN ADDING A NEW COLUMN I MY TABLE, FOR EXAMPLE.

3. PERHAPS YOU ARE WILING TO CREATE A NEW VIDEO: HOW TO IMPORT/EXPORT DATA IN EXCEL, WORD OR TEXT FILE.

FROM THE DEEPEST IN MY HEART.....(@#&*), I HOPE YOU ANSWER MY QUESTIONS.

KEEP MOVING & GOD BLES YOU.

# Beth Massi said on December 12, 2007 10:46 AM:

Hi Doug,

When you set up the related BindingSources this will automatically be taken care of for you. Here's a video on how to set up related tables: http://msdn2.microsoft.com/en-us/vbasic/bb643827.aspx?wt.slv=topsectionsee

And here's on on how to save them: http://msdn2.microsoft.com/en-us/vbasic/bb725826.aspx?wt.slv=topsectionsee

I'd also watch this one too for reference: http://msdn2.microsoft.com/en-us/vbasic/bb725824.aspx?wt.slv=topsectionsee

HTH,

-B

# Beth Massi said on December 12, 2007 10:49 AM:

Hi Steve,

Re #1. I don't think I understand your question. If you're asking about validation you can watch this video to get started: http://msdn2.microsoft.com/en-us/vbasic/bb643821.aspx

Re #2: Read this post, it also applies to access databases: http://blogs.msdn.com/bethmassi/archive/2007/05/29/working-with-a-local-data-file-in-vs.aspx

Re #3: I recently wrote 2 articles on that and also have a video:

http://blogs.msdn.com/bethmassi/archive/2007/10/30/quickly-import-and-export-excel-data-with-linq-to-xml.aspx

http://blogs.msdn.com/bethmassi/archive/2007/12/06/mail-merging-with-word-and-linq-to-xml-in-vb.aspx

http://msdn2.microsoft.com/en-us/vbasic/bb927708.aspx

HTH,

-B

# STEVE(2) said on December 15, 2007 12:52 AM:

IT'S NICE TO KNOW YOU RESPONSE MY QUESTION.

1. ABOUT MY 1ST QUESTION, I DIDN'T TALK ABOUT A VALIDATION. FOR EXAMPLE, I HAVE 50 ROWS/DATA IN A DATAGRIDVIEW AND I INPUT A NEW DATA/ROW WHICH IS  SAME WITH DATA IN MY PRIMARY KEY COLUMN (REDUNDANCY). AUTOMATICALLY THE NEW ROW WILL BE REJECTED EVEN IF I HAVEN'T USED VALIDATION CODES. MY QUESTION IS WITH WHICH ROW IN DATAGIDVIEW MY DATA IS DOUBLE.

2. ABOUT THE 2ND QUESTION, I STILL LEARN YOUR VID/ARTICLE. ANYWAY THANKS.

3. THE 3RD ONE, I AM VERY APPRECIATE YOUR VID/ARTICLES. HOWEVER, I STIL USE VS 2005. FOR ME THE DEVELOPMENT OF VS IS TOO FAST TO UNDERSTAND BUT I RESPECT MICROSOFT FOR THE INOVATION. RIGHT NOW I WILL STILL USE VS 2005 BUT I WILL USE VS 2008 IN THE FUTURE.

KEEP MOVING & GOD BLES YOU

# Serge said on January 14, 2008 8:12 AM:

Hi Beth,

First congrats on your video series. They helped me a lot understanding vb2005/2008 (I come from an ancient environment and it really helped me migrating). Keep up the good work.

But I have a question. I have an MDI form application. The user opens one form for updating/adding customers in a customertable.

The user clicks on another forms viewing orders per customer (kind of like your lookup example).

When they changed the adress in the update form, what's the best way to receive this adress modification the orderlookup form ?

Should I rebuild the dataset in the orderlookup form ?

Should I make it shared among the forms and load it in the MDI form ?

Could you give me some example code ?

Thanks for your reply

Serge

# gisela said on January 14, 2008 11:29 AM:

Hi Beth,

I hope you can help resolve this problem.

I have 2 tables: Clients and Orders

I have a datagridview associated to the Clients table.

In the load function of the form, I fill a table adapter with the clients table. I don't fill a table adapter with the orders table.  The reason is because I don't need to visualizze this information in this form.

The client code in the Clients table is a foreign key in the Orders table.

I'm having trouble deleting a row from the datagridview because of the foreign key relation to the Orders table.  Must I have to load all the tables that have a foreign relationship to the clients table before I delete the row from the client data set table and call update on all the related tables (ie. order table).

The error message is:

DELETE statement conflicted with COLUMN REFERENCE constraint 'FK_TAB_FATTURE_TAB_CLIENTI'. The conflict occurred in database 'testWindowsForm', table 'TAB_FATTURE', column 'cod_cliente'.

I hope you can help!

thanks, gisela.

# Beth Massi said on January 16, 2008 10:44 AM:

Hi gisela,

You need to always delete the children before you delete the parent in the database otherwise you will get this error. This is how a database enforces referential integrity. So you need to load the children of the parent records you select and perform an ordered update (see this article for 2005: http://blogs.msdn.com/bethmassi/archive/2007/07/10/working-with-tableadapters-related-datatables-and-transactions.aspx and this one for 2008: http://blogs.msdn.com/bethmassi/archive/2008/01/07/the-new-tableadaptermanager-in-visual-studio-2008.aspx) or you can set the CASCADE delete behavior on the database itself it that makes sense for your scenario.

HTH,

-B

# Beth Massi said on January 16, 2008 10:47 AM:

Hi Serge,

Take a look at this post: http://blogs.msdn.com/bethmassi/archive/2007/10/01/using-data-across-multiple-windows-forms.aspx

HTH,

-B

# Mohit said on January 23, 2008 3:37 AM:

Hi Beth !

This Has Been A Great Help Towards Your Side.

Really ... You Have Done A Great Job Overall ,

# Abe said on January 27, 2008 3:06 AM:

Hi Beth,

Been watching your videos and they are great. Thanks.

In one of the first you write some stored procedures which include the Timestamp. Can you explain how to use this in VB.NET. I'm having trouble capturing it and sending it.

# jb said on February 9, 2008 10:22 AM:

I am creating a data entry form based on a parent child table relationship using vb 2008 and sql compact 3.5.  I viewed your updating related tables video #17 (multiple times), however, I continue to get the "can't insert foriegn key due to no primary key error".  I made all of the changes as per the video including receating the oms db (same error).  Any suggestion on what the problem may be?

# Oktay said on February 20, 2008 5:27 PM:

Hi Beth,

All examples are based on graphical data components such as DataSet, BindingDatasource, etc.

Is there any sample that these components and relations between the tables are created programatically?

Thank you.

Oktay.

# Vikas said on April 3, 2008 6:36 AM:

Hello Beth,

I am trying to get the add, update and delete rows datagridview. When I try to do any of these actions, it does not update the database. I am trying to update the database when user leaves the current row. Also, if there is any validation or dataerror, I want user to either correct the entered values or press esc to come out of the edit mode. I am using VS2005.

Any suggestions?

Kind Regards

Vikas

# Beth Massi said on April 4, 2008 6:57 PM:

Hi Vikas,

When you move off of a row in the grid, the in-memory datasource it is bound to (i.e. the DataTable) is updated not the database. This is for scalability reasons. To update the DataTable you need to call the TableAdapter.Update method.

Here are some videos that will help with that as well as validation:

http://msdn2.microsoft.com/en-us/vbasic/bb643826.aspx

http://msdn2.microsoft.com/en-us/vbasic/bb643821.aspx

HTH,

-B

# Vikas said on April 21, 2008 5:57 AM:

Thanks for your input Beth.

Let me explain this in detail, what I am trying to achieve.

I have a menu control with all the entities (Employee, Location etc..). Employee has location as foreign key.

Clicking on menu items, show the datagridview corresponding to that entity.

Location column in the employee datagrid is a combobox with all the locations and is mandatory.

Now, what I am trying to achive is if the user starts entering employee information (name, Role, Location) and

if location does not exists, then he/she should be able to go to location datagridview. enter the location detail. This should refresh the location combobox with new values.

The problem is as I am in the edit mode of employee datagridview and as location is mandatory. It does not allow me to navigate to location datagridview, without cancelling the cancelling the changes.

Hope this explain my problem. Any suggestions.

Thanks a lot.

Vikas

# Dating said on May 31, 2008 7:25 AM:

I just uploaded more videos to Microsoft Downloads! I wanted to post the direct links here and the matching code downloads for all of you immediately even though MSDN will be creating a pretty landing page like this one for them this week, probably tomorro

# Mike Ferguson said on May 31, 2008 8:29 PM:

Hi Beth... I've been following your Forms over Data videos and they've been a huge help. Thanks bunches for your continuing efforts. However, I'm stumped on how to get column validation working as shown in Video 9: How do I add Validation. I've created the methods in the partial class behind the dataset designer and have validated that the events are firing on the ColumnChanged and TableNewRow events (via console.writeline statement and stepping through the code), I've also made sure my DataGridView control's EditMode is EditOnEnter.  Trouble is, my datagridview is not displaying the text or the error icon via the SetColumnError method. Any insight you might be able to offer is greatly appreciated. Keep up the great work.

# Kevin N said on June 2, 2008 3:18 PM:

Hi Beth,

Thank you for the LINQ videos, they are very helpful for a newbie like me. I have a question about using LINQ in Microsoftreportviewer in  vs2008. I'm having problem viewing data from an associate table. I have a Transacation, and a Payor table. the relationship is m:1.   here is my statement

       Dim dlOptions As New System.Data.Linq.DataLoadOptions

       dlOptions.LoadWith(Of TLITransaction)(Function(t) t.Payor)

       dbContext.LoadOptions = dlOptions

       Dim invtrans As System.Linq.IQueryable(Of TLI.Audit.DAL.TLITransaction)

       Dim invtrans = From trans In dbContext.TLITransactions _

                          Join stat In dbContext.StatusValues On trans.Status Equals stat.StatusID _

                          Join pyr In dbContext.Payors On trans.PayorID Equals pyr.PayorID _

                          Where trans.PayorID IsNot Nothing And stat.Classification = "Invoiced" _

                          Select trans

TransactionBindingSource.DataSource = trans

Me.ReportViewer1.RefreshReport()

I created a reportviewer and add a list control and table on to it.

I also added a Transaction data source to the project (which has the payor table hanging off of it).

I dag the transid into the table detail row and next to it the payorname, and group by transid.

when I run it I only see the tranid data and not the payorname data. do you have any idea? I thought it was because LINQ was default to use lazy loading so i did some research and put in eager loading to pull back both table at one time but that didn't seems to work either. Please help me.

# Mike Ferguson said on June 3, 2008 8:57 PM:

Hi again Beth...

Further to my note dated May 31, I thought I'd try creating a new form and dragging the table onto it from the datasources tab. Success. All worked as indicated in the video. The validation worked fine. The only difference between the datagridviews on the two forms is that the one that worked had all datagridview properties set to their default values. The datagridview control that doesn't work, I had changed numerous properties - too numerous to mention here. Next steps are to change each of the properties (one at a time) to see if I can determine which one causes the validations to fail. Thanks again for your continued efforts in sharing the goodness.

# Weddings said on June 5, 2008 1:13 PM:

I just uploaded more videos to Microsoft Downloads! I wanted to post the direct links here and the matching code downloads for all of you immediately even though MSDN will be creating a pretty landing page like this one for them this week, probably tomorro

# Gregory Wms. said on July 8, 2008 6:44 PM:

Hi Beth,

I have watched your videos a few times and I am still having a heck of a time to setup my database/tables and datagridview. I am building an ap where I show 4 datagrids, each representing 1 route per day. Each route reps a work crew.  I created a spreadsheet with some data and imported it into access.  I used that as my dbase.  I am trying to figure out how to have a monthcalendar click bring up the clicked date(all four routes should be sync'd to that date.  The should all show the data that I put into the spreadsheet.  Each route should display only 8 rows of data and want to not allow scrolling down past the eighth row.  Could you point me in the right direction?  Any help would be greatly appreciated.

# key said on November 7, 2008 1:58 AM:

hi beth...

i'm using ms access as back-end... but i have a problem with parametized query i don't how to make.. unlike ms sql its easy... can you show me a sample?

# Beth Massi said on November 7, 2008 4:34 PM:

Hi Key,

I'm not an Access expert so I'm not sure of the subtle differences in SQL syntax between Access and SQL. However, it's possible that you are running into the lack of support the Jet provider (Access db driver) has with named parameters, it only supports ordered parameters. Instead of SQL parameters @param syntax, just use a question mark instead i.e. Select * Where Field = ?

HTH,

-B

# Bari said on February 10, 2009 5:13 AM:

Hi Beth!

I love your work. all the videos and codes are very helpful!

im making reports and have been following your 15reportviewer

however it doesnt talk about using parameters...

i made a query

SELECT        bookings.Booking_no, bookings.POL, bookings.POD, bookings.shipment_date, Customer.Customer_ID, Customer.Industry, Customer.Address,

                        Customer.Company_name, Customer.Contact_no, Customer.Account_type

FROM            bookings INNER JOIN

                        cust_history ON bookings.Booking_no = cust_history.booking_no INNER JOIN

                        Customer ON cust_history.customer_ID = Customer.Customer_ID

WHERE        (Customer.Customer_ID = @Customer_ID)

in the parameter report i went and typed Customer_ID, but when i run the report it claims that the parameter is missing.

im building it on VS2008, vb

pls help!!

Leave a Comment

(required) 
(optional)
(required) 

  
Enter Code Here: Required

About Beth Massi

Beth is a Program Manager on the Visual Studio Community Team at Microsoft and is responsible for producing and managing content for business application developers, driving community features and team participation onto MSDN Developer Centers (http://msdn.com), and helping make Visual Studio one of the best developer tools in the world. She also produces regular content on her blog (http://blogs.msdn.com/bethmassi), Channel 9, and a variety of other developer sites and magazines. As a community champion and a long-time member of the Microsoft developer community she also helps with the San Francisco East Bay .NET user group and is a frequent speaker at various software development events. Before Microsoft, she was a Senior Architect at a health care software product company and a Microsoft Solutions Architect MVP. Over the last decade she has worked on distributed applications and frameworks, web and Windows-based applications using Microsoft development tools in a variety of businesses. She loves teaching, hiking, mountain biking, and driving really fast.

This Blog

Syndication

Page view tracker