Como fazer um TextBox Access, com um valor Numberic, Igual a DLookUp com o TextBox como os Critérios

votos
0

Eu realmente não tenho idéia por que isso não funciona, mas eu estou tentando obter o seguinte para o trabalho:

If Me.Text1 = DLookup(Field1, Test1_Table, Test1_Table.Field1= _
     & Me.Text1) Then
   MsgBox It works
Else
End If

O código acima é um código de teste para um projeto maior que eu estou trabalhando, então os nomes de tabela e campo são apenas para testes. Além disso, Field1 é um campo numberic. Basicamente, quando entro 1 Dentro Text1, eu gostaria que o recurso DLookup encontrar 1 dentro Test1_Table.Field1 e dar-me uma mensagem informando que ele funciona. Eu sou capaz de chegar a este trabalho com valores de cadeia, tais como:

If Me.Text1 = DLookup(Field1, Test1_Table, Test1_Table.Field1=' _
    & Me.Text1 & ')Then

Da mesma forma isso funciona, quando 1 é inserido no Text1:

If 1 = DLookup(Field1, Test1_Table, Test1_Table.Field1= _
    & Me.Text1) Then

No entanto, eu tentei:

If Me.Text1 = DLookup(Field1, Test1_Table, Test1_Table.Field1= _
    & Forms!TestSearch_Form!Text0)Then

e

If Me.Text1 = DLookup(Field1, Test1_Table, Test1_Table.Field1= _
    & Forms!TestSearch_Form!Text0)Then

etc ...

Eu tentei muitas combinações diferentes e parece que eu não posso chegar a dois para igualar, quando se lida com valores numéricos. Alguém sabe o que estou ausente ou tem alguma idéia?

Obrigado,

Damion

Publicado 19/05/2009 em 14:25
fonte usuário
Em outras línguas...                            


3 respostas

votos
2

E se:

 If Not IsNull(DLookup("Field1", "Test1_Table", "Field1=" & Me.Text1)) Then

Isso só vai funcionar se campo1 é definido como um campo numérico, você vai precisar delimitadores se é um campo de data e hora ou texto.

EDITAR:

A declaração acima é ou igual ao valor de Me.Text1, ou é nulo. Outra maneira de usar DllookUp seria dizer:

 SomeVar=DLookup("Field1", "Test1_Table", "Field1=" & Me.Text1)

Somevar será ou nulo, ou seja, não encontrado, ou devolver o valor ou Field1, que é igual a Me.Text1, porque é isso que pedimos na Onde comunicado. Você pode ver a partir desta que é inútil para retornar o valor de Field1, ou é encontrado andequal para Texto1, ou não encontrado, e nulo. A razão olnly para obter o valor de DLookUp é se você está olhando para cima algum outro valor ou cálculo na tabela.

Depois disso, é importante lembrar que você está procurando um exato valores jogo e decimais pode ser bastante diferente distante à direita do ponto decimal, onde é improvável que você olhar.

Respondeu 19/05/2009 em 18:12
fonte usuário

votos
0

Se CInt (Me.Text1) = DLookup ( "Field1", "Test1_Table", "Test1_Table.Field1 =" & Me.Text1) Então ...

O código acima funciona perfeitamente. Graças a Guiness, eu era capaz de utilizar o meu código original e basta adicionar CInt para a instrução if.

Além disso, obrigado a todos por sua entrada.

DFM

Respondeu 20/05/2009 em 01:02
fonte usuário

votos
0
Dim sWhere as String
sWhere = "Test1_Table.Field1=" & Me.Text1
If CInt(Me.Text1)=DLookup("Field1", "Test1_Table", sWhere) Then         
     MsgBox "It works" 
Else
   'do something else
End If

Tentando fazer muito VBA dentro do DLookup poderia ser um problema?

Respondeu 19/05/2009 em 16:43
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more