HOW TO: Look Up Values in a Data Access Page in Access 2002 (285119)



The information in this article applies to:

  • Microsoft Access 2002

This article was previously published under Q285119
Moderate: Requires basic macro, coding, and interoperability skills.

This article applies to a Microsoft Access database (.mdb) and to a Microsoft Access project (.adp).

For a Microsoft Access 2000 version of this article, see 234301.

IN THIS TASK

SUMMARY

In most Microsoft Access objects, such as forms and reports, you can use a domain function to easily retrieve data from sources other than the record source of the object.

Domain functions are intrinsic functions built into Microsoft Access. Because data access pages are ultimately viewed by using a Web browser (such as Microsoft Internet Explorer), domain functions do not work in a data access page. For example, Internet Explorer does not understand what a DLookup() function is, and therefore does not know how to execute the function from within a page. For this reason, you must use a different approach to look up data in tables that are not bound to the page.

This article shows you how to look up values within a data access page by using the existing relationships or by using ActiveX Data Objects (ADO), rather than by using domain functions.

back to the top

Using Existing Relationships to Look up Data

  1. Open the sample database Northwind.mdb or the sample Microsoft Access project NorthwindCS.adp.
  2. In the Database window, click Pages under Objects, and then click New.
  3. In the New Data Access Page dialog box, click AutoPage: Columnar, click Orders in the Choose the table or query (or view) where the object's data comes from box, and then click OK.
  4. After the page is created, click Design View on the View menu.
  5. If the field List is not displayed, click Field List on the View menu.
  6. Click the plus sign (+) next to Tables until you see a tree structure like the following, and then drag the CompanyName field to the page:
       Tables
          Orders
             Related Tables
                Customers
    					
  7. On the File menu, click Save, and then save the page as dapOrdersRel.htm.
  8. On the View menu, click Page View.
Note that as you browse through the orders, the appropriate Company Name appears for each current customer ID.

back to the top

Using ADO Recordsets to Look up Data

  1. Open the sample database Northwind.mdb or the sample Access project NorthwindCS.adp.
  2. In the Database window, click Pages under Objects, and then click New.
  3. In the New Data Access Page box, click AutoPage: Columnar, click Orders in the Choose the table or query (or view) where the object's data comes from box, and then click OK.
  4. After the page is created, click Design View on the View menu.
  5. Click the Text Box tool in the toolbox, and then add a text box to the right of the CustomerID text box that already exists.
  6. Click in the new text box, and then on the View menu, click Properties.
  7. Click the All tab, and then change the ID property to CoName.
  8. Click the label that appears next to the new text box, and then change the InnerText property to Company Name.
  9. On the Tools menu, point to Macro, and then click Microsoft Script Editor.
  10. In the Object list, click MSODSC, and in the Event list, click Current.
  11. In the Property window, scroll down to the defaultClientScript property, and click VBScript in the list.
  12. Insert the following script:IMPORTANT: When you create VBScript blocks for MSODSC events, you must add a parameter to the event name as follows:

    <SCRIPT LANGUAGE=vbscript FOR=MSODSC EVENT=Current(oEventInfo)>

    The <I>oEventInfo</I> parameter returns specific information about the event to the script. You must add this parameter, whether or not it will be used, because the script will not work without it.
    <SCRIPT Event=Current(oEventInfo) For=MSODSC Language=VBScript>
    <!--
    Dim Con
    Dim Rst
    
    Set Con = CreateObject("ADODB.Connection")
    Set Rst = CreateObject("ADODB.Recordset")
    
    ' Use the following statement if you are in Northwind.mdb.
    '
    ' The connection string may vary depending upon the location of the
    ' database and the system database.
    '
    Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program " & _
    "Files\Microsoft Office\Office\Samples\Northwind.mdb;Jet OLEDB:System " & _
    "Database=C:\Program Files\Microsoft Office\Office\System.mdw;User " & _
    "ID=Admin;"
    
    ' Use the following statement if you are in NorthwindCS.adp.
    '
    ' You must replace "MySQLServer" with the name of your SQL Server
    ' data source. You must also replace <username> and <strong password>
    ' with the name and password of an account that has the required permissions. 
    '
    ' Con.Open "Provider=MSDataShape.1;Data Source=MySQLServer;" & _ 
    ' "User ID=<username>;Password=<strong password>;Initial Catalog=NorthwindCS;Data " & _
    ' "Provider=SQLOLEDB.1" 
    
    Rst.Open "SELECT CompanyName FROM Customers WHERE CustomerID = " & _
    Chr(39) & Document.All.Item("CustomerID").Value & Chr(39), Con
    
    Document.All.Item("CoName").Value = Rst("CompanyName").Value
    
    Rst.Close
    Con.Close
    -->
    </SCRIPT>
    					
    NOTE: Your database should be in a Web folder or a network folder where all users have access.

  13. On the File menu, click Save, and then save the page as dapOrdersADO.htm.
  14. Open the page in your browser.
Note that as you browse through the orders, the appropriate company name appears for each current customer ID.

back to the top

Modification Type:MinorLast Reviewed:9/27/2006
Keywords:kbDAP kbDAPScript kbhowto kbHOWTOmaster KB285119 kbAudITPro