Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MAPSantos

Tipo de Dados BD Access

Recommended Posts

Oi ppl,tou com um problema, tou usando asp e uma bd em access. quando tento introduzir um novo registo ele da' o erro : Data type mismatch in criteria expression. Tenho um campo (id) que está em autonumeracao, mas quando altero ele para texto faz o registo na bd sem problema, só quando mudo para auto numeracao ou numero é que me da este erro.tou utilizando os seguintes comandos:strid = Replace(Request.Form("id"), "'", "''")strSQL = "INSERT INTO ADSL ([id]) VALUES('" & strid & "')"strSQLCheck = "SELECT [id] from ADSL where id = '" & strid & "'"peço a vossa ajudaobrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente assim:

 

strSQL = "INSERT INTO ADSL (id) VALUES(" & int(strid) & ")"

 

o problema sao as ASPAS SIMPLES, só é tirar elas (caso eu esteja correto, naum tenho certeza absoluta!),

mas em todo caso um int ali tb eh bom!

 

espero ter ajudado

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade o comando é bem mais longo, no entanto colocando o int n resolveu mmo assim o problema :| o codigo completo que tenho agora após a alteração é:strid = Replace(Request.Form("id"), "'", "''") strnome = Replace(Request.Form("nome"), "'", "''") strnum_cl = Replace(Request.Form("num_cl"), "'", "''") strnum_servico = Replace(Request.Form("num_servico"), "'", "''") strcl_contacto1 = Replace(Request.Form("cl_contacto1"), "'", "''") strcl_contacto2 = Replace(Request.Form("cl_contacto2"), "'", "''")[.... os restantes ...]strSQL = "INSERT INTO ADSL (id,nome,num_cl,num_servico,cl_contacto1,cl_contacto2,tester,num_act,data_inicio_processo,num_encomenda,data_insercao_siebel,estado_encomenda,obs_siebel,estado_siebel,data_estado_siebel,sft,username,tarifario,tipo_de_caso,num_avaria,dep_resp_avaria,data_criacao,data_prevista_resolucao,criacao_subs,order_id_services,estado_sigma,data_estado_sigma,observacoes,resp1,resp2,resp3,resp4,resp5,contacto1,contacto2,contacto3,contacto4,contacto5,obs_contacto,estado_cl,obs_estado,follow_up,data_follow_up,prioridade,desc,operadores,ultima_act) VALUES(" & int(strid) & ", " & strnome & ", " & strnum_cl & ", " & strnum_servico & ", " & strcl_contacto1 & ", " & strcl_contacto2 & ", " & strtester & ", " & strnum_act & ", " & strdata_inicio_processo & ", " & strnum_encomenda & ", " & strdata_insercao_siebel & ", " & strestado_encomenda & ", " & strobs_siebel & ", " & strestado_siebel & ", " & strdata_estado_siebel & ", " & strsft & ", " & stradslusername & ", " & strtarifario & ", " & strtipo_de_caso & ", " & strnum_avaria & ", " & strdep_resp_avaria & ", " & strdata_criacao & ", " & strdata_prevista_resolucao & ", " & strcriacao_subs & ", " & strorder_id_services & ", " & strestado_sigma & ", " & strdata_estado_sigma & ", " & strobservacoes & ", " & strresp1 & ", " & strresp2 & ", " & strresp3 & ", " & strresp4 & ", " & strresp5 & ", " & strcontacto1 & ", " & strcontacto2 & ", " & strcontacto3 & ", " & strcontacto4 & ", " & strcontacto5 & ", " & strobs_contacto & ", " & strestado_cl & " , " & strobs_estado & ", " & strfollow_up & ", " & strdata_follow_up & ", " & strprioridade & ", " & strdesc & ", " & stroperadores & ", " & strultima_act & ")" strSQLCheck = "SELECT [id] from ADSL where id = '" & strid & "'" Set rsCasoCheck = adoCon2.Execute(strSQLCheck)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, basicamente, para campos do tipo numérico no Access não utilize as ' (aspas simples) em consultas, delete, update e inserts. As ' são apenas para campos do tipo texto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.