TDBAdvSearchEdit as dblookup

Is it possible to use this component as a db lookup.  I've tried this but it doesn't work (see below).  


What I want to do is tell it which field to use from the list (addresses) to set SearchAddress.DataField.  And I would like SearchAddress.DataSource.FieldByName( SearchAddress.DataField ).DisplayText to appear in SearchAddress.Text.

Many Thanks

Steve


---------------------------
Debugger Exception Notification
---------------------------
Project DBAdvSeacrhTest.exe raised exception class EVariantTypeCastError with message 'Could not convert variant of type (UnicodeString) into type (Integer)'.
---------------------------
Break   Continue   Help   
---------------------------




object SearchAddress: TDBAdvSearchEdit
  Left = 442
  Top = 415
  Width = 300
  Height = 21
  Appearance.Banding = True
  Appearance.CategoryFont.Charset = DEFAULT_CHARSET
  Appearance.CategoryFont.Color = clWindowText
  Appearance.CategoryFont.Height = -11
  Appearance.CategoryFont.Name = 'Tahoma'
  Appearance.CategoryFont.Style = []
  Appearance.DescriptionFont.Charset = DEFAULT_CHARSET
  Appearance.DescriptionFont.Color = clWindowText
  Appearance.DescriptionFont.Height = -11
  Appearance.DescriptionFont.Name = 'Tahoma'
  Appearance.DescriptionFont.Style = []
  Appearance.FilterCountFont.Charset = DEFAULT_CHARSET
  Appearance.FilterCountFont.Color = clWindowText
  Appearance.FilterCountFont.Height = -11
  Appearance.FilterCountFont.Name = 'Tahoma'
  Appearance.FilterCountFont.Style = []
  Appearance.FilterCountFormat = '(%d)'
  Appearance.ItemCategoryFont.Charset = DEFAULT_CHARSET
  Appearance.ItemCategoryFont.Color = 42495
  Appearance.ItemCategoryFont.Height = -11
  Appearance.ItemCategoryFont.Name = 'Tahoma'
  Appearance.ItemCategoryFont.Style = []
  Appearance.ItemCategoryFormat = 'in %s'
  Categories = <>
  CategoryButton.Appearance.BorderColor = 13948116
  CategoryButton.Appearance.BorderColorHot = 15917525
  CategoryButton.Appearance.BorderColorCheckedHot = 14925219
  CategoryButton.Appearance.BorderColorDown = 14925219
  CategoryButton.Appearance.BorderColorChecked = 15914434
  CategoryButton.Appearance.BorderColorDisabled = 13948116
  CategoryButton.Appearance.ColorTo = clNone
  CategoryButton.Appearance.ColorChecked = 15914434
  CategoryButton.Appearance.ColorCheckedTo = clNone
  CategoryButton.Appearance.ColorDisabled = clWhite
  CategoryButton.Appearance.ColorDisabledTo = clNone
  CategoryButton.Appearance.ColorDown = 14925219
  CategoryButton.Appearance.ColorDownTo = clNone
  CategoryButton.Appearance.ColorHot = 15917525
  CategoryButton.Appearance.ColorHotTo = clNone
  CategoryButton.Appearance.ColorMirror = clWhite
  CategoryButton.Appearance.ColorMirrorTo = clNone
  CategoryButton.Appearance.ColorMirrorHot = 15917525
  CategoryButton.Appearance.ColorMirrorHotTo = clNone
  CategoryButton.Appearance.ColorMirrorDown = 14925219
  CategoryButton.Appearance.ColorMirrorDownTo = clNone
  CategoryButton.Appearance.ColorMirrorChecked = 15914434
  CategoryButton.Appearance.ColorMirrorCheckedTo = clNone
  CategoryButton.Appearance.ColorMirrorDisabled = clWhite
  CategoryButton.Appearance.ColorMirrorDisabledTo = clNone
  CategoryButton.Appearance.GradientHot = ggVertical
  CategoryButton.Appearance.GradientMirrorHot = ggVertical
  CategoryButton.Appearance.GradientDown = ggVertical
  CategoryButton.Appearance.GradientMirrorDown = ggVertical
  CategoryButton.Appearance.GradientChecked = ggVertical
  CategoryButton.Appearance.TextColorChecked = 5263440
  CategoryButton.Appearance.TextColorDown = 5263440
  CategoryButton.Appearance.TextColorHot = 5263440
  Columns = <
    item
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      Visible = False
      DataField = 'Self'
    end
    item
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      DataField = 'Line1'
    end
    item
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      DataField = 'Line2'
    end
    item
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      DataField = 'Line3'
    end
    item
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      DataField = 'Line4'
    end>
  DropDownHeader.Color = clWhite
  DropDownHeader.ColorTo = clNone
  DropDownHeader.Font.Charset = DEFAULT_CHARSET
  DropDownHeader.Font.Color = 5263440
  DropDownHeader.Font.Height = -11
  DropDownHeader.Font.Name = 'Tahoma'
  DropDownHeader.Font.Style = []
  DropDownHeader.Visible = True
  DropDownHeader.BorderColor = 13948116
  DropDownHeader.Buttons = <>
  DropDownFooter.Color = clWhite
  DropDownFooter.ColorTo = clNone
  DropDownFooter.Font.Charset = DEFAULT_CHARSET
  DropDownFooter.Font.Color = 5263440
  DropDownFooter.Font.Height = -11
  DropDownFooter.Font.Name = 'Tahoma'
  DropDownFooter.Font.Style = []
  DropDownFooter.Visible = True
  DropDownFooter.BorderColor = 13948116
  DropDownFooter.Buttons = <>
  DropDownShadow = True
  DropDownSizable = True
  DropDownWidth = 0
  EmptyText = 'Search Address'
  EmptyTextFocused = False
  EmptyTextStyle = []
  FilterCondition.AllColumns = True
  FilterCondition.AutoSelect = True
  FilterCondition.Column = 1
  FocusFontColor = clBlack
  ItemHeight = 20
  Items = <>
  SearchButton.Appearance.BorderColor = 13948116
  SearchButton.Appearance.BorderColorHot = 15917525
  SearchButton.Appearance.BorderColorCheckedHot = 14925219
  SearchButton.Appearance.BorderColorDown = 14925219
  SearchButton.Appearance.BorderColorChecked = 15914434
  SearchButton.Appearance.BorderColorDisabled = 13948116
  SearchButton.Appearance.ColorTo = clNone
  SearchButton.Appearance.ColorChecked = 15914434
  SearchButton.Appearance.ColorCheckedTo = clNone
  SearchButton.Appearance.ColorDisabled = clWhite
  SearchButton.Appearance.ColorDisabledTo = clNone
  SearchButton.Appearance.ColorDown = 14925219
  SearchButton.Appearance.ColorDownTo = clNone
  SearchButton.Appearance.ColorHot = 15917525
  SearchButton.Appearance.ColorHotTo = clNone
  SearchButton.Appearance.ColorMirror = clWhite
  SearchButton.Appearance.ColorMirrorTo = clNone
  SearchButton.Appearance.ColorMirrorHot = 15917525
  SearchButton.Appearance.ColorMirrorHotTo = clNone
  SearchButton.Appearance.ColorMirrorDown = 14925219
  SearchButton.Appearance.ColorMirrorDownTo = clNone
  SearchButton.Appearance.ColorMirrorChecked = 15914434
  SearchButton.Appearance.ColorMirrorCheckedTo = clNone
  SearchButton.Appearance.ColorMirrorDisabled = clWhite
  SearchButton.Appearance.ColorMirrorDisabledTo = clNone
  SearchButton.Appearance.GradientHot = ggVertical
  SearchButton.Appearance.GradientMirrorHot = ggVertical
  SearchButton.Appearance.GradientDown = ggVertical
  SearchButton.Appearance.GradientMirrorDown = ggVertical
  SearchButton.Appearance.GradientChecked = ggVertical
  SearchButton.Appearance.TextColorChecked = 5263440
  SearchButton.Appearance.TextColorDown = 5263440
  SearchButton.Appearance.TextColorHot = 5263440
  TabOrder = 4
  Text = ''
  Version = '1.0.5.0'
  DataField = 'Address'
  DataSource = dsPerson
  ListSource = dsaddress
end



It's not really clear to me how exactly you use in the component, in particular from where you execute the code to set SearchAddress.DataSource.FieldByName( SearchAddress.DataField ).DisplayText ?


This component can (optionally) connect to a DB field via DataSource/DataField and this text value can be searched in data specified by the ListSource and fields specified in Columns[x].DataField.

If the DataSource is connected, the text value typed or selected from the ListSource will be written to DataField in DataSource. 

If somehow  a problem persists, can you please provide more details on circumstances, field datatypes, from where you execute code, ...   Preferably send a sample source project via email https://www.tmssoftware.com/site/support_mail.asp so we can investigate.

It was more of a question on what's possible with the component rather than an issue with it.  I think you've answered my question anyway.  I wanted to use the component to locate the key field in another table the way you can with a TDBLookupComboBox but it appears you can only get the text from fields you are displaying.  Yes I suppose I could hide the keyfield column in the list source and set that column number in the filter condition but it wouldn't help as I would have to show the user the foreign key in the edit box.   I'll stick with a TAdvDBLookupCombobox, thanks Bruno. 

I was thinking I could set SearchAddress.DataSource.FieldByName( SearchAddress.DataField ).DisplayText on the TFields' GetText property so that would display in the edit box