Visual Basic - INICIALIZAR UN CAMPO AUTONUMERICO

Life is soft - evento anual de software empresarial
 
Vista:

INICIALIZAR UN CAMPO AUTONUMERICO

Publicado por ivan (463 intervenciones) el 29/11/2005 18:14:29
Es posible inicializar un campo autonumérico de una tabla de access....??

Hacer que inicie desde 0 nuevamente o que se inicie con cualquier otro número....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Daniel

RE:INICIALIZAR UN CAMPO AUTONUMERICO

Publicado por Daniel (360 intervenciones) el 29/11/2005 19:08:26
Lo que puedes hacer es tenerlo solo como numerico (no autonumerico) y generar el autonumerico de Visual

Tipo asi:

Data1.recordset.movelast
Var = val(text_codigo)
Var = Var +1
Data1.recordset.addnew
Text_codigo.text = str(Var)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:INICIALIZAR UN CAMPO AUTONUMERICO

Publicado por ivan (463 intervenciones) el 29/11/2005 19:20:00
Eso usaba en un principio (algo similar... buscaba el MAX y le sumaba 1), pero como puede darse el caso de que varios usuarios entren a esa parte del código, me queda la duda que se generen 2 numeros iguales.

En este foro me recomendaron que usara variables autonuméricas para asegurarme que no se repitieran los números...

En caso de que realmente no se pueda inicializar un campo autonumérico tendré que ingeniar algo para evitar que mas de un usuario genere el mismo número. Muchas gracias por el comentario.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:INICIALIZAR UN CAMPO AUTONUMERICO

Publicado por Cecilia Colalongo (3116 intervenciones) el 29/11/2005 19:58:22
Fijate en: http://support.microsoft.com/?kbid=287756 se hace con ADOX.

Function ChangeSeed(strTbl As String, strCol As String, lngSeed As Long) As Boolean
'You must pass the following variables to this function.
'strTbl = Table containing autonumber field
'strCol = Name of the autonumber field
'lngSeed = Long integer value you want to use for next AutoNumber.

Dim cnn As ADODB.Connection
Dim cat As New ADOX.Catalog
Dim col As ADOX.Column

'Set connection and catalog to current database.
Set cnn = CurrentProject.Connection
cat.ActiveConnection = cnn

Set col = cat.Tables(strTbl).Columns(strCol)

col.Properties("Seed") = lngSeed
cat.Tables(strTbl).Columns.Refresh
If col.Properties("seed") = lngSeed Then
ChangeSeed = True
Else
ChangeSeed = False
End If
Set col = Nothing
Set cat = Nothing
Set cnn = Nothing

End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:INICIALIZAR UN CAMPO AUTONUMERICO

Publicado por ivan (463 intervenciones) el 29/11/2005 20:35:00
De entrada no le entiendo nada... pero voy a revisarlo bien para poder usarlo... MUCHAS GRACIAS por el dato.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:INICIALIZAR UN CAMPO AUTONUMERICO

Publicado por Alfonso (1 intervención) el 11/11/2006 13:22:23
un truco que uso yo es utilizar una tabla llamada codigos con 2 campos:
- un ID autonumerico
- otro txt campo que me sirva para identificar mi ID

el proceso sería el siguiente. si por ejemplo quiero insertar un campo en la tabla personas, lo que hago es:
- primero insertar uno en la tabla codigos con un txt unico.
- busco el ID a partir de mi TXT y lo almaceno en una variable
- borro el registro de la tabla codigos

y ese ID estoy seguro de que es unico y lo puedo insertar en el campo numerico identificador de la table personas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:INICIALIZAR UN CAMPO AUTONUMERICO

Publicado por enkee (1 intervención) el 09/02/2008 21:23:12
Hola,
un campo autonumerico no se puede reiniciar a menos que elimines el campo autonumerico y lo vuelvas a poner.
En caso no quieras eliminar los datos del autonumerico y lo que quieras es que los numeros que ya han sido utilizados y luego han sido eventualmente eliminados vuelvan ha ser utilizados te recomiendo que utilices la opción, asignar numero aleatorio el las propiedades del campo de la tabla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

INICIALIZAR UN CAMPO AUTONUMERICO

Publicado por COYOTE (1 intervención) el 19/09/2016 17:51:47
Se reinicializan cuando la tabla está vacía y compactas la base de datos, vuelve el índice a cero.

Debes incluir la referencia (añadir referencia, pestaña COM...) para teber acceso a JRO
Microsoft Jet and Replication Objects 2.6 Library

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub CompactarBase()
Dim rutaBD As String = "C:\Basedatos.mdb" ' Base de datos a compactar
Dim NuevaRUTABD As String = "C:NuevaBaseDatos.mdb"   ' Base de datos compactada (nueva)
'Dim jE As JRO.JetEngine
Dim jE = New JRO.JetEngine
 
Try
            jE.CompactDatabase("Data Source=" & rutaBD & ";", "Data Source=" & NuevaRUTABD & ";")
Catch
            MessageBox.Show("NO FUNCIONA", "Error al Compactar", MessageBoxButtons.OK, MessageBoxIcon.Error)
 
End Try
 
End Sub
 
 
' ahora queda eliminar la original y renombrar la nueva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar