filtrationproducts
asked on
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!
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"
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
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
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
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!
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
ASKER
Or DoCmd.GoToRecord acDataForm, stDocName, acGoTo, stLinkCriteria
ASKER