SQL ACCESS ERRO NA EXPRESAO DO CRITERIO

CARLINHOSVS 11/09/2009 01:11:14
#322571
ola amigos eu esto com propleminha eu criei um banco de acess com tabela cliente e dois campos
id tipo de dados é int chave primaria com increment

so quando uso select para selecionar id da um erro na expresão do criteiro
como faço para converte esse id pra int

por favor me ajudem

EMERSONTADEU 11/09/2009 01:27:59
#322572
Citação:

so quando uso select para selecionar id da um erro na expresão do criteiro
como faço para converte esse id pra int



Puxa, axo que faltam parâmetros para poder ajudá-lo até aki também não axa?

Como posso advinhar qual sua string SQL e demais informações para ter alguma chance de explicar direito o que deve fazer ?

Qual comando vc está mandando para o banco ?

A 1a coisa a fazer é ver a string resultante do seu código e analisar se está correta.

Uma outra boa dica é que se não tem certeza da sintaxe do comando SQL que está tentando enviar teste primeiro no ACCESS pra ver se funciona mesmo.
CARLINHOSVS 11/09/2009 12:46:17
#322607
então EMERSONTADEU

meu banco de dados access esta assim
====================================================================================
Chave Nome do Campo Tipo de Dado Tamanho
------------------------------------------------------------------------------------
[txt-color=#df0101] * | id | Int | 0 [/txt-color]
| nome | Text | 0
| endereco | Text | 0
| fone | Text | 0
| celular | Text | 0
| data | Text | 0
| bairro | Text | 0
| cidade | Text | 0
| uf | Text | 0
| cep | Text | 0
| cpf | Text | 0
| rg | Text | 0
| obs | Text | 0


note que no id esta int ou seja outo numeração
porem quando uso a o comando SELECT para selicionar o id gera um erro na expresão do critério




  [txt-color=#0404B4]Public Sub[/txt-color] Selecionar([txt-color=#0404B4]ByVal [/txt-color]id [txt-color=#0404B4]As Strin[/txt-color]g)
If con.State = ConnectionState.Closed Then con.Close()
con.Open()
Dim cmd As New OleDbCommand([Ô][txt-color=#df0101]select * from os WHERE id [/txt-color]= [ô][Ô] & id & [Ô][ô][Ô], con)
Dim drdr As OleDbDataReader
drdr = cmd.ExecuteReader
drdr.Read()
code = drdr.Item([Ô][txt-color=#ff0000]id[/txt-color][Ô])
data = drdr.Item([txt-color=#ff0000][Ô]data[Ô][/txt-color])
[txt-color=#0404B4]end sub[/txt-color]
RCMRO 11/09/2009 13:16:45
#322612
Só tira as aspas simples da linha do SELECT e, com esses nomes estranhos na tabela, coloca entre colchetes os nomes.

Para evitar que sejam passados caracteres que não sejam numeros, converte ele também...


Dim cmd As New OleDbCommand([Ô]select * from [os] WHERE [id] = [Ô] & cstr(val(id)), con)
CALTABIANO 11/09/2009 13:26:08
#322615
Resposta escolhida
[txt-size=2]Seu código ficará assim!!![/txt-size]

Quando a codição dentro do Where for em um campo do tipo:

Caracter -> você deve utilizar Aspas simples
Numerico, Int, AutoIncrement, -> vocÊ não deve utilizar aspas simples
Date - > você deve utilizar # antes e depois da data


Public Sub Selecionar(ByVal id As String)
If con.State = ConnectionState.Closed Then con.Close()
con.Open()
Dim cmd As New OleDbCommand([Ô]select * from os WHERE id = [Ô] & id, con)
Dim drdr As OleDbDataReader
drdr = cmd.ExecuteReader
drdr.Read()
code = drdr.Item([Ô]id[Ô])
data = drdr.Item([Ô]data[Ô])
end sub
[txt-size=2] [/txt-size]
CARLINHOSVS 11/09/2009 18:41:24
#322660
CALTABIANO valeu cara
RCMRO infelismente seu condigo não resolveu me problema so do caltabiano mesmo
Tópico encerrado , respostas não são mais permitidas