ERRO 3421
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.
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.
Olhe isto.
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=418959
Valeu.
http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=418959
Valeu.
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
e nada de asterisco na consulta.
PS: a regra acima serve apenas para um banco access
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
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?
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.
Obrigado.
Faça seu login para responder