Welcome to SPN

Register and Join the most happening forum of Sikh community & intellectuals from around the world.

Sign Up Now!

Setting the PK in vb

Discussion in 'Information Technology' started by Joel, Nov 8, 2005.

  1. Joel

    Expand Collapse

    What is the vb code to set a field to be the primary or foreign key?

  2. Loading...

    Similar Threads Forum Date
    General Great Production of English Songs and scene settings Videos Oct 11, 2012
    Hinduism Why is there Dancing in Bhajans or in Mandir Settings? Interfaith Dialogues Feb 18, 2011
    Personal Goal Setting. Why Set Goals? Business, Lifestyle & Leisure Oct 23, 2010
    Rise in Extremism or Rise in Hysteria? Canadian Sikhs Setting the Record Straight Hard Talk Apr 25, 2010
    Sikh News Badal invited to Pakistan for setting up of Nanak varsity (New Kerala) Breaking News Nov 23, 2009

  3. Douglas J. Steele

    Douglas J. Steele
    Expand Collapse

    Realistically, fields can't be primary or foreign keys. Rather, fields can
    belong to indexes, and the Index can be marked as Primary. As to foreign
    keys, you'd create a Relation, and add the appropriate field(s) to the
    Relation's Fields collection.

    To do this through DAO, look at the CreateIndex and CreateRelation methods.

    Doug Steele, Microsoft Access MVP
    (no e-mails, please!)

    "Joel" <Joel@discussions.microsoft.com> wrote in message
    > What is the vb code to set a field to be the primary or foreign key?
    > Thanks
    > Joel
  4. '69 Camaro

    '69 Camaro
    Expand Collapse

    Hi, Joel.

    Actually, it's less work to add indexes to tables (not to fields) using SQL
    -- if you know the syntax. But doing it in VBA is still pretty simple, too.
    I'll show you one of each. Try:

    Public Sub createPKIndex()

    On Error GoTo ErrHandler

    Dim db As Database
    Dim tbl As TableDef
    Dim fld As DAO.Field
    Dim idx As DAO.Index

    Set db = CurrentDb()
    Set tbl = db.TableDefs("tblDepartments")
    Set idx = tbl.createIndex("PrimaryKey")

    Set fld = idx.CreateField("DeptID")
    idx.Fields.Append fld
    idx.Primary = True
    tbl.Indexes.Append idx


    Set fld = Nothing
    Set idx = Nothing
    Set tbl = Nothing
    Set db = Nothing

    Exit Sub


    MsgBox "Error in createPKIndex( )." & vbCrLf & vbCrLf & _
    "Error #" & Err.Number & vbCrLf & vbCrLf & Err.Description
    GoTo CleanUp

    End Sub

    Public Sub createFKIndex()

    On Error GoTo ErrHandler

    CurrentDb().Execute "ALTER TABLE tblPersonnel " & _
    "ADD CONSTRAINT Personnel_Depts_FK " & _
    "FOREIGN KEY (DeptID) " & _
    "REFERENCES tblDepartments (DeptID);", dbFailOnError

    Exit Sub


    MsgBox "Error in createFKIndex( )." & vbCrLf & vbCrLf & _
    "Error #" & Err.Number & vbCrLf & vbCrLf & Err.Description

    End Sub

    .. . . where tblDepartments and tblPersonnel are tables that already exist,
    and both contain the field DeptID, which is of the same data type in both


    See http://www.QBuilt.com for all your database needs.
    See http://www.Access.QBuilt.com for Microsoft Access tips.

    (Please remove ZERO_SPAM from my reply E-mail address so that a message will
    be forwarded to me.)
    - - -
    If my answer has helped you, please sign in and answer yes to the question
    "Did this post answer your question?" at the bottom of the message, which
    adds your question and the answers to the database of answers. Remember that
    questions answered the quickest are often from those who have a history of
    rewarding the contributors who have taken the time to answer questions

    "Joel" wrote:

    > What is the vb code to set a field to be the primary or foreign key?
    > Thanks
    > Joel

Share This Page