Erro: Propriedade DBCombo SelectedItem não é actualizada quando escreve seleção

Traduções deste artigo Traduções deste artigo
ID do artigo: 281940 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Quando você usa os tipo-ahead recursos de pesquisando do controle DBCombo de DBList32.ocx, a propriedade SelectedItem não é atualizada e DBCombo não reflete a entrada correspondente for encontrada.

Resolução

Uma correção suportada está agora disponível da Microsoft, mas destina-se somente a corrigir o problema descrito neste artigo. Aplique-o somente aos computadores que apresentarem esse problema específico. Pode ser nessa correção testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, a Microsoft recomenda que você aguarde o próximo service pack do Visual Studio que contém essa correção.

Para resolver esse problema imediatamente, contate o Microsoft serviços de suporte para obter a correção. Para obter uma lista completa dos números de telefone do Atendimento Microsoft do e informações sobre os custos de suporte, visite o seguinte site:
http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
Observação : em alguns casos, as taxas cobradas pelas ligações para chamadas de suporte podem ser canceladas se um profissional de suporte da Microsoft determinar que uma atualização específica resolverá o problema. Os custos de suporte normais serão aplicados a questões e problemas que não se qualificam à atualização específica em questão de suporte adicionais.

Observação : você deve ter um contrato de licença Visual Studio para obter essa correção.

Situação

A Microsoft confirmou que este é um bug no Microsoft produtos que estão listados no início deste artigo.

Mais Informações

Quando você seleciona um item na parte de um DBCombo lista controle, a propriedade SelectedItem contém um indicador que você pode usar para reposicionar o registro selecionado no Recordset do controle de dados que especifica a propriedade OrigemDaLinha . Esta propriedade deve ser atualizada se o usuário usa um mouse ou o teclado para selecionar o item. Portanto, quando você usa o recurso de pesquisando à frente de tipo deste controle, você espera que a propriedade SelectedItem é atualizada após você digitar um nome que corresponde a um nome na lista e pressione a tecla ENTER. Além disso, o texto na DBCombo deve refletir a entrada correspondente for encontrada. No entanto, essa funcionalidade não funciona quando você usar o combinação de ligação de dados padrão e o controle Data intrínsecos fornecida com o Visual Basic 6.0.

Etapas para reproduzir o problema

  1. Crie novo projeto Standard EXE. O Form1 é criado por padrão.
  2. A partir do menu Project , clique em componentes , selecione a caixa de seleção dados 6.0 de controles de lista vinculado e, em seguida, clique em OK .
  3. Adicione uma combinação de ligação de dados, DBCombo1, ao Form1.
  4. Adicione dois controles TextBox, Text1 e Text2.
  5. Adicione um controle de dados, dados1.
  6. Configure as configurações de propriedade desses controles como segue:
    Data1 - controle de dados
    NomeDoBancoDeDados = Biblio.mdb
    OrigemDaLinha = autores
    ReadOnly = True

    Texto2 - controle TextBox
    DataSource = Data1
    DataField = autor
    Visível = False

    DBCombo1 - controle de combinação de ligação de dados
    OrigemDaLinha = Data1
    ListField = autor
  7. Adicione o seguinte código à seção General Declarations do 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. Execute o projeto e digite um nome que corresponda a uma entrada no controle acoplado DBCombo (como Curry, Dave ).
  9. Pressione ENTER. Observe que a propriedade DBCombo1.SelectedItem não é atualizada.
  10. Limpar o texto nas DBCombo e digite um nome que corresponda a uma entrada na lista (como Wellin, Paul ).
  11. Pressione a tecla seta para cima ou seta para baixo. Observe que DBCombo1.SelectedItem é atualizado com o indicador para "Wellin, Paul".

Propriedades

ID do artigo: 281940 - Última revisão: segunda-feira, 24 de fevereiro de 2014 - Revisão: 3.2
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 6.0 Learning Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbbug kbcodesnippet kbctrl kbpending kbprb KB281940 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 281940

Submeter comentários

 

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