Devolve um Valor Longo contendo o número de carateres numa cadeia ou o número de bytes necessários para armazenar um variável.
Sintaxe
Len( cadeia | varname)
A sintaxe da função Len tem estes argumentos:
Argumento |
Descrição |
cadeia |
Qualquer expressão de cadeia válido. Se a cadeia contiver Nulo, Nulo é devolvido. |
nomevar |
Qualquer nome de variável válido. Se varname contiver Nulo, será devolvido Nulo. Se varname for uma Variante, Len trata-a da mesma forma que uma Cadeia e devolve sempre o número de carateres que contém. |
Observações
Tem de especificar um (e apenas um) dos dois argumentos possíveis. Com os tipos definidos pelo utilizador, Len devolve o tamanho tal como será escrito no ficheiro.
Nota: Utilize a função LenB com dados de bytes contidos numa cadeia, como em idiomas de conjunto de carateres de byte duplo (DBCS). Em vez de devolver o número de carateres numa cadeia, LenB devolve o número de bytes utilizados para representar essa cadeia. Com os tipos definidos pelo utilizador, LenB devolve o tamanho dentro da memória, incluindo qualquer preenchimento entre elementos. Para obter o código de exemplo que utiliza LenB, veja o segundo exemplo no tópico de exemplo.
Nota: Len pode não ser capaz de determinar o número real de bytes de armazenamento necessários quando utilizado com cadeias de comprimento variável em tipos de dados definidos pelo utilizador.
Exemplo de consulta
Expressão |
Resultados |
SELECT ProductID, Len(ProductID) AS ProductLen FROM ProductSales; |
Devolve os valores do campo "ProductID" e o comprimento desses valores nas colunas ProductLen. |
Exemplos de VBA
Nota: Os exemplos seguintes demonstram a utilização desta função no módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência para Programadores na lista pendente junto a Procurar e introduza um ou mais termos na caixa de pesquisa.
O primeiro exemplo utiliza Len para devolver o número de carateres numa cadeia ou o número de bytes necessários para armazenar uma variável. O Tipo... O bloco Tipo de Fim que define CustomerRecord tem de ser precedido pela palavra-chave Privado se aparecer num módulo de classe. Num módulo padrão, uma instrução Tipo pode ser Pública.
Type CustomerRecord ' Define user-defined type.
ID As Integer ' Place this definition in a Name As String * 10 ' standard module. Address As String * 30 End Type Dim Customer As CustomerRecord ' Declare variables. Dim MyInt As Integer, MyCur As Currency Dim MyString, MyLen MyString = "Hello World" ' Initialize variable. MyLen = Len(MyInt) ' Returns 2. MyLen = Len(Customer) ' Returns 42. MyLen = Len(MyString) ' Returns 11. MyLen = Len(MyCur) ' Returns 8.
O segundo exemplo utiliza LenB e uma função definida pelo utilizador (LenMbcs) para devolver o número de carateres de byte numa cadeia se o ANSI for utilizado para representar a cadeia.
Function LenMbcs (ByVal str as String)
LenMbcs = LenB(StrConv(str, vbFromUnicode)) End Function Dim MyString, MyLen MyString = "ABc" ' Where "A" and "B" are DBCS and "c" is SBCS. MyLen = Len(MyString) ' Returns 3 - 3 characters in the string. MyLen = LenB(MyString) ' Returns 6 - 6 bytes used for Unicode. MyLen = LenMbcs(MyString) ' Returns 5 - 5 bytes used for ANSI.