Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 453
  • Last Modified:

Issue opening form to specific record in VB

I am using the code below on a button on form1 to open a new form to a specific record number. Everything seems to work but the only issue I have is when the new form opens it is "filtered" by that record number but the form actually opens to the "new record".

I would like it to open directly to that record specified, and if possible not filter it at all, only open it to the record specified.

Is this possible? Please help!
Dim stDocName, stLinkCriteria, RecordType
 
If Me.InspType = "1st Article" Then
    RecordType = "F824004 - 1st Article Inspection"
 
ElseIf Me.InspType = "Assembly" Then
    RecordType = "F824003 - Assembly Inspection"
 
ElseIf Me.InspType = "Incoming" Then
    RecordType = "F824001 - Incoming Inspection"
 
ElseIf Me.InspType = "Machining" Then
    RecordType = "F824002 - Machining Inspection"
 
ElseIf Me.InspType = "Shipping" Then
    RecordType = "F824007 - Shipping Inspection"
    
End If
 
stDocName = RecordType
 
 Me.Dirty = False
 stLinkCriteria = "[ID]=" & Me![ID]
 DoCmd.OpenForm stDocName, , , stLinkCriteria
 
 DoCmd.Close acForm, "F824005 - MRB Inspection"

Open in new window

0
filtrationproducts
Asked:
filtrationproducts
  • 3
  • 2
1 Solution
 
filtrationproductsAuthor Commented:
I guess the form I am trying to open has a macro assigned to the "on load" event that is pushing it to the new record. I need this to stay in place for other reasons. Is there a way I can bypass the on load event in the VB statement so it doesn't jump to a new record?
0
 
MNelson831Commented:
OpenArgs:

OpenArgs Property Example

The following example uses the OpenArgs property to open the Employees form to a specific employee record and demonstrates how the OpenForm method sets the OpenArgs property. You can run this procedure as appropriate  for example, when the AfterUpdate event occurs for a custom dialog box used to enter new information about an employee.

Sub OpenToCallahan()
    DoCmd.OpenForm "Employees", acNormal, , , acReadOnly, _
     , "Callahan"
End Sub

Sub Form_Open(Cancel As Integer)
    Dim strEmployeeName As String
    ' If OpenArgs property contains employee name, find
    ' corresponding employee record and display it on form. For
    ' example,if the OpenArgs property contains "Callahan",
    ' move to first "Callahan" record.
    strEmployeeName = Forms!Employees.OpenArgs
    If Len(strEmployeeName) > 0 Then
        DoCmd.GoToControl "LastName"
        DoCmd.FindRecord strEmployeeName, , True, , True, , True
    End If
End Sub
The next example uses the FindFirst method to locate the employee named in the OpenArgs property.

Private Sub Form_Open(Cancel As Integer)
    If Not IsNull(Me.OpenArgs) Then
        Dim strEmployeeName As String
        strEmployeeName = Me.OpenArgs
        Dim RS As Recordset
        Set RS = Me.RecordsetClone
        RS.FindFirst "LastName = '" & strEmployeeName & "'"
        If Not RS.NoMatch Then
            Me.Bookmark = RS.Bookmark
        End If
    End If
End Sub
0
 
MNelson831Commented:
You will want to alter the OnLoad Event of the second form so that IF there is no value in OpenArgs then run the macro, otherwise, just open the filtered form
0
 
filtrationproductsAuthor Commented:
Is this possible to do using the "DoCmd.GoToRecord" command?

I tried this but I have never used this command before so I am not sure if the syntax is correct. But if I got this to work instead it wouldn't filter the form and that would be awesome!



 stLinkCriteria = Me.ID
 DoCmd.OpenForm stDocName
 DoCmd.GoToRecord acDataForm, strLinkCriteria

Open in new window

0
 
filtrationproductsAuthor Commented:
Or  DoCmd.GoToRecord acDataForm, stDocName, acGoTo, stLinkCriteria
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now