Solved

Passing Parameter to Access Report in VB.Net?

Posted on 2008-06-17
3
1,144 Views
Last Modified: 2013-11-28
To test this procedure I hard coded the parameters into the query (in test.mdb).  Everthing works so far.   Now, I want to make it dynamic so I can pass the parameters at runtime.  

Do I need the dao object reference in project?  I am trying to stick with the .net exclusively.

The query name is prMemoSingle and I have two parameter mID and pID.   I am not sure how to access/pass these parameters so that I can make this code dynamic.

Secondly, does this code appropriately close/release the lock on the database?

        oAccess.CloseCurrentDatabase()
        oAccess = Nothing

Thanks!

Dim oAccess As Access.Application
        oAccess = New Access.ApplicationClass()
        oAccess.OpenCurrentDatabase(filepath:="s:\database\test.mdb", Exclusive:=False)
 
'---->  Open Access Query, pass parameters that the report is based upon.   Parameter 1 = mID, Paramter 2 = pID (both integers)
 
        oAccess.DoCmd.OpenReport(ReportName:="prMemoSingle", View:=Access.AcView.acViewNormal)
        oAccess.CloseCurrentDatabase()
        oAccess = Nothing

Open in new window

0
Comment
Question by:rrowe68
  • 2
3 Comments
 
LVL 38

Accepted Solution

by:
Jim P. earned 500 total points
ID: 21805489
This is a guess based off how similar that looks to how you do it in VBA.
Dim oAccess As Access.Application
        Dim strCriteria as String
        oAccess = New Access.ApplicationClass()
        oAccess.OpenCurrentDatabase(filepath:="s:\database\test.mdb", Exclusive:=False)
 
'---->  Open Access Query, pass parameters that the report is based upon.   Parameter 1 = mID, Paramter 2 = pID (both integers)
 
    strCriteria = "[mID] = " & MymIDValue & " And [pID] = "  & MypIDValue   
 
    oAccess.DoCmd.OpenReport(ReportName:="prMemoSingle", View:=Access.AcView.acViewNormal, WhereCondition = strcritera)
 
        oAccess.CloseCurrentDatabase()
        oAccess = Nothing

Open in new window

0
 

Author Comment

by:rrowe68
ID: 21806774
Thanks Jimpen -- You are right.

Answer -- below


        Dim oAccess As New Access.ApplicationClass()
        Dim strWhere As String
        Try
            oAccess.OpenCurrentDatabase(filepath:="s:\database\emery.mdb", Exclusive:=False)
            strWhere = "nMemoID = " & CURRMEMO & " AND " & "lPropertyID = " & CURRPROP
            oAccess.DoCmd.OpenReport(ReportName:="prMemoSingle", View:=Access.AcView.acViewNormal, WhereCondition:=strWhere)
 
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical)
        Finally
            oAccess.Quit()
            oAccess = Nothing
 
        End Try

Open in new window

0
 
LVL 38

Expert Comment

by:Jim P.
ID: 21806791
Glad to be of assistance. May all your days get brighter and brighter.
0

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When you are entering numbers in a speadsheet, and don't remember what 6×7 is, you just type “=6*7" instead. It works in every cell! This is not so in Access. To enter the elusive 42 in a text box, you have to find a calculator, and then copy the re…
Introduction When developing Access applications, often we need to know whether an object exists.  This article presents a quick and reliable routine to determine if an object exists without that object being opened. If you wanted to inspect/ite…
Familiarize people with the process of utilizing SQL Server stored procedures from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Micr…
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…

785 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