INSERTAR REGISTRO EN TABLA ACCES

Tambien pueden postear temas relacionados con el antiguo Visual Basic

INSERTAR REGISTRO EN TABLA ACCES

Notapor STTR » Dom Abr 03, 2005 2:25 pm

hola machines!! a ver si me podeis ayudar...

Estoy intentando insertar un nuevo registro en una tabla Acces.
Las conexiones a la bd las tengo exas por controles.
He probado de hacerlo con estos dos codigos y con variantes de los mismos pero siempre me da el mismo error:

1--------------------------------------------------

CODIGO1:

Dim sqlInsert As String = "INSERT INTO Detalles_de_pedidos (Cantidad,Descuento,IdPedido,IdProducto,PrecioUnidad) VALUES (" & txtQuantitat.Text & "," & txtDescompte.Text & "," & cbComanda.Text & "," & cbProducte.Text & "," & txtPreu.Text & ")"
daLineas.InsertCommand = New System.Data.OleDb.OleDbCommand(sqlInsert)
daLineas.InsertCommand.Connection = cnnEMPRES
cnnEMPRES.Open()
error-> daLineas.InsertCommand.ExecuteNonQuery()

ERROR:
Excepción no controlada del tipo 'System.Data.OleDb.OleDbException' en system.data.dll


2---------------------------------------------------
CODIGO2:

Dim newLine As dsEMPRES.Detalles_de_pedidosRow
newLine = DsEMPRES.Detalles_de_pedidos.NewRow
newLine("IdPedido") = cbComanda.Text
newLine("IdProducto") = cbProducte.Text
newLine("Cantidad") = txtQuantitat.Text
newLine("Descuento") = txtDescompte.Text
newLine("PrecioUnidad") = txtPreu.Text

DsEMPRES.Detalles_de_pedidos.AddDetalles_de_pedidosRow(newLine)

daLineas.InsertCommand.Parameters("Cantidad").Value = txtQuantitat.Text
daLineas.InsertCommand.Parameters("Descuento").Value = txtDescompte.Text
daLineas.InsertCommand.Parameters("IdPedido").Value = cbComanda.Text
daLineas.InsertCommand.Parameters("IdProducto").Value = cbProducte.Text
daLineas.InsertCommand.Parameters("PrecioUnidad").Value = txtPreu.Text

error-> daLineas.Update(DsEMPRES.Detalles_de_pedidos)

ERROR:
Excepción no controlada del tipo 'System.Data.OleDb.OleDbException' en system.data.dll

--------------------------------------------------------------

S.O.S!!! Algo hago mal verdad??? (Muchas Gracias por estar ahí)
STTR
Novato
Novato
 
Mensajes: 1
Registrado: Dom Abr 03, 2005 2:21 pm


Notapor sensai.net » Sab Jul 02, 2005 2:50 am

Ok amigo, creo que te fuiste por un metodo un tanto dificil, el uso de controles esta bien ahora supongo que tu control se llama DATA1, y que tus cajas de texto estan enlazadas al control con las propiedades de Data source y data field, ahora lo que necesitas es agregar un boton a tu formulario y el codigo que necesitas es simplemente usar

DATA1.add ---> este sera tu boton de agregar
cuando uses esto la base de datos se pone en un estado en el que podra ser escrito algo en las cajas de texto
luego en otro boton que se llame guardar le pones el codigo
Data1.update
puedes agregar un boton cancel con el codigo Data1.cancel

es asi de sencillo
pero lo que te recomiendo es que ageges unas funciones que te pongan las cajas de texto bloqueadas para que no puedan escribir en ellas y que las desbloquees desde el boton agregar y las vuelvas a bloquear en los botones guardar y cancelar
tambien te recomiendo que cuides tus botones, es decir que no puedes guardar si no le haz dicho que agregue uno nuevo

te vaz a dar cuenta con algunos errores sobre la marcha de que botones debes bloquear para evitar errores y cuando los debes desbloquear, si no te parece suficiente la informacion que te mande te puedo enviar un ejemplo con tres campos que hice para una clase que di de bases de datos espero que te sirva y que tengas suerte
sensai.net
Novato
Novato
 
Mensajes: 4
Registrado: Mar Jun 28, 2005 7:50 pm


Error: System.Data.OleDb.OleDbException

Notapor waltico » Jue Jul 21, 2005 2:09 am

Hola tuve un problema parecido, lo soluciono instalando:

- Microsoft Data Access Component 2.8
http://www.microsoft.com/downloads/deta ... layLang=en

- Microsoft Jet 4.0 Service Pack 8 (SP8) Win9xNT4
http://support.microsoft.com/default.aspx?kbid=239114

Al momento de direccionar tu programa, modifica el codigo fuente llamandolo asi:

Dim conn1 As ADODB.Connection
Set conn1 = New ADODB.Connection
conn1.CursorLocation = adUseClient
conn1.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" _
& App.Path & "\data.mdb;"
conn1.Close


Si tienes mas problemas en la coneccion, especifica el error.
Avatar de Usuario
waltico
Colaborador
Colaborador
 
Mensajes: 183
Registrado: Sab Jun 21, 2003 4:04 pm
Ubicación: Puno

Para STTR

Notapor Yukito Sinomura » Mar Sep 20, 2005 1:59 pm

Hola STTR. me parece que la cadena de inserción que estas haciendo es correcta, el problema tal vez sea que cuando mandas un INSERT, y el tipo de dato que recibe la tabla es texto, entonces tienes que agregarle comillas simple para que corra la cadena sql, por ejemplo :
Dim s as string
s="insert into pedidos(id,can,det) values(' " & txtide.text & " '," & txtcan.text & ",' " & txtdet.text & " ')".
Como podrás ver, los campos id y det son de tipo texto, entonces reciben
una variable entre comillas simple.
Ahora ejecuta esta consulta sql con un objeto Connection de ADO, que es
mucho mas eficiente, pero como lo estas ejecutando creo que también debe funcionar.
YK
Yukito Sinomura
Novato
Novato
 
Mensajes: 3
Registrado: Mié Mar 09, 2005 2:56 pm


    

Volver a Visual Basic .NET

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados