• Lunes 18 de Noviembre de 2024, 14:32

Autor Tema:  Asignar Un Indice Automaticamente  (Leído 1325 veces)

analaura

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Asignar Un Indice Automaticamente
« en: Martes 24 de Febrero de 2004, 23:13 »
0
hola, oigan como puedo asignar automaticamente una clave al momento en que yo entro a la forma  en el text tiene que aparecer el siguiente consecutivo( utilizando sql server y ado de visual basic).

y como  puedo jalar datos de una tabla, pero que me reconozca ese dato que se esta poniendo en la forma que se abre.

ok, gracias por la ayuda de antemano.

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Asignar Un Indice Automaticamente
« Respuesta #1 en: Miércoles 25 de Febrero de 2004, 18:13 »
0
Hola AnaLaura.

Suponiendo que el valor del campo de la tabla que quieres incrementar sea numérico (y si no lo es, habría que usar una función de conversión), Usa la función Max que te devolverá el valor máximo para el campo, luego le sumas 1 y ya está:

SELECT MAX(Campo) FROM Tabla

Chao.

analaura

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Asignar Un Indice Automaticamente
« Respuesta #2 en: Sábado 28 de Febrero de 2004, 02:34 »
0
si, es numerico el campo, pero como le hago para que al habrir la forma lo ponga luego luego

9tnix

  • Miembro MUY activo
  • ***
  • Mensajes: 165
  • Nacionalidad: pe
    • Ver Perfil
Re: Asignar Un Indice Automaticamente
« Respuesta #3 en: Miércoles 3 de Marzo de 2004, 15:39 »
0
Salu2 AnaLura

Digamos que tienes una Tabla asi:

Cliente
---------
IdCliente    <----- Clave primaria de la cual se quiere el consecutivo
Nombres
Apellidos
....

1. Abre un recordset con el ultimo registro de la tabla Cliente
2. Si este valor es numerico ese valor asignalo a una variable (tambien puedes usar otro metodo).
3. Sumale mas 1 y este valor lo colocas en un text para mostrarlo
4. luego ese valor lo guardas en la bd

Yo lo hago de la sgte forma:
Bueno aki estoy generando la nueva clave de la tabla Ciudades


'//Esto en un modulo para que te sirva para otras tablas y asi generas la clave

Public Function NuevoId(Query As String, Tamaño As Byte) As String
Dim Rst As New ADODB.Recordset
'//Abro un recordset Temporal
Rst.Open Query, Cnx, adOpenDynamic, adLockReadOnly, adCmdText
'//Si hay registros
If Not (Rst.BOF And Rst.EOF) Then
  '//Me muevo al ultimo registro
  Rst.MoveLast
  '//Calculo la nueva Clave usando el campo fields(0)
  '//La variable Tamaño contiene el tamaño del campo en mi caso el campo tiene Char(3) asi que me retorna una cadena numerica generada de 3 caracteres
  NuevoId = Right(10000000001# + Val(Rst.Fields(0).Value), Tamaño)
Else
  '//En caso no haya registros me devuelve 001 en este caso
  NuevoId = Right(10000000001#, Tamaño)
End If
End Function

.....
'//Aki llamo a la funcion que me permite generar la nueva clave esto lo debes poner tu en el Form_load
RsCiudad!IdCiudad = NuevoId("Select Top 1 IdCiudad From Ciudad Order By IdCiudad DESC", 3)

Espero que no te haya confundido y sirva de ayuda

Un saludo zeekel ®
[KGT]
TP-Systems
our knowledge is our power!

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Asignar Un Indice Automaticamente
« Respuesta #4 en: Jueves 4 de Marzo de 2004, 15:54 »
0
Hola analaura.

Si usas la búsqueda en este foro, puedes encontrar temas como este:
http://foros.solocodigo.com/index.php?showtopic=4503

Abur.

9tnix

  • Miembro MUY activo
  • ***
  • Mensajes: 165
  • Nacionalidad: pe
    • Ver Perfil
Re: Asignar Un Indice Automaticamente
« Respuesta #5 en: Viernes 5 de Marzo de 2004, 07:22 »
0
Hola analaura

tengo ejemplo no se si te pueda servir
mira el adjunto

Un saludo zeekel ®
[KGT]
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
TP-Systems
our knowledge is our power!