Creating a Table with a Validation Rule Referencing a Column in Another Table : Column Constraint « Access « VBA / Excel / Access / Word

VBA / Excel / Access / Word
1. Access
2. Application
3. Data Type
4. Data Type Functions
5. Date Functions
6. Excel
7. File Path
8. Forms
9. Language Basics
10. Math Functions
11. Outlook
12. PowerPoint
13. String Functions
14. Windows API
15. Word
16. XML
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
VBA / Excel / Access / Word » Access » Column Constraint 
Creating a Table with a Validation Rule Referencing a Column in Another Table
 

Sub ValidateAgainstCol_InAnotherTbl()
    Dim conn As ADODB.Connection
    Dim strTable1 As String
    Dim strTable2 As String
    Dim InTrans As Boolean

    On Error GoTo ErrorHandler

    Set conn = CurrentProject.Connection
    strTable1 = "myBook"
    strTable2 = "myOrders"

    conn.Execute "BEGIN TRANSACTION"
    InTrans = True
    conn.Execute "CREATE TABLE " & strTable1 & _
        "(ISBN CHAR CONSTRAINT PrimaryKey PRIMARY KEY,MaxUnits LONG);", adExecuteNoRecords

    conn.Execute "Insert INTO " & strTable1 & " (ISBN,MaxUnits) Values ('999-99999-09', 5);", adExecuteNoRecords

    conn.Execute "INSERT INTO " & strTable1 & " (ISBN,MaxUnits) Values ('333-55555-69', 7);", adExecuteNoRecords

    conn.Execute "CREATE TABLE " & strTable2 & _
        "(OrderNo AUTOINCREMENT CONSTRAINT" & _
        "PrimaryKey PRIMARY KEY," & _
        "ISBN CHAR, Items LONG," & _
        "CONSTRAINT OnHandConstr CHECK" & _
        "(Items <(Select MaxUnits from " & strTable1 & _
        " WHERE ISBN=" & strTable2 & ".ISBN)));", _
        adExecuteNoRecords
    conn.Execute "COMMIT TRANSACTION"
    InTrans = False
   Application.RefreshDatabaseWindow
ExitHere:
    conn.Close
    Set conn = Nothing
    Exit Sub
ErrorHandler:
    If InTrans Then
        conn.Execute "ROLLBACK TRANSACTION"
        Resume ExitHere
    Else
        Debug.Print Err.Number & ":" & Err.Description
        Exit Sub
    End If
End Sub

 
Related examples in the same category
1. Using a CHECK Constraint to Specify a Condition for All Values Entered for the Column
2. Relating Two Tables and Setting up Cascading Referential Integrity Rules
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.