ID do artigo: 210588 - Última revisão: quinta-feira, 23 de junho de 2005 - Revisão: 2.0

ACC2000: Como analisar texto separados por vírgulas em vários campos

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este artigo fornece dois métodos que você pode usar para analisar texto separados por vírgulas em um campo texto e para exibir o texto em vários campos de texto .

Você pode usar o primeiro método para um campo de texto que contém duas palavras separadas por uma vírgula, por exemplo, um campo que contém um último nome seguido por um nome (Silva, João).

Você pode usar o segundo método para um campo de texto que contém mais de duas palavras separadas por vírgulas, por exemplo, um campo que contém uma cidade, uma região e um país (Toronto, Ontario, Canadá).

Mais Informações

Para analisar os campos de texto separados por vírgulas e para exibir as seqüências de texto resultante em vários campos de texto , use um dos métodos listados abaixo:

Método 1

Esse método usa uma expressão em uma consulta que inclui três funções: a função Instr() para procurar a vírgula no campo texto e as funções Left$() e Right$() para extrair as duas partes do campo texto .

Para analisar um campo de texto que contém duas palavras separadas por uma vírgula, execute estas etapas:
  1. Inicie o Microsoft Access e abra qualquer banco de dados existente.

    Crie uma tabela com a seguinte estrutura:
    Tabela: Parse2Words
    ------------------
    Nome de campo: Empl
    Tipo de dados: texto
  2. Exiba a tabela Parse2Words no modo folha de dados e em seguida, digite os três registros a seguir no campo Empl :
    Silva, João
    Callahan, Laura
    Mattos, Andrew
  3. Crie a seguinte consulta com base na tabela Parse2Words:
       Query: QueryTest
       ------------------------------------------------------------------
       Field: FirstName: Right$([Empl],Len([Empl]) - InStr(1,[Empl],",") -1)
          Show: True
       Field: LastName: Left$([Empl],InStr(1,[Empl],",") -1)
          Show: True
    						
    Observação : você pode modificar a consulta QueryTest para conta para espaços entre as duas partes no campo Empl . Por exemplo, se o texto no campo Empl for Silva, João sem espaços, remova o "-1" da expressão de campo de nome .
  4. Execute a consulta. Observe que a consulta QueryTest separa o texto no campo Empl em dois campos abaixo:
       FirstName   LastName
       --------------------
       John        Smith
       Laura       Callahan
       Andrew      Fuller
    					

Método 2

Microsoft fornece exemplos de programação apenas para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, garantias implícitas de comercialização ou adequação para uma finalidade específica. Este artigo presume que você está familiarizados com a linguagem de programação que está sendo demonstrada e com as ferramentas que são usadas para criar e depurar procedimentos. Engenheiros de suporte podem ajudar a explicar a funcionalidade de um determinado procedimento, mas eles não modificarão esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades. Esse método usa duas funções definidas pelo usuário: uma função chamada CountCSWords() para contar o número de palavras separados por vírgulas no campo texto e uma função chamada GetCSWord() para retornar a palavra ' enésimo ' no campo texto .

Para analisar um campo de texto que contém mais de duas palavras separadas por vírgulas, execute estas etapas:
  1. Inicie o Microsoft Access e abra qualquer banco de dados.
  2. Crie uma tabela com a seguinte estrutura:
    Tabela: ParseWords
    --------------------
    Nome de campo: local
    Tipo de dados: texto
  3. Exibir a tabela ParseWords no modo folha de dados e digite os três registros a seguir no campo local :
    Toronto, Ontario, Canadá
    Boston, Massachusetts, EUA
    Vancouver, British Columbia, Canadá
  4. Crie um módulo e em seguida, digite Option Explicit na seção declaração se ainda não estiver lá.
  5. Digite os seguintes procedimentos:
    Function CountCSWords(ByVal S) As Integer
    ' Counts the words in a string that are separated by commas.
    
    Dim WC As Integer, Pos As Integer
       If VarType(S) <> 8 Or Len(S) = 0 Then
         CountCSWords = 0
         Exit Function
       End If
       WC = 1
       Pos = InStr(S, ",")
       Do While Pos > 0
         WC = WC + 1
         Pos = InStr(Pos + 1, S, ",")
       Loop
       CountCSWords = WC
    End Function
    
    Function GetCSWord(ByVal S, Indx As Integer)
    ' Returns the nth word in a specific field.
    
    Dim WC As Integer, Count As Integer, SPos As Integer, EPos As Integer
       WC = CountCSWords(S)
       If Indx < 1 Or Indx > WC Then
         GetCSWord = Null
         Exit Function
       End If
       Count = 1
       SPos = 1
       For Count = 2 To Indx
         SPos = InStr(SPos, S, ",") + 1
       Next Count
       EPos = InStr(SPos, S, ",") - 1
       If EPos <= 0 Then EPos = Len(S)
       GetCSWord = Trim(Mid(S, SPos, EPos - SPos + 1))
    End Function
    
    					
  6. Compilar o módulo, salvá-lo como basParse e fechá-lo.
  7. Crie a seguinte consulta com base na tabela ParseWords:
       Query: QueryTest2
       ---------------------------------------
       Field: City: GetCSWord([Location],1)
          Show: True
       Field: Region: GetCSWord([Location],2)
          Show: True
       Field: Country: GetCSWord([Location],3)
          Show: True
    					
  8. Execute a consulta. Observe que a consulta QueryTest2 separa o texto no campo local para os três campos abaixo:
       City        Region             Country
       --------------------------------------
       Toronto     Ontario            Canada
       Boston      Massachusetts      USA
       Vancouver   British Columbia   Canada
    					

Referências

Para obter informações adicionais sobre recursos de programação para o Visual Basic for Applications, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
226118  (http://support.microsoft.com/kb/226118/EN-US/ ) OFF2000: Programação recursos para o Visual Basic for Applications

Para obter informações adicionais sobre análise de seqüências de caracteres de texto, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
209045  (http://support.microsoft.com/kb/209045/EN-US/ ) ACC2000: Exemplo expressões para extrair a parte da seqüência de texto

A informação contida neste artigo aplica-se a:
  • Microsoft Access 2000 Standard Edition
Palavras-chave: 
kbmt kbhowto kbusage KB210588 KbMtpt
Tradução automáticaTraduçã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: 210588  (http://support.microsoft.com/kb/210588/en-us/ )