Insert into

Quisiera saber si me puedes ayudar.
Realizo una sentenccia con inser into pero con 23 campos a insertar por registro, el erro que me da es "el valor de bof o eof es true, o el actual registro se elimino, la operación solicitada requiere un registro actual"
Al colocar un punto de detención para hacer la consulta en access, veo que me toma 16 campos de los 23, por eso el error. Hay alguna forma de poder ingresar todos los campos.
esto me sucede igual con el update.

1 respuesta

Respuesta
1
¿Cómo haces tu consulta? ¿En Modo diseño? o en SQL?
Si es en modo diseño, solo arrastra tus campos que faltan y ya está.
Si es en sql:
si tienes varios registros a insertar en tu tabla:
SELECT campo1, campo2, ..., campo_n INTO tabla
FROM tabla_origen [WHERE seleccion_criterios]
si tienes que insertar de otra tabla
INSERT INTO tabla [base_externa] (campo1, campo2, ... , campo_n)
SELECT tabla_origen.campo1, tabla_origen.campo2, ... ,tabla_origen.campo_n FROM tabla_origen.
BOF o EOF es cuando no existen registros o llegó al final de tu bucle y no encuentra ningún registro.
ummmm con este código me toma 6 registros nada más: te paso el código:
SSQL = "select nro_soc,nro_fam,soc_son,nom_soc,ape_soc,fec_nac,dir_soc,loc_soc,pro_soc,tel_soc,cpo_soc,tut_soc,nom_tut,ape_tut,dir_tut,loc_tut,cpo_tut,tel_tut,por_des,fec_soc,sal_soc into amso00 from VALUES ( " & Text17 & ", " & Text18 & ",'" & "N" & "' ,'" & Text2 & "','" & Text1 & "', # " & fechanaci & "# ,'" & Text4.Text & "','" & Text5.Text & "', '" & Text7.Text & "', '" & Text9.Text & " ', " & Text6.Text & " , '" & Text12.Text & "' , '" & Text12.Text & "', '" & Text10.Text & "' , '" & Text3.Text & "' , '" & Text8.Text & "' , " & 0 & " , '" & Text13.Text & "' , '" & Text11.Text & "', # " & fechainsc & " # , '" & Text15.Text & "')"
cnn1.Execute (SSQL)
Y lo que me toma de toda esta sentencia es : (le paso la consulta a access y me tira eso, en el punto de interrupción)
select nro_soc,nro_fam,soc_son,nom_soc,ape_soc,fec_nac,dir_soc,loc_soc,pro_soc,tel_soc,cpo_soc,tut_soc,nom_tut,ape_tut,dir_tut,loc_tut,cpo_tut,tel_tut,por_des,fec_soc,sal_soc into amso00 from VALUES ( 10060, 0,'N' ,'pepo','pepe', # 1900/01/01# 
Yo lo tenia asi :SSQL = "INSERT INTO AMSO00 VALUES ( " & Text17 & ", " & Text18 & ",'" & "N" & "' ,'" & Text2 & "','" & Text1 & "', # " & fechanaci & "# ,'" & Text4.Text & "','" & Text5.Text & "', '" & Text7.Text & "', '" & Text9.Text & " ', " & Text6.Text & " , '" & Text12.Text & "' , '" & Text12.Text & "', '" & Text10.Text & "' , '" & Text3.Text & "' , '" & Text8.Text & "' , " & 0 & " , '" & Text13.Text & "' , '" & Text11.Text & "', # " & fechainsc & " # , '" & Text15.Text & "')"
Y me toma: "INSERT INTO AMSO00 VALUES ( 10060, 0,'N','PEPA','PEPO', # 1900/01/01# ,'NO INFORMA','NO INFORMA', ' BUENOS AIRES', '0000 ', 0000, 'NO INFORMA', 'NO INFORMA', 'NO INFORMA', 'NO INFORMA', 'NO INFORMA', 0, 'NO INFORMA', 'NO INFORMA', # 2010/09/0"
Como veras, no se si tiene que ver con el largo del texto, pero no le encuentro la vuelta a insertar tantos campos. El tema es que exporte la base de un sistema hecho en dos y no quiero perder los datos, sino haría 2 tablas y santo remedio.
Gracias nuevamente por tu tiempo.
La consulta de inserción de fechas no va con # (solo en la consulta de vista diseño de Access trabaja así). Si estas trabajando con Visual Basic (no para Aplicaciones) te recomiendo que cambies por: ,' " & Format(TUCAMPOTXT, "dd/mm/yyyy") & " ', si te das cuenta toma la forma string con las comillas simples. Los datos de texto debes incluirlos también en comilla simple y los datos de Int o Dbl trátalos sin comillas.
También debes establecer todos tus campos cuando dices Insert into AMSO00 Values... porque o sino no sabe en que campos te va asignar tus valores y puede que por ahí comience teniendo problemas.
También asigna a cada Text el .Text al final de cada uno porque o sino tampoco te va interpretar el comando, y mucho mejor estaría si lo tratas como Me.Txt.text.
Corrige tu expresión sql y luego avisa si te funciona o buscamos otra solución.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas