Título: Autoenumerar desde ultimo valor [Base de datos] Publicado por: suarex en 19 Mayo 2011, 03:10 am Buenos dias ;D
Tengo un problema, miren tengo un programa que se encarga de agregar los directorios de los archivos a una base de datos. lo hago seleccionando un directorio con un dirlistbox. El agrega en la base de datos los siguiente campos: codigo, nombre, ruta, tipo. El campo codigo cuenta cuantos archivos hay en la base de datos, pero el problema es que luego de agregar. cuando vuelvo a agregar mas archivos en la base de datos me da un error que no me permite duplicados. (obviamente yo lo bloque porque no quiero duplicados) quisiera saber como puedo obtener el ultimo valor del campo codigo e ir sumando desde alli. CODIGO ES UN NUMERO Código: Option Explicit Título: Re: Autoenumerar desde ultimo valor [Base de datos] Publicado por: seba123neo en 19 Mayo 2011, 03:58 am antes de guardar, haces esta consulta:
Código
guarda el valor de "nuevoCodigo" en una variable e inserta esa misma en el codigo. saludos. Título: Re: Autoenumerar desde ultimo valor [Base de datos] Publicado por: suarex en 19 Mayo 2011, 04:30 am antes de guardar, haces esta consulta: Gracias por responder.Código
guarda el valor de "nuevoCodigo" en una variable e inserta esa misma en el codigo. saludos. He hecho estas 3 modificaciones. Pero me dice que no coinciden los tipos, me extraña porque las almaceno como un Dim Integer. Citar 'Declaraciones Dim nuevocodigo As Integer Citar Private Sub Command1_Click() 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 Set db = "SELECT MAX (codigo)+1 AS nuevoCodigo FROM BDCancionero" 'Aki tomo el index de k. Dim k As Long Dim archivo() As String Dim Modificar As String Screen.MousePointer = 11 For k = 0 To Text1.ListCount - 1 If InStr(Text1.List(k), "'") Then Modificar = Modificar & "Original: " & Text1.List(k) & (Chr(13) & Chr(10)) Text1.List(k) = Replace(Text1.List(k), "'", "") Modificar = Modificar & " Final: " & Text1.List(k) & (Chr(13) & Chr(10)) End If archivo = Split(Text1.List(k), "\", -1, vbTextCompare) Call Grabar_BDCancionero(nuevocodigo + 1, Mid(archivo(4), 1, Len(archivo(4)) - 4), Text1.List(k), 0, Right(archivo(4), 4)) Next k Screen.MousePointer = 0 MsgBox "Se ha actualizado la base de canciones", vbInformation MsgBox "Modificaciones Pendientes " & (Chr(13) & Chr(10)) & Modificar 'Set rs = db.Execute("select top 10 * from BDCancionero") End Sub Título: Re: Autoenumerar desde ultimo valor [Base de datos] Publicado por: seba123neo en 19 Mayo 2011, 05:02 am es que asi no va a funcionar, esto:
Citar Set db = "SELECT MAX (codigo)+1 AS nuevoCodigo FROM BDCancionero" ahi no se que haces, estas asignando la variable de la conexion de la base de datos a un string...eso no va. la consulta que te pase debes pasarsela a la propiedad .Open de un recordset..y asi obtenes el codigo. saludos. Título: Re: Autoenumerar desde ultimo valor [Base de datos] Publicado por: suarex en 19 Mayo 2011, 05:19 am es que asi no va a funcionar, esto: ahi no se que haces, estas asignando la variable de la conexion de la base de datos a un string...eso no va. la consulta que te pase debes pasarsela a la propiedad .Open de un recordset..y asi obtenes el codigo. saludos. >:( es cierto Código: 'Declaraciones Código: nuevoCodigo.Open = "SELECT MAX (codigo)+1 AS nuevoCodigo FROM BDCancionero" Aun asi me dice que esperaba una funcion o una variable. Título: Re: Autoenumerar desde ultimo valor [Base de datos] Publicado por: seba123neo en 19 Mayo 2011, 05:28 am es que no se usa asi, tenes que leer un manual de ADO antes de ponerte a hacer esto.
aca tenes un ejemplo simple..pero hay mas busca. Conectar a una base de datos de SQL Server con VB6 (http://www.elguille.info/vb/bases/ADO/abrirbaseSQL.htm) |