ERRO 3421

CRISTIANOLIVE 09/02/2013 10:44:42
#419062
Bom dia, alguém poderia me ajudar, estou tentando armazenar o código do produto em uma variável e depois abrir a tabela produto onde o código é igual ao valor da variável e está ocorrendo o erro de conversão de tipo de dados, segue abaixo:

Estou definindo no evento double click do MSFlexGrid:

If Data2.Connect = [Ô]1[Ô] Then
Data2.Database.Close
End If

If mfgProd.RowData(mfgProd.Row) <> Empty Then
codtab = Format(mfgProd.RowData(mfgProd.Row), [Ô]0000[Ô])
rsproduto.OpenRecordset [Ô]select * from produto where codigo = [ô][Ô] & codtab & [Ô]*[ô][Ô]

SSTab1.Tab = 0
codigo.Text = Data2.Recordset([Ô]codigo[Ô])
txtCodBarras.Text = Data2.Recordset([Ô]CodigoBarras[Ô])
cmbUn.Text = Data2.Recordset([Ô]Unidade[Ô])

Por favor, a rotina que verifica se o bd está aberto está correta, tive dificuldade em conseguir chegar a isso, e foi o que não deu erro.

Obrigado.
OMAR2011 09/02/2013 11:38:10
#419063
Olhe isto.

http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=418959

Valeu.
MARCELO.TREZE 09/02/2013 11:39:46
#419064
acho que o problema está no select veja bem siga estas regras

quando o tipo do campo for numerico no banco de dados não se usa o apostrofo ([ô]) cna consulta, exemplo

SELECT * FROM tabela WHERE campotiponumero = 1 (esta e a maneira correta)

SELECT * FROM tabela WHERE campotiponumero = [ô]1[ô] (maneira errada)

quando o campo for do tipo texto ai sim usa-se o apostrofo

SELECT * FROM tabela WHERE campotipotexto = [ô]marcelo[ô]

e por ultimo quando o campo for do tipo data usa-se o number (#) alguns chamam de jogo da velha, porém vc deverá formatar para MM/DD/YYY (veja bem é mes, dia e ano, e não como o habitual dia, mes e ano)

SELECT * FROM tabela WHERE datanascimento = #07/25/1972#

no vb6 basta usar o format assim

sSQL = [Ô]SELECT * FROM tabela WHERE datanascimento = #[Ô] & Format([Ô]25/07/1972[Ô],[Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]

resumindo apenas tire o apostrofo desta linha e acredito funcionar

rsproduto.OpenRecordset [Ô]select * from produto where codigo = [Ô] & codtab


e nada de asterisco na consulta.

PS: a regra acima serve apenas para um banco access

CRISTIANOLIVE 09/02/2013 12:53:10
#419067
Marcelo, obrigado pela dica, mas também fiz conforme vc mencionou e não funciona. Será que pode ser na declaração da variável?
CRISTIANOLIVE 10/02/2013 12:19:32
#419093
Marcelo/Omar2011, eu vi o link que o Omar2011 mandou, e é sua resposta para outra situação, se não tiver jeito de fazer como estou querendo, acho melhor alterar, alguma sugestão?
Obrigado.
Faça seu login para responder