• Lunes 23 de Diciembre de 2024, 14:44

Autor Tema:  Error Al Añadir Un Registro A Tabla Access  (Leído 6329 veces)

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Error Al Añadir Un Registro A Tabla Access
« en: Viernes 7 de Mayo de 2004, 17:16 »
0
Al consultar ,mediante código, una tabla de access que tiene un campo autonumérico, cuando hago el openrecordset de la consulta SQL me da el siguiente error:

Error 3622 en tiempo de ejecución:
 You must use the dbSeeChanges option with openrecordset when accesing
 a SQL Server table that has an IDENTITY column

Si sabeis como solucionarlo os estaré agradecidos.
Saludos.

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Error Al Añadir Un Registro A Tabla Access
« Respuesta #1 en: Lunes 10 de Mayo de 2004, 17:43 »
0
Hola ebolo.

No conozco la causa del error, pero sí me sorprende el texto que muestra. Veo que usas DAO... tal vez te convendría (si no te supone mucho curro, claro) usar ADO con un proveedor OleDb Microsoft jet 4.0 para utilizar bases de datos access 2000.

Suerte.

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Error Al Añadir Un Registro A Tabla Access
« Respuesta #2 en: Martes 18 de Mayo de 2004, 14:05 »
0
Hola Brroz por responder.
Sí uso DAO porque siempre he usado DAO y me ha ido bien. Nunca he probado a usar ADO.
Estoy un poco desesperado porque no hay manera.
La base de datos es de access97, se compone de tablas vinculadas por ODBC a una base de datos de SQL server. Parece ser que la tabla a la que quiero acceder tiene una columna autonúmerica con la propiedad de identidad (que no sé lo que es con seguridad).
He conseguido que no me dé el error que menciono haciendo:

....openrecordset(consulta, dbOpenDynaset, dbSeeChanges), pero cuando hago el update del recordset me dá un error de ODBC con lo que no consigo añadir nada.

Si alguién tiene alguna idea se lo agradecería.

Una pregunta, un campo autonumérico ¿se debe añadir en el update?, no sé si me habré explicado bien.


Gracias.

camarena6

  • Miembro activo
  • **
  • Mensajes: 47
    • Ver Perfil
Re: Error Al Añadir Un Registro A Tabla Access
« Respuesta #3 en: Miércoles 19 de Mayo de 2004, 19:11 »
0
Que tal:
Por lo general el campo autonumerico (ID) solo se utiliza en la sentencia UPDATE para hacer referencia al campo que vas a actualizar, si intentas modificarlo te puede causar un error ya que este es generado por una unica vez al ingresar un registro nuevo.
 aqui hay un ejemplo de una sentencia SQL UPDATE:

Sub moduser(nombre As String, nom As String, area As String, uni As Integer, dep As Integer, car As String, pas As String,iid as String)

ssql = "UPDATE Usuarios SET Nombrec='" & nombre & "',Nombre='" & nom & "',Area='" & area & "',Unidad='" & uni & "',Departamento='" & dep & "',Cargo='" & car & "',Contraseña='" & pas & "' WHERE Id_Usuario=" & iid

cnBD.Execute ssql

End Sub

Como puedes ver el Campo autonumerico unicacmente sirve como referencia
para la modificacion y no se incluye dentro de los campos a modificar.

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Error Al Añadir Un Registro A Tabla Access
« Respuesta #4 en: Jueves 20 de Mayo de 2004, 16:56 »
0
Gracias camarena6 por la  ayuda; si quiero insertar un registro nuevo a la tabla ¿cómo lo debo hacer teniendo el campo autonumérico?.
Siempre he usado DAO y ahora por lo del error estoy intentado hacerlo con el objeto "Microsoft ADO Data Control 6.0 SP3 OLEDB" y no tengo más que errores.
Si teneis algún ejemplo de como usar el Ado Data Control, os estaré agradecido.
Saludos.

camarena6

  • Miembro activo
  • **
  • Mensajes: 47
    • Ver Perfil
Re: Error Al Añadir Un Registro A Tabla Access
« Respuesta #5 en: Jueves 20 de Mayo de 2004, 18:05 »
0
Cuibo Ebolo:

Al añadir un Registro nuevo a una tabla nuevamente te digo que el campo autonumerico lo genera la BD automaticamente por lo que te debes preocupar es por validar los datos que van a ser introducidos en los campos restantes.

Por lo del AdoDc 6.0 yo no lo manejo, trabajo directamente con puras sentencias
SQL y con referencias ADODB. Ojala y alguien mas te pueda Ayudar con tu problema. :kicking:  
 :whistling:

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Error Al Añadir Un Registro A Tabla Access
« Respuesta #6 en: Jueves 20 de Mayo de 2004, 18:23 »
0
Gracias de nuevo camarena6, no quiero ser pesado, pero con código cómo lo haces?.
He visto varios ejemplo por el foro, pero estoy hecho un lio y no tengo má que errores de ODBC.
Saludos.
 :brickwall:

camarena6

  • Miembro activo
  • **
  • Mensajes: 47
    • Ver Perfil
Re: Error Al Añadir Un Registro A Tabla Access
« Respuesta #7 en: Jueves 20 de Mayo de 2004, 19:46 »
0
Cuibo Ebolo:

este es un poco complicado pero ahi va:
1-En en menu proyecto, escoge referencias, escoge Microsoft ActiveX DataObjects 2.1 Library.

2.-Crea un Modulo

3.-Dentro del modulo crea un Sub main()
 
Código: Text
  1. Sub main()
  2.  Set cnBD = New ADODB.Connection
  3.  cnBD.CursorLocation = adUseClient
  4.  cnBD.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Tarificador\projec_semar\BD\base.mdb;Persist Security Info=False"
  5.  cnBD.Open
  6. frmpass.Show 'Esta es tu Forma de inicio
  7.  End Sub
  8.  

En la linea de ConnectionString, despues de Source= va la direccion de tu BD

4.-En El explorador de proyecto Da con el click derecho y escoge propiedades
y como objeto inicial Pones:Sub Main()

5.-Ahora ya esta tu programa conectado a tu BD mediante la variable cnBD declarada en el modulo (Debes declararla como publica Es importante)ejemplo:
Public Cnbd as ADODB.Connection

6.-El siguiente es un ejemplo de como añadir un registro Usando este metodo:

Código: Text
  1. Sub insert_proveedor(sRazon As String, sRfc As String, sDireccion As String, sCiudad As String, sEstado As String, sTelefono As String)
  2. ssql = " insert into proveedores (razon_social,rfc,direccion,ciudad,estado,telefono)VALUES('" & sRazon & "','" & sRfc & "','" & sDireccion & "','" & sCiudad & "','" & sEstado & "','" & sTelefono & "')"
  3. cnBD.Execute ssql
  4.  
  5. End Sub
  6.  
Nota que los valores que toma el procedimiento son los campos de la BD los puedes tomar de las cajas de texto de tu formulario y mandarselas al procedimiento

Espero que esto aunque es poco te sirva.
Y ya sabes si tienes otra duda Con gusto la respondere :kicking:

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Error Al Añadir Un Registro A Tabla Access
« Respuesta #8 en: Jueves 20 de Mayo de 2004, 23:12 »
0
Gracias de nuevo por la explicación tan detallada.
Ya lo he entendido bien, he hecho una prueba sobre una base de datos nueva y me funciona bien.
Pero con la tabla que tengo que trabajar no hay manera, error de ODBC.... parece ser que hay varias tablas relacionadas a través de un campo y por eso me dá el error, pero no lo sé con seguridad, he pedido las relaciones de las tablas haber si me las quieren dar, sino lo tengo crudo.
Muchas gracias por la ayuda,  ¡¡ya he aprendido a usar ADO!!
Saludos.
 :hola:

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Error Al Añadir Un Registro A Tabla Access
« Respuesta #9 en: Sábado 22 de Mayo de 2004, 21:18 »
0
Por fin he resuelto mi problema y puedo seguir la aplicación.
Voy a explicar lo que he hecho, al fianl por DAO porque toda la aplicación la tengo hecha así, por si a alguien le interesa.
El error que tenía era:
"Error 3622 en tiempo de ejecución:
You must use the dbSeeChanges option with openrecordset when accesing
a SQL Server table that has an IDENTITY column."

Este error es debido a que la tabla de la base de datos de SQL Server tiene una columna autonumérica, que en caso de que queramos añadir un registro nuevo a la tabla debemos hacer la consulta del recordset de esta manera:
Set rs=bd.openrecordset(consulta, dbOpenDynaset, dbSeeChanges),
estando definidos anteriormente el rs, bd y consulta como:
Dim bs as database, rs as recordset, consulta as string.
siendo 'consulta'  la consulta SQL, que en este caso, es de todos los campos de la tabla en cuestión.
Hay que poner bien todos los datos de los campos para que no nos dé error de ningún tipo, y como me explica camarena6 no se debe poner dato en el campo autonumérico al insertar un registro nuevo.

Pues ya está, por fin después de una semana con el error.
 :)  :)
Saludos y si no está bien explicado lo siento.

camarena6

  • Miembro activo
  • **
  • Mensajes: 47
    • Ver Perfil
Re: Error Al Añadir Un Registro A Tabla Access
« Respuesta #10 en: Lunes 24 de Mayo de 2004, 19:57 »
0
Cuibo Ebolo:

que bueno que se soluciono la bronca
Una pregunta, ya se que tengo que iniciar una discusion pero me dio flojera

¿Sabes como puedo crear mis Iconos? Necesito crear uno principal, y otros varios
para otro tipo de botones, por que los Botones ya me aburrieron.

Si sabes como echame un grito