INSERT COM DATA EM ACCESS 2007 - POR PARAMETROS

KARY92 24/11/2011 08:11:58
#389916
Gente, faço [Ô]insert[Ô] em meu Banco de Dados com este script:

Dim SQL As String = [Ô]INSERT INTO Clientes (codigo,nome,empresa,cnpj,endereco,num,bairro,cidade,uf,tel,cel,Data) VALUES (@Cod, @Nome, @Emp, @Cnpj, @End, @Num, @Bairro, @Cid, @Uf, @Tel, @Cel, @Data)[Ô]

Dim Con As OleDbConnection = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] + Application.StartupPath + [Ô]\DataBase.mdb[Ô])

Dim Comm As New OleDbCommand(SQL, Con)

Comm.Parameters.Add(New OleDbParameter([Ô]@Cod[Ô], TxtCodigo.Text))
Comm.Parameters.Add(New OleDbParameter([Ô]@Nome[Ô], TxtNome.Text))
Comm.Parameters.Add(New OleDbParameter([Ô]@Emp[Ô], TxtEmpresa.Text))
Comm.Parameters.Add(New OleDbParameter([Ô]@Cnpj[Ô], TxtCnpj.Text))
Comm.Parameters.Add(New OleDbParameter([Ô]@End[Ô], TxtEnd.Text))
Comm.Parameters.Add(New OleDbParameter([Ô]@Num[Ô], TxtNumero.Text))
Comm.Parameters.Add(New OleDbParameter([Ô]@Bairro[Ô], TxtBairro.Text))
Comm.Parameters.Add(New OleDbParameter([Ô]@Cid[Ô], TxtCidade.Text))
Comm.Parameters.Add(New OleDbParameter([Ô]@Uf[Ô], TxtUf.Text))
Comm.Parameters.Add(New OleDbParameter([Ô]@Tel[Ô], TxtTelefone.Text))
Comm.Parameters.Add(New OleDbParameter([Ô]@Cel[Ô], TxtCelular.Text))
Comm.Parameters.Add(New OleDbParameter([Ô]@Data[Ô], TxtDataAt.Text))

Con.Open()


Porém está dando erro : [Ô]Tipo de dados incompatível na expressão de critério.[Ô]

Acho que é no último campo, onde coloco [Ô]Data[Ô]...na outra maneira utilizo o [Ô]#[Ô] antes da variavel que contém a data, mas inserindo por parâmetros eu não sei como fazer...pensei que como é por parâmetro o sistema entenderia por si.
ALTAIR148 24/11/2011 08:36:50
#389922
Qual o formato que está tentando inserir?
OMAR2011 24/11/2011 08:42:07
#389926
Acredito que o erro está relacionado com o [txt-color=#e80000][Ô]End[/txt-color][Ô].Mude para [Ô]End1[Ô] ou qualquer outro.
[txt-color=#e80000][Ô]End[Ô][/txt-color] faz parte de código do vb.
ALTAIR148 24/11/2011 08:56:44
#389930
Bom dia,

Fiz um teste aqui com o codigo abaixo e deu certo

 Dim Con As OleDbConnection = New OleDbConnection([Ô][Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] + Application.StartupPath + [Ô]\DataBase.mdb;[Ô])
Dim comm As New OleDbCommand([Ô]INSERT INTO clientes1 (codigo,nome,empresa,cnpj,endereco,num,bairro,cidade,uf,tel,cel,Data) VALUES (@Cod, @Nome, @Emp, @Cnpj, @End, @Num, @Bairro, @Cid, @Uf, @Tel, @Cel, @Data)[Ô], Con)

Con.Open()

comm.Parameters.AddWithValue([Ô]@Cod[Ô], txtCodigo.text)
comm.Parameters.AddWithValue([Ô]@Nome[Ô], txtNome.text)
comm.Parameters.AddWithValue([Ô]@Emp[Ô], TxtEmpresa.Text)
comm.Parameters.AddWithValue([Ô]@Cnpj[Ô],[Ô]TxtCnpj.Text)
comm.Parameters.AddWithValue([Ô]@End[Ô], TxtEnd.Text)
comm.Parameters.AddWithValue([Ô]@Num[Ô], TxtNumero.Text)
comm.Parameters.AddWithValue([Ô]@Bairro[Ô], TxtBairro.Text)
comm.Parameters.AddWithValue([Ô]@Cid[Ô], TxtCidade.Text)
comm.Parameters.AddWithValue([Ô]@47Uf[Ô], TxtUf.Text)
comm.Parameters.AddWithValue([Ô]@Tel[Ô], TxtTelefone.Text)
comm.Parameters.AddWithValue([Ô]@Cel[Ô], TxtCelular.Text)
comm.Parameters.AddWithValue([Ô]@Data[Ô], txtData.Text)
comm.ExecuteNonQuery()


Se caso o erro persistir posta ai a estrutura da tabela para olharmos.

KERPLUNK 24/11/2011 09:03:15
#389932
Um dos overloads para [Ô]Parameters.Add[Ô], tem na assinatura o tipo de dados que o campo é. Assim:
cmd.Parameters.Add([Ô]NomeDoParametro[Ô], OleDbType.Date).Value = [Ô]XXX[Ô]

OMAR2011 24/11/2011 19:41:12
#389995
Você fez a mudança.Troque o End por Ende e verifique.
DANLEONHART 24/11/2011 19:51:45
#389996
O campo Data do banco de dados é do tipo Data/Hora...
KARY92 24/11/2011 20:04:33
#389997
Sim, o campo é do tipo Data/Hora, e deu certo da maneira que o OCELOT falou...obrigada pela dica !
Tópico encerrado , respostas não são mais permitidas