Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

[BD] Campo autonumerico

Estas en el tema de [BD] Campo autonumerico en el foro de Visual Basic clásico en Foros del Web. Buenas noches. Tengo varios campos, entre esos tengo un campo en la base de datos llamado CODIGO, es un campo autonumerico, como va un valor ...
  #1 (permalink)  
Antiguo 23/05/2011, 22:29
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 1
[BD] Campo autonumerico

Buenas noches.
Tengo varios campos, entre esos tengo un campo en la base de datos llamado CODIGO, es un campo autonumerico, como va un valor autonumerico y quiero saber como hacer que el visual me reconosca el ultimo valor del campo autonumerico y siga agregando desde alli.

Conexion

Código:
    Set db = New ADODB.Connection
    Set rs = New ADODB.Recordset
    
    With db
 .Provider = "Microsoft.jet.oledb.4.0" '(Access 2000)
 .ConnectionString = "datos.mdb"
 .Open
End With
Código:
Call Grabar_BDCancionero(Aqui va el valor de codigo, Hora, Fecha)
Gracias.
  #2 (permalink)  
Antiguo 24/05/2011, 05:46
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: [BD] Campo autonumerico

Si es campo autonumérico lo más probable es que no haga falta informarlo en el INSERT y que la base de datos lo inserte automáticamente por lo que tu INSERT podría prescindir de él.

Si no es así o sigues empeñado en saberlo, lo mejor es que lo recuperes antes con un SELECT MAX(código) FROM TABLA y donde lo recojas le añadas uno.

Siempre que sea posible es mejor la primer opción porque así lo gestiona la base de datos directamente
  #3 (permalink)  
Antiguo 24/05/2011, 18:16
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: [BD] Campo autonumerico

Cita:
Iniciado por Heimish2000 Ver Mensaje
Si es campo autonumérico lo más probable es que no haga falta informarlo en el INSERT y que la base de datos lo inserte automáticamente por lo que tu INSERT podría prescindir de él.

Si no es así o sigues empeñado en saberlo, lo mejor es que lo recuperes antes con un SELECT MAX(código) FROM TABLA y donde lo recojas le añadas uno.

Siempre que sea posible es mejor la primer opción porque así lo gestiona la base de datos directamente
Bueno eligiendo la primera opcion digamos que al hacer el INSERT original

Código:
sSql = "INSERT INTO BDCancionero VALUES("
    sSql = sSql & Codigo & ", '" & Nombre & "', '" & Ruta & "', " & Cantidad & ", '" & Tipo & "')"
Y asi queda

Código:
sSql = "INSERT INTO BDCancionero VALUES("
    sSql = sSql  & Nombre & "', '" & Ruta & "', " & Cantidad & ", '" & Tipo & "')"
Y me dice falta operador en la expresion de consulta vb
  #4 (permalink)  
Antiguo 25/05/2011, 02:10
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: [BD] Campo autonumerico

Te falta poner una comilla antes de Nombre (sólo tiene la de después)
  #5 (permalink)  
Antiguo 25/05/2011, 10:51
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: [BD] Campo autonumerico

Cita:
Iniciado por Heimish2000 Ver Mensaje
Te falta poner una comilla antes de Nombre (sólo tiene la de después)
No estoy muy claro con el asunto de las comillas

Código:
  sSql = sSql & "','" & Nombre & "',' " & Ruta & "', " & Cantidad & ", '" & Tipo & "')"
Lo he dejado asi y me manda error de sintaxis en la instruccion insert into Todos son strings

Código:
Public Function Grabar_BDCancionero(Nombre As String, Ruta As String, Cantidad As Integer, Tipo As String)
    Dim sSql As String
    
    
    sSql = "INSERT INTO BDCancionero VALUES("
    sSql = sSql & "','" & Nombre & "',' " & Ruta & "', " & Cantidad & ", '" & Tipo & "')"
    
    Set rs = db.Execute(sSql)
    
End Function
Disculpe la molestia
  #6 (permalink)  
Antiguo 26/05/2011, 02:04
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: [BD] Campo autonumerico

Es que en el SQL que estás construyendo estás poniendo ahora mismo:

Código SQL:
Ver original
  1. INSERT INTO BDCancionero VALUES(','

Y luego ya el nombre y demás.

¿No ves nada raro ahí?
  #7 (permalink)  
Antiguo 26/05/2011, 09:14
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: [BD] Campo autonumerico

Cita:
Iniciado por Heimish2000 Ver Mensaje
Es que en el SQL que estás construyendo estás poniendo ahora mismo:

Código SQL:
Ver original
  1. INSERT INTO BDCancionero VALUES(','

Y luego ya el nombre y demás.

¿No ves nada raro ahí?
Muy cierto ya lo corregí, me quedo

Código:
    sSql = "INSERT INTO BDCancionero VALUES('"
    sSql = sSql & Nombre & "' , '" & Ruta & "', " & Cantidad & ", '" & Tipo & "')"
Lastimosamente no me funciona ya que me dice el número de valores de consulta y el número de campos de destino son diferentes, creo que solo me queda una opcion mas complicada la que es llamar al SELECT MAX y eso. Gracias de igual forma.
  #8 (permalink)  
Antiguo 26/05/2011, 09:20
 
Fecha de Ingreso: marzo-2011
Mensajes: 21
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: [BD] Campo autonumerico

Cita:
Iniciado por suarex Ver Mensaje
Muy cierto ya lo corregí, me quedo

Código:
    sSql = "INSERT INTO BDCancionero VALUES('"
    sSql = sSql & Nombre & "' , '" & Ruta & "', " & Cantidad & ", '" & Tipo & "')"
Lastimosamente no me funciona ya que me dice el número de valores de consulta y el número de campos de destino son diferentes, creo que solo me queda una opcion mas complicada la que es llamar al SELECT MAX y eso. Gracias de igual forma.
Ya lo solucione, tenia que primero nombrar los campos

Código:
  sSql = "INSERT INTO BDCancionero (Nombre,Ruta,Cantidad,tipo) VALUES('"
Etc...

Gracias!

Etiquetas: bd, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:12.