Forum Home
Press F1
 
Thread ID: 2000 1999-07-07 05:38:00 Access 97 Guest (0) Press F1
Post ID Timestamp Content User
2360 1999-07-07 05:38:00 Dear F1

Hi. I have a problem. I use the code below to search for a client by Surname or Christian name or both. The problem is that I need to employ referential integrity to allow me to cascade deletes from associated tables.

If I used the ClientID as the unquie identifer and set it as the primary key then when I do a search it only returns the first record in the table. If I remove the primary key feature then the search is OK.

Can you help?

Please

Ray Pearson.


Private Sub AddToWhere(FieldValue As Variant, FieldName As String, MyCriteria As String, ArgCount As Integer)

' Create criteria for WHERE clause.
If FieldValue <> ' ' Then
' Add ' and ' if other criterion exists.
If ArgCount > 0 Then
MyCriteria = MyCriteria & ' and '
End If

' Append criterion to existing criteria.
' Enclose FieldValue and asterisk in quotation marks.
MyCriteria = (MyCriteria & FieldName & ' Like ' & Chr(39) & FieldValue & Chr(42) & Chr(39))

' Increase argument count.
ArgCount = ArgCount + 1
End If

End Sub

Private Sub Clear_Click()

' Clear controls in form header and remove records from subform.
'
Dim MySQL As String
Dim Tmp As Variant

MySQL = ' SELECT * FROM Clients WHERE False '

' Clear search text boxes.
Me![Look for Surname] = Null
Me![Look for Christian Name] = Null

' Reset subform ' s RecordSource property to remove records.
Me![Committee Company Subform].Form.RecordSource = MySQL

' Move insertion point to Surname text box.
Me![Look for Surname].SetFocus

End Sub


Private Sub Show_Details_Click()

Dim MySQL As String, MyCriteria As String, MyRecordSource As String
Dim ArgCount As Integer
Dim Tmp As Variant

ArgCount = 0

MySQL = ' Select * from Clients where '
MyCriteria = ' '

AddToWhere [Look for Surname], ' [Surname] ' , MyCriteria, ArgCount
AddToWhere [Look for Christian Name], ' [ChristianName] ' , MyCriteria, ArgCount

If MyCriteria = ' ' Then
MyCriteria = ' True '
End If

MyRecordSource = MySQL & MyCriteria

Me![Committee Company Subform].Form.RecordSource = MyRecordSource

If Me![Committee Company Subform].Form.RecordsetClone.RecordCount = 0 Then
MsgBox ' No Record Found ' , 48, ' Try Again? '

Me!Clear.SetFocus
Else

Tmp = EnableControls( ' Detail ' , True)

Me![Committee Company Subform].SetFocus

End If

End Sub
Guest (0)
1