Link to home
Start Free TrialLog in
Avatar of Bill Warren
Bill WarrenFlag for United States of America

asked on

Combo box selection to select records for form

I have an ADP with SQL backend which was converted from Access. I had a combo box that worked in Access but it is not working since I upsized to the adp. Here is the After Update from the combo box.

What needs to be changed for it to work in the ADP?
Private Sub Combo144_AfterUpdate()
' Find the record that matches the control.
    Dim rs As Object
 
    Set rs = Me.Recordset.Clone
    rs.FindFirst "[fld_JobNumber] = " & Str(Nz(Me![Combo144], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of bigbillydotcom
bigbillydotcom

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Bill Warren

ASKER

Thats giving me Run-time error 13 Type Mismatch and doesn't clone the recordset
Here's what I have after your suggestion

Private Sub Combo144_AfterUpdate()
' Find the record that matches the control.
    Dim rs As DAO.Recordset
    Set rs = Me.RecordsetClone
    rs.FindFirst "[fld_JobID] = " & Str(Nz(Me![Combo144], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
 
is this correct?
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Sorry but I'm not sure what Nz means...
it seems to be breaking on the
Set rs = Me.RecordsetClone   line
if I mouse over the rs it says rs = Nothing
i found someone else having the same problem but I don't understand the explanation of what the fix is. see below
Question:
I am migrating an mdb database to an adp/SQL Server platform. On one of my
forms, when a user selects a record from a list, selected fields for that
record are displayed on the form. In Access mdb, I do this with VBA code on
the after Update event for the list:

Private Sub List17_AfterUpdate()
' Find the record that matches the control.
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[primaryfield] = " & Str(Me![List17])
Me.Bookmark = rs.Bookmark
End Sub

THis doesnt work in adp. I gert an error message that says "Object doesn't
support this property or method."

If this is relevant, in the adp version, the List is populated by an SQL
view that the form is also based on (in the mdb version it was a query).

Do I need a totally differnt approach now, or can this VBA code be tweaked
to work?
Answer:
Split your .FindFirst into .MoveFirst and then .Find . ADO recordsets don't
have a .FindFirst method.

-using this info how would I transfer it to my code?
Avatar of bigbillydotcom
bigbillydotcom

AHHH
the old ADo trick
gimme a few  - lemme do some quick dev
I believe I found it... this seemed to work

Private Sub Combo144_AfterUpdate()
' Find the record that matches the control.
    Dim rs As Object
    Set rs = Me.RecordsetClone
    rs.MoveFirst
    rs.Find "[fld_JobID] = " & Val(Nz(Me![Combo144], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
but I'll credit you half for your help okay?
not sure if u can change the points/credit after opening the question
but I'm here to help - not scour people for points
another thing you might want to consider is the Group Filter control
It does what you are looking for and is really easy to implement
To limit items displayed on a page, add a group filter control

To add the control, open the page in design view
then, using your right mouse button, drag the field containing the data you want to use as the basis for your filter from the field list (on the toolbar) to the data section of the page

When you release the button, Select Group Filter Control from the submenu

Access will create a combobox on the page
When you go back to data view, the page only displays the records that meet the filter

Good Luck!
Thanks,
 
nahh don't worry about it... I just always appreciate the help. I'll look at the Group Filter Control.
Thanks again
thanks afsfire