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.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