SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: analaura en Martes 24 de Febrero de 2004, 23:13
-
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.
-
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.
-
si, es numerico el campo, pero como le hago para que al habrir la forma lo ponga luego luego
-
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]
-
Hola analaura.
Si usas la búsqueda en este foro, puedes encontrar temas como este:
http://foros.solocodigo.com/index.php?showtopic=4503 (http://foros.solocodigo.com/index.php?showtopic=4503)
Abur.
-
Hola analaura
tengo ejemplo no se si te pueda servir
mira el adjunto
Un saludo zeekel ®
[KGT]