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

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 281940
本文已归档。它按“原样”提供,并且不再更新。
症状
您在使用从 DBList32.ocx DBCombo 控件的提前键入功能的搜索功能时不会更新 SelectedItem 属性,和 DBCombo 不会反映在找到的匹配项。
解决方案
现在可以从 Microsoft,获得一个受支持的修复程序,但它只用于解决本文所述的问题。它仅应用于出现这一特定问题的计算机。此修复程序可能还会接受进一步的测试。因此,如果此问题没有对您造成严重的影响,Microsoft 建议您等待包含此修复程序将下一个 Visual Studio 服务包。

若要立即解决此问题,请与 Microsoft 产品支持服务以获取此修复程序。有关 Microsoft 产品支持服务电话号码和关于支持费用的信息的完整列表,请访问下面的 Microsoft 网站:: 在特殊的情况通常会导致支持电话的费用可能会被取消如果 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 ExplicitPrivate Const UP_ARROW = 38Private Const DOWN_ARROW = 40    Private Sub Data1_Reposition()   '   ' Copy Text from Bound Text2 to Unbound Text1.   Text1.Text = Text2.TextEnd 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 IfEnd SubPrivate 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"。

警告:本文已自动翻译

属性

文章 ID:281940 - 上次审阅时间:02/24/2014 05:56:23 - 修订版本: 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
反馈