Erro: DBCombo SelectedItem propriedades não é actualizada quando são introduzidos dados selecção

Traduções de Artigos Traduções de Artigos
Artigo: 281940 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando utiliza as funcionalidades de procura antecipada do tipo da controlo DBCombo DBList32.ocx, a propriedade SelectedItem não é actualizada e DBCombo não reflecte a entrada correspondente for encontrada.

Resolução

Agora é disponibilizada pela Microsoft uma correcção suportada, mas destina-se apenas a corrigir o problema descrito neste artigo. Aplique-a apenas em computadores que tenham este problema específico. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, a Microsoft recomenda que aguarde pelo próximo service pack do Visual Studio que contenha esta correcção.

Para resolver este problema imediatamente, contacte a produtos da Microsoft apoio para obter a correcção. Para obter uma lista completa de números de telefone do suporte técnico da Microsoft e informações sobre os custos de suporte, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
Nota : em casos especiais, os custos normalmente inerentes às chamadas de suporte poderão ser anulados se um técnico de suporte da Microsoft determinar que uma actualização específica resolverá o problema. Os custos de suporte normais se aplicarão perguntas de suporte adicionais e problemas que não se enquadrem na atualização específica em questão.

Nota : tem de ter um contrato de licença Visual Studio para obter esta correcção.

Ponto Da Situação

A Microsoft confirmou que este é um erro no Microsoft produtos listados no início deste artigo.

Mais Informação

Quando selecciona um item na parte de um DBCombo lista de controlo, a propriedade SelectedItem contém um marcador que pode utilizar para reposicionar o registo seleccionado no conjunto de registos do controlo de dados que especifica a propriedade OrigemDaLinha . Esta propriedade deverá ser actualizada se o utilizador usa um rato ou o teclado para seleccionar o item. Deste modo, quando utiliza a funcionalidade de procura antecipada do tipo deste controlo, pensa que a propriedade SelectedItem é actualizada depois de escrever um nome que corresponde a um nome na lista e prima a tecla ENTER. Além disso, o texto DBCombo deverão reflectir a entrada correspondente for encontrada. No entanto, esta funcionalidade não funciona quando utiliza a norma Databound combinação e o controlo de dados intrínseco enviados com o Visual Basic 6.0.

Passos para reproduzir o comportamento

  1. Crie novo projecto EXE padrão. É criado o Form1 por predefinição.
  2. No menu Project , clique em componentes , seleccione a caixa de verificação dados 6.0 de controlos de lista vinculado e, em seguida, clique em OK .
  3. Adicione uma combinação de Databound, DBCombo1, ao Form1.
  4. Adicione dois controlos de caixa de texto, Texto1 e texto2.
  5. Adicione um controlo de dados, dados1.
  6. Configure as definições propriedade destes controlos da seguinte forma:
    dados1 - controlo de dados
    NomeBaseDados = Biblio.mdb
    OrigemDaLinha = autores
    Só de leitura = TRUE

    texto2 - controlo de caixa de texto
    Origem de dados = dados1
    DataField = autor
    Visível = FALSE

    DBCombo1 - controlo de combinação Databound
    OrigemDaLinha = dados1
    ListField = autor
  7. Adicione o seguinte código à secçã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 projecto e escreva um nome que corresponde a uma entrada de controlo dependente DBCombo (tal como Curry, Dave ).
  9. Prima ENTER. Repare que a propriedade DBCombo1.SelectedItem não é actualizada.
  10. Desmarque no DBCombo texto e escreva um nome que corresponde a uma entrada na lista (tal como Wellin, Paul ).
  11. Prima a tecla SETA para cima ou seta para baixo. Repare que DBCombo1.SelectedItem é actualizado com o marcador para "Wellin, Paul".

Propriedades

Artigo: 281940 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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