Bom dia Críquio...
O sistema original tambem não está funcionando.... Como disse talvez seja porque reinstalei o Office...
Quando é falta de referência na compilação exibe o erro da falta de referência...
Ativei varias referência ADO, de 2.0 a 2.8 e continuou com o mesmo erro... Se desativo, na compilação aponta o erro para a liha do Seek e Index, se ativo não aponta erro de compilação porém dá o erro que descrevi,
Estive lendo no site do Marcorati sobre o ADO, e ele aconselha a baixar um sistema da microsoft que verifica qual versão do Ado está instalada na máquina para assim ativar a referência correta... Segundo ele:
Component Checker (Comcheck.exe). Você pode fazer o
download no endereço http://www.microsoft.com/data/download.htm
Método Seek: O método Seek permite
a procura em uma coluna. Ele só encontra os valores iguais ao valor da procura
e vai precisar de um provedor de dados que permita a utilização da
propriedade Index e o
método Seek. (Nem
todos os provedores permitem). Além disso o método Seek
vai requerer um cursor do lado do servidor .
Atualmente , somente alguns provedores permitem usar a
propriedade Index e o método Seek
do objeto Recordset para procurar por valores em um índice de uma tabela.
O provedor OLE DB - Provider for Microsoft Jet 4.0 - que é usado para se
conectar a um banco de dados access permite a utilização do método
Seek..
Para verificar se o provedor suporta a propriedade Index
e o método Seek
podemos usar o método Supports com os parâmetros adIndex e
adSeek. Veja o exemplo abaixo:
If rs.Supports(adIndex) then
msgbox "Este Provedor suporta a propriedade Index"
endif
If rs.Supports(adSeek) then
msgbox "Este Provedor suporta a propriedade Seek"
endif
Método Find:
O método Find é usado para encontrar um
registro que contém um determinado valor em um determinado campo do registro.
Você define um critério de busca e se o critério satisfeito o ponteiro do
registro se posiciona no registro que atendeu o critério, se o critério não
foi atendido o ponteiro se posiciona no fim do recordset. A sintaxe é a
seguinte:
O Código é utilizado para a seguinte função:
O Código de Barras de um boleto bancário é composto de 44 números, o código faz a divisão) separando-os de 2 em 2 para buscar a representação gráfica na tabela Barras. Na tabela barras existem 2 campos: Character e Pattern onde
Character: possui valores que vão de: 00 a 99 (tipo texto)
Pattern: é a representação gráfica do Character ex: 01 = SLSSLSLSSL / 02 = SSSLLSLSSL
Então o código divide o cód de barras de 2 em 2 e pelo método Seek procura a representação gráfica correspondente.
Supondo que o código de barras é:39996554800000001101111100001000546666666001
Sendo dividido de 2 em 2:39-99-65-54-80-00-00-00-11-01-11-11-00-00-10-00-54-66-66-66-60-01
Assim executa um: For x = 1 To 22 (que é a quantidade do Cód de barras / 2)
E o método Seek busca a representação gráfica para os pares, ex:
39 = LSLLSSSLSS
99 = SSLLSSLLSS
65 = SLLSLLSSSS
54 = LSSSLLSSSL
e assim sucessivamente....
Pergunto:a substituição que fiz produzirá o mesmo resultado?
'tbllookup.Seek "=", Mid$(extstr, Numero, 2)
tbllookup.FindFirst "[Character] = '" & Mid$(extstr, Numero, 2) & "'"
Cumprimentos.