SSRS can be also used for user inputs!

Published on
36,684 Points
8 Endorsements
Last Modified:
Jason Yousef, MS
There's the plan, then there's what actually happens.
A recent question popped up and the discussion heated up regarding updating a COMMENTS (TXT) field in a table using SSRS.


Of course it’s not the best way to use SSRS as it’s a presentation layer and so limited in doing that using Parameters and sub-Reports which will fire a code or a stored procedure to update or delete a record…but IT COULD BE DONE!!

And that’s what I was bargaining about…

1-I started by creating a new project in VS 2008, “Report Server Project” type.
2-I’m using SQL 2008 R2 as my testing platform…I’ve created a test DB called “Admin”


3-I created a test table called “Employees”  contains only 3 columns.

Create TABLE Employees
    ID int IDENTITY (1,1),
    Name varchar(50),
    Comments varchar(MAX)

4- Inserted 4 test records…
Insert Employees VALUES('Jason', 'Lazy Employee')
    ,('Yousef', NULL)
    ,('John', 'Anything Goes')
    ,('Smith', NULL)

5-back to VS, Created a Shared Data Source to my Admin DB

6-created 3 Blank reports, using the shared Data Source.

1-      To display the records which in the table.
2-      A user summary and confirm screen of which record will be updated and with what.
3-      A done screen, which will call a stored procedure or just have a simple inline T-SQL query.


That’s the trick in the second report, you need to hide the ID and keep the Comments Parameter visible and allow it to accept NULL Value, so it display the record before you need to enter the value.  And also if you need an empty comment, such as to clear the comments field or whatever.

7-The design…

Report1: 1ReportsToDB.rdl

Just a basic table, drag the 3 fields to the table, added an extra field with an expression of  =CHR(0254) and Font of: Wingdings  Just to display a shape without using an image.
Please refer to my article for shapes in

SSRS http://asqlb.blogspot.com/2011/06/ever-wanted-shapes-and-check-boxes-in.html

Also I added an action to that text field to go to report 2 and pass the ID.

Report2: 2ReportsToDB-Confirm.rdl

Again a simple table with the basic 3 fields and added another field for the new Comments value which is using an expression of:  =Parameters!Comments.Value and a field for a confirmation symbol, yes again using my favorite shapes font WINGDINGS , with action to run the 3rd report and pass the ID and the new comments.

Report3: 3ReportsToDB-Done.rdl

I added 3 text fields, but it’s all optional (for fun).
Just with an action to go back to the first report and the summary or what was done!!

Lets’ run and test it….

I’ll click next to my name on the check mark to update my comments…
That’s what you get at first because we allowed the NULL, that’s the trick to see the table before the parameter gets initialized.
Remove the NULL check mark and enter the new comments….
You’ll get the confirmation above…
Now click on the check mark to confirm the change,  yes you guessed it right…it’s the wingdings shapes again ¿
And that’s what you get..
I’ll click on my GO Back, to the first report to check the data.
Done.. my record was updated in the DB.
Again that’s for the purpose of showing that SSRS is more than a presentation layer and that was the simplest part, it could get more complicated and done more professionally using Custom .NET code and functions.
Hope that helps someone…

The project can be downloaded from


Jason Yousef
  • 4
  • 4
  • 2
  • +4

Expert Comment

HI huslayer ,

I am using SQL server 2008 for this and I am wondering if I can write UPDATE statemnt for the 3rd report above using SSRS 2008?. It was giving some message when I am tried to write UPDATE statemnt.

Deserialization failed: The element 'TableCells' in namespace 'http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition' has incomplete content. List of possible elements expected: 'TableCell' in namespace 'http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition'. Line 38, position 16. (Microsoft Visual Studio)
LVL 21

Author Comment

by:Jason Yousef, MS
Hi HeroOfSparta,

Yes sure, 2008 is exactly the same as 2008R2 minus some features, I never seen the error above before, there's a connect issue but has been closed as non-reproducible !


When do you get that error, when you run the report or when you click to update?

Expert Comment

I get this error when creating the 3rd report. I entered the query in query buuilder clicked next ,next and when clicked finish I got this message.

SET Comments=@comments
where id=@id
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!


Expert Comment

Hi huslayer,

I got it working somehow. But, when  I am in the second report after executing first report, after entring new comment do I have to hit 'View reoprt ' first?? Instead of pressing 'Click to confirm ' button??. Because when I clicked click to confirm after entering new comment im getting 'Comment' parameter is missing message.

Is it suppose to be work like this>?? OR Is there anyway, to press 'click to confirm ' direclty after entering new comments in the parameter box and get it working?
LVL 21

Author Comment

by:Jason Yousef, MS
Yes you need to click to view the report, SSRS doesn't refresh the parameters automatically.
Look at screen shot 'TEST 3'

Expert Comment

Right!! that is what initially I got confused. But It would have been more smooth if the parameter refreshes automatically.

But anyhow,, this article helps a lot thanks Huslayer. :)
LVL 21

Author Comment

by:Jason Yousef, MS
Then click on "Was this article helpful?"   ...great that it helped :) feel free to contact me if you need more help.
LVL 37

Expert Comment

Hey Jason,

Interesting approach, I clicked "yes" :)

Best regards,
LVL 21

Author Comment

by:Jason Yousef, MS
Hey Valentino,

Thanks,  that's one of my craziest moments to poke around with SQL :)

LVL 37

Expert Comment

That type of moments are the best! ;)
LVL 21

Expert Comment

by:Alpesh Patel
New to learn (Out of window)

Expert Comment

I've tried adapting this to a report we have where we want to allow people to put comments in but I am getting an error on the last page, the confirmation page:
An error occurred during local report processing.
An error has occurred during report processing.
Query execution failed for dataset 'InsertComment'.
Must declare the scalar variable "@ClientID".

My insert query is
                      (CommentId, ClientID, CommentDate, Comments, Author)
VALUES     (REPLACE(CONVERT(VARCHAR(12), GETDATE(), 114), ':', ''),@ClientID, GETDATE(),@Comments, REPLACE(SYSTEM_USER, '<domain>\', ''))

Open in new window

I'm using the date for the primary key because I messed up the table and can't get it to auto-assign the PK.  I have to add a ClientID parameter to the first page of the report or the parameter does not show up on the second page, very annoying this is.  

Any help you can give to resolve this issue would be greatly appreciated.

Expert Comment

by:Guy Davidovich
Best article ever! I enjoyed doing this task :)

Expert Comment

by:Zina Pettitt
can you do the same for SSRS 2010?

Expert Comment

by:Zina Pettitt
How do you do it in SSRS 2010

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

Join & Write a Comment

If you are looking for an automated solution for backup single or multiple Office 365 user mailboxes to Outlook data file, then you can use Kernel Office 365 Backup & Restore tool. Go through the video to check out the steps to backup single or mult…
When you have multiple client accounts to manage, it often feels like there aren’t enough hours in the day. With too many applications to juggle, you can’t focus on your clients, much less your growing to-do list. But that doesn’t have to be the cas…

Keep in touch with Experts Exchange

Tech news and trends delivered to your inbox every month