Autor
|
Tema: Autoenumerar desde ultimo valor [Base de datos] (Leído 2,785 veces)
|
suarex
Desconectado
Mensajes: 7
|
Buenos dias 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 NUMEROOption Explicit Dim rs As ADODB.Recordset Dim db As ADODB.Connection
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
'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(k + 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") Command1.Visible = False Command2.Visible = True End Sub
Private Sub Command2_Click() 'recorremos todos los archivos de musica y guardamos cada uno en la DB. Dim Carpeta_Genero As Long Dim Carpeta_Artista As Long Dim i As Integer Dim j As Integer Dim k As Integer Text1.Clear Carpeta_Genero = Dir1.ListCount For i = 0 To Dir1.ListCount - 1 Dir2 = Dir1.List(i) For j = 0 To Dir2.ListCount - 1 'Dir1 = Dir1.List(i) 'If i = 0 Then ' Dir2.Path = Dir1.List(i) 'Else ' Dir2.Path = Dir1 ' Dir1 = Dir1.List(-2) 'End If File1 = Dir2.List(j) For k = 0 To File1.ListCount - 1 File1.ListIndex = k Text1.AddItem (File1.Path & "\" & File1.FileName) Next k Next j Next i Label2.Caption = Text1.ListCount End Sub
Public Function Grabar_BDCancionero(Codigo As Long, Nombre As String, Ruta As String, Cantidad As Integer, Tipo As String) Dim sSql As String sSql = "INSERT INTO BDCancionero VALUES(" sSql = sSql & Codigo & ", '" & Nombre & "', '" & Ruta & "', " & Cantidad & ", '" & Tipo & "')" Set rs = db.Execute(sSql) End Function Private Sub Dir1_Change() Dir1.Path = Dir1 End Sub
Private Sub Dir2_Change() File1.Path = Dir2.Path End Sub
Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub
Private Sub Form_Load() File1.Pattern = "*.mpg;*.wmv;*.avi;*.mp4;*.m2v;*.vob;*.mov;*.asf;*.mp3;*.mp2;*.swa;*.wma;*.wav;*.mid;*.ogg;*.mkv;*.mpa;*.ac3;*.aac;*.kar;*.flv" End Sub
Private Sub Image1_Click() End End Sub
|
|
|
En línea
|
|
|
|
seba123neo
|
antes de guardar, haces esta consulta: SELECT MAX(codigo)+1 AS nuevoCodigo FROM BDCancionero
guarda el valor de "nuevoCodigo" en una variable e inserta esa misma en el codigo. saludos.
|
|
|
En línea
|
|
|
|
suarex
Desconectado
Mensajes: 7
|
antes de guardar, haces esta consulta: SELECT MAX(codigo)+1 AS nuevoCodigo FROM BDCancionero
guarda el valor de "nuevoCodigo" en una variable e inserta esa misma en el codigo. saludos. Gracias por responder.He hecho estas 3 modificaciones. Pero me dice que no coinciden los tipos, me extraña porque las almaceno como un Dim Integer. 'Declaraciones Dim nuevocodigo As Integer
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
|
|
« Última modificación: 19 Mayo 2011, 04:41 am por suarex »
|
En línea
|
|
|
|
seba123neo
|
es que asi no va a funcionar, esto: 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.
|
|
|
En línea
|
|
|
|
suarex
Desconectado
Mensajes: 7
|
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 'Declaraciones Dim nuevoCodigo As ADODB.Recordset nuevoCodigo.Open = "SELECT MAX (codigo)+1 AS nuevoCodigo FROM BDCancionero" Aun asi me dice que esperaba una funcion o una variable.
|
|
|
En línea
|
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Como almacenar datos desde WEB a una base de datos?
PHP
|
Clavo Oxidado
|
4
|
3,282
|
14 Junio 2007, 21:14 pm
por newinl
|
|
|
Consultar un valor de una base de datos en un txtbox
Programación Visual Basic
|
MandingoPC
|
0
|
1,610
|
27 Abril 2012, 15:42 pm
por MandingoPC
|
|
|
Descargas en las redes gubernamentales: desde pornografía al último Windows 8
Noticias
|
wolfbcn
|
0
|
1,612
|
7 Mayo 2013, 14:40 pm
por wolfbcn
|
|
|
Ayuda p listar datos de base de datos y usar el valor para enviar a otra pagina
PHP
|
daciocco
|
1
|
3,007
|
31 Diciembre 2013, 16:26 pm
por #!drvy
|
|
|
Utilizar el valor de la base de datos para mandar un icono a una tabla
PHP
|
Guillermo-Mireles-G
|
5
|
2,936
|
1 Junio 2018, 21:11 pm
por apuromafo CLS
|
|