错误: DBCombo SelectedItem 属性是不可更新时键入选择

文章翻译 文章翻译
文章编号: 281940 - 查看本文应用于的产品
本文已归档。它按“原样”提供,并且不再更新。
展开全部 | 关闭全部

本文内容

症状

您在使用从 DBList32.ocx DBCombo 控件的提前键入功能的搜索功能时不会更新 SelectedItem 属性,和 DBCombo 不会反映在找到的匹配项。

解决方案

现在可以从 Microsoft,获得一个受支持的修复程序,但它只用于解决本文所述的问题。它仅应用于出现这一特定问题的计算机。此修复程序可能还会接受进一步的测试。因此,如果此问题没有对您造成严重的影响,Microsoft 建议您等待包含此修复程序将下一个 Visual Studio 服务包。

若要立即解决此问题,请与 Microsoft 产品支持服务以获取此修复程序。有关 Microsoft 产品支持服务电话号码和关于支持费用的信息的完整列表,请访问下面的 Microsoft 网站:
http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
: 在特殊的情况通常会导致支持电话的费用可能会被取消如果 Microsoft 支持专业人员确定某个特定更新才能解决您的问题。将正常收取支持费用将应用于其他支持问题和不需要进行专门更新的问题。

注意: 您必须拥有一个 Visual Studio 许可协议,以获取此修复程序。

状态

Microsoft 已经确认这是在 Microsoft 中的错误在本文开头列出的产品。

更多信息

在一个 DBCombo 列表部分中选择一个项时控制,SelectedItem 属性包含可用于重新定位 行来源 属性指定的数据控件的 Recordset 中的所选的记录的书签。用户使用鼠标或键盘选择的项是否应更新此属性。因此,您在使用该控件的提前键入功能搜索功能时您希望在键入一个与列表中的名称匹配的名称并按 ENTER 键后,更新 SelectedItem 属性。此外,DBCombo 中文应反映在找到的匹配项。但是,此功能将不起作用时 Visual Basic 6.0 中使用标准数据绑定组合框和内部 Data 控件提供的。

重现行为的步骤

  1. 创建新的标准 EXE 项目。默认情况下创建 Form1。
  2. 项目 菜单中单击 组件 选中 数据绑定列表控件 6.0 复选框,然后单击 确定
  3. 向 Form1 中添加数据绑定组合 DBCombo1,。
  4. 添加文本 1 和文本 2 的两个文本框控件。
  5. 添加数据控件 Data1。
  6. 按以下方式配置这些控件的属性设置,请执行以下操作:
    Data1-Data 控件
    DatabaseName = Biblio.mdb
    行来源 = 作者
    只读 = True

    文本 2-TextBox 控件
    数据源 = Data1
    数据字段 = 作者
    可见 = False

    DBCombo1-数据绑定组合框控件
    行来源 = Data1
    值 = 作者
  7. 下面的代码添加到 Form1 的通用声明部分:
    Option Explicit
    
    Private Const UP_ARROW = 38
    Private Const DOWN_ARROW = 40
        
    Private Sub Data1_Reposition()
       '
       ' Copy Text from Bound Text2 to Unbound Text1.
       Text1.Text = Text2.Text
    End Sub
        
    Private Sub DBCombo1_KeyUp(KeyCode As Integer, Shift As Integer)
       Dim bmk As Variant
       Dim x As Integer
       Dim msg As String
    
       On Error GoTo ErrHandler
       '
       ' Save Bookmark on CR and Arrow Key Activity.
       Select Case KeyCode
          Case Asc(vbCr), UP_ARROW, DOWN_ARROW
              msg = "DBCombo1.SelectedItem has the value "
              bmk = DBCombo1.SelectedItem
              ' The next line raises error 13 if bmk has no value.
              For x = 0 To UBound(bmk)
                  msg = msg & bmk(x)
              Next x
              Data1.Recordset.Bookmark = bmk
              Debug.Print msg
       End Select
       Exit Sub
                
    ErrHandler:
       If Err.Number = 13 Then   ' Type mismatch
          Debug.Print "DBCombo1.SelectedItem is not assigned a value."
       Else
          MsgBox "Error " & Err.Number & ": " & Err.Description, vbCritical _
             + vbOKOnly
       End If
    End Sub
    
    Private Sub Form_Load()
       Text1.Text = ""
       DBCombo1.Text = ""
    End Sub
    					
  8. 运行在的项目,然后键入一个与绑定 DBCombo 控件 (如 Curry,Dave) 中的条目相匹配的名称。
  9. 请按 ENTER 键。请注意 DBCombo1.SelectedItem 属性不会更新。
  10. 清除在 DBCombo,文本并键入相匹配 (例如 Wellin,Paul) 列表中的项名称。
  11. 按向上键或向下键。请注意 DBCombo1.SelectedItem 更新以书签为"Wellin,paul"。

属性

文章编号: 281940 - 最后修改: 2014年2月24日 - 修订: 3.2
这篇文章中的信息适用于:
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 6.0 专业版
  • Microsoft Visual Basic 6.0 学习版
关键字:?
kbnosurvey kbarchive kbmt kbbug kbcodesnippet kbctrl kbpending kbprb KB281940 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 281940
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com