P
pgcn
Holiday greetings good people - please help with your expertise:
I have a client search form [frm_FindStakeholder] which has an option
group: 1. First Name, 2. Last Name & 3. Organisation. Also a list box
[cmdWhich] with 3 options: "Contains", "Begins With" & "Equals". And
lastly an unbound text box [FindText].
Upon clicking cmdFind I'm getting: Syntax error (missing operator).
I've tried numerous cobinations of ( )'s and have read all the
relevant posts I could find, but am no wiser.
I've just taken the dbase over & have tried to modify the form from
returning records showing:
First Name & Last Name, & when organisation is searched - organisation
to
First Name, Last Name, Organisation, Job Title and Inactive.
The original form was working with the following query:
strsql = "SELECT tblStakeholders.SHFName, tblStakeholders.SHLName,
tblOrganisation.OrgName, tlkpJobTitle.JobTitle,
tblStakeholderDetails.Inactive
FROM tlkpJobTitle INNER JOIN ((tblStakeholders INNER JOIN
(tblStakeholderDetails INNER JOIN tblOrganisation ON
tblStakeholderDetails.fOrgID = tblOrganisation.OrganisationID) ON
tblStakeholders.StakeHolderID = tblStakeholderDetails.fStakeHolderID)
INNER JOIN tblProjectOwnerStakeHolders ON
tblStakeholders.StakeHolderID =
tblProjectOwnerStakeHolders.pos_Stakeholder) ON
tlkpJobTitle.JobTitleID = tblStakeholderDetails.fJobTitleID";
ORDER BY tblStakeholders.SHFName;
I created a new query in design view (which works perfectly on its
own) & pasted it into the sub - at each case, but kept the WHERE
clause - but alas no good. The sub is:
Private Sub cmdFind_Click()
On Error GoTo Err_cmdFind_Click
Dim strsql As String
Dim rst As DAO.Recordset
Select Case Me.cmdWhich
Case "Contains"
strsql = "LIKE " & quote & "*" & Me.findtext & "*" &
quote '(quote="""")
Case "Begins With"
strsql = "LIKE " & quote & Me.findtext & "*" & quote
Case "Equals"
strsql = "= " & quote & Me.findtext & quote
End Select
Select Case Me.frWhat
Case 1 'first name
strsql = "SELECT tblStakeholders.SHFName,
tblStakeholders.SHLName, tblOrganisation.OrgName,
tlkpJobTitle.JobTitle, tblStakeholderDetails.Inactive
FROM tlkpJobTitle INNER JOIN ((tblStakeholders INNER JOIN
(tblStakeholderDetails INNER JOIN tblOrganisation ON
tblStakeholderDetails.fOrgID=tblOrganisation.OrganisationID) ON
tblStakeholders.StakeHolderID=tblStakeholderDetails.fStakeHolderID)
INNER JOIN tblProjectOwnerStakeHolders ON
tblStakeholders.StakeHolderID=tblProjectOwnerStakeHolders.pos_Stakeholder)
ON tlkpJobTitle.JobTitleID=tblStakeholderDetails.fJobTitleID
WHERE (((tblStakeholders.SHFName)" & strsql & _
") And ((tblProjectOwnerStakeHolders.pos_ProjectOwner) = "
& glbProjectOwner & _
"))ORDER BY tblStakeholders.SHLName,
tblStakeholders.SHFName;"'
' I'm not sure of the
" " either - is there a good text or link I could study?
Case 2 'last name
same again
WHERE (((tblStakeholders.SHLName)" & strsql & _
") And ((tblProjectOwnerStakeHolders.pos_ProjectOwner) = "
& glbProjectOwner & _
"))ORDER BY
tblStakeholders.SHLName,tblStakeholders.SHFName;
Case 3 'org
WHERE (((tblOrganisation.OrgName) " & strsql & _
") And ((tblProjectOwnerStakeHolders.pos_ProjectOwner) = "
& glbProjectOwner & _
"))ORDER BY
tblStakeholders.SHLName,tblStakeholders.SHFName;
End Select
Me.sfm_FindStakeholders.Form.RecordSource = strsql
Set rst = Me.sfm_FindStakeholders.Form.RecordsetClone
If rst.RecordCount = 1 Then
rst.MoveFirst
glbStakeholder = Me.sfm_FindStakeholders.Form.StakeHolderID
rst.Close
DoCmd.Close acForm, "frm_FindStakeholder"
Else
rst.Close
Me.sfm_FindStakeholders.SetFocus
End If
Thanks for your time
Peta
I have a client search form [frm_FindStakeholder] which has an option
group: 1. First Name, 2. Last Name & 3. Organisation. Also a list box
[cmdWhich] with 3 options: "Contains", "Begins With" & "Equals". And
lastly an unbound text box [FindText].
Upon clicking cmdFind I'm getting: Syntax error (missing operator).
I've tried numerous cobinations of ( )'s and have read all the
relevant posts I could find, but am no wiser.
I've just taken the dbase over & have tried to modify the form from
returning records showing:
First Name & Last Name, & when organisation is searched - organisation
to
First Name, Last Name, Organisation, Job Title and Inactive.
The original form was working with the following query:
strsql = "SELECT tblStakeholders.SHFName, tblStakeholders.SHLName,
tblOrganisation.OrgName, tlkpJobTitle.JobTitle,
tblStakeholderDetails.Inactive
FROM tlkpJobTitle INNER JOIN ((tblStakeholders INNER JOIN
(tblStakeholderDetails INNER JOIN tblOrganisation ON
tblStakeholderDetails.fOrgID = tblOrganisation.OrganisationID) ON
tblStakeholders.StakeHolderID = tblStakeholderDetails.fStakeHolderID)
INNER JOIN tblProjectOwnerStakeHolders ON
tblStakeholders.StakeHolderID =
tblProjectOwnerStakeHolders.pos_Stakeholder) ON
tlkpJobTitle.JobTitleID = tblStakeholderDetails.fJobTitleID";
ORDER BY tblStakeholders.SHFName;
I created a new query in design view (which works perfectly on its
own) & pasted it into the sub - at each case, but kept the WHERE
clause - but alas no good. The sub is:
Private Sub cmdFind_Click()
On Error GoTo Err_cmdFind_Click
Dim strsql As String
Dim rst As DAO.Recordset
Select Case Me.cmdWhich
Case "Contains"
strsql = "LIKE " & quote & "*" & Me.findtext & "*" &
quote '(quote="""")
Case "Begins With"
strsql = "LIKE " & quote & Me.findtext & "*" & quote
Case "Equals"
strsql = "= " & quote & Me.findtext & quote
End Select
Select Case Me.frWhat
Case 1 'first name
strsql = "SELECT tblStakeholders.SHFName,
tblStakeholders.SHLName, tblOrganisation.OrgName,
tlkpJobTitle.JobTitle, tblStakeholderDetails.Inactive
FROM tlkpJobTitle INNER JOIN ((tblStakeholders INNER JOIN
(tblStakeholderDetails INNER JOIN tblOrganisation ON
tblStakeholderDetails.fOrgID=tblOrganisation.OrganisationID) ON
tblStakeholders.StakeHolderID=tblStakeholderDetails.fStakeHolderID)
INNER JOIN tblProjectOwnerStakeHolders ON
tblStakeholders.StakeHolderID=tblProjectOwnerStakeHolders.pos_Stakeholder)
ON tlkpJobTitle.JobTitleID=tblStakeholderDetails.fJobTitleID
WHERE (((tblStakeholders.SHFName)" & strsql & _
") And ((tblProjectOwnerStakeHolders.pos_ProjectOwner) = "
& glbProjectOwner & _
"))ORDER BY tblStakeholders.SHLName,
tblStakeholders.SHFName;"'
' I'm not sure of the
" " either - is there a good text or link I could study?
Case 2 'last name
same again
WHERE (((tblStakeholders.SHLName)" & strsql & _
") And ((tblProjectOwnerStakeHolders.pos_ProjectOwner) = "
& glbProjectOwner & _
"))ORDER BY
tblStakeholders.SHLName,tblStakeholders.SHFName;
Case 3 'org
WHERE (((tblOrganisation.OrgName) " & strsql & _
") And ((tblProjectOwnerStakeHolders.pos_ProjectOwner) = "
& glbProjectOwner & _
"))ORDER BY
tblStakeholders.SHLName,tblStakeholders.SHFName;
End Select
Me.sfm_FindStakeholders.Form.RecordSource = strsql
Set rst = Me.sfm_FindStakeholders.Form.RecordsetClone
If rst.RecordCount = 1 Then
rst.MoveFirst
glbStakeholder = Me.sfm_FindStakeholders.Form.StakeHolderID
rst.Close
DoCmd.Close acForm, "frm_FindStakeholder"
Else
rst.Close
Me.sfm_FindStakeholders.SetFocus
End If
Thanks for your time
Peta