Título: ID en base de datos Publicado por: TheGhost(Z) en 19 Junio 2009, 20:09 pm Hola, amigos.
Veran, tengo una base de datos con tablas Albaran y RecibosDePago. y las ID's de cada tabla son autonumericas. Pues mi problema esta en que al crear un Albaran tambien tengo que crear un ReciboDePago, pero mi problema esta que como relaciono el Albaran con RecibosDePago, si cada uno generan sus ID automáticamente. he pensado en una ves guardado el albaran, ya se genera la ID. y esta ID tendria que asignarla al ReciboDePago. Pero para eso tendría que cerrar el albaran, luego buscarlo y abrirlo. cosa que asi ya sabria el ID que se asigno a mi albaran. luego recien crear el ReciboDepaGO.. pues como veran estoy hecho un lio.. ayuda porfavor.. Título: Re: ID en base de datos Publicado por: Spider-Net en 19 Junio 2009, 23:47 pm Pues no entiendo muy bien del todo cual es tu problema la verdad, pero si quieres relacionar un albarán y un recibo porque no usas una tabla intermedia y creas una relación?
Albarán ------------- corresponde -------------recibo idalbaran ida - idr idrecibo En la relación guardas el id de cada uno de ellos y cuando quieras saber que albarán corresponde con qué recibo solo tienes que consultar la tabla corresponde. Es como siempre se ha hecho no? De todos modos no sé si entendí del todo bien tu pregunta. Título: Re: ID en base de datos Publicado por: cassiani en 20 Junio 2009, 01:15 am depende del tipo de relación que necesites, puedes hacerla de uno a uno ó de uno a muchos, colocando un campo foraneo en la tabla recibos.. pero, eso no tiene nada que ver con vb6 :-\
Título: Re: ID en base de datos Publicado por: seba123neo en 20 Junio 2009, 01:54 am Hola, pues con un ID :P...no importa que haya un registro autonumerico...si queres relacionarlas es con un ID y no hay otra...
Título: Re: ID en base de datos Publicado por: TheGhost(Z) en 20 Junio 2009, 10:02 am Lo que deseo es: Recibir el último ID de una inserción. Practicamente algo igual como se ve aqui: http://www.desarrolloweb.com/articulos/1433.php (http://www.desarrolloweb.com/articulos/1433.php)
Título: Re: ID en base de datos Publicado por: seba123neo en 20 Junio 2009, 19:55 pm hace un Max(idregistro) y listo...despues le sumas 1 para el nuevo registro...
Título: Re: ID en base de datos Publicado por: SKL (orignal) en 20 Junio 2009, 23:39 pm hace un Max(idregistro) y listo...despues le sumas 1 para el nuevo registro... Ojo aca... si queres visualizar esto... tenes que hacer asi... Código: SELECT MAX(Campo) AS Variable FROM tabla entonces si queres visualizar El campo maximo de esa tabla haces lo siguiente Código: debug.print RecordeSet("variable") el debug.print puede ser reemplazado por otra variable o un txt y a la vez poder sumarle un valor. PD: a mucha gente le confunde y no sabe como sacar el valor despues de hacer el query saludos Título: Re: ID en base de datos Publicado por: XcryptOR en 21 Junio 2009, 03:29 am de esta forma adiciono un nuevo registro cuando el valor de este es autonumerico, hago la consulta primero y al valor obtenido del campo ID le agrego 1:
Código
con respecto a lo de la relación que deben tener las tablas eso ya te lo explico muy bien cΔssiΔnі y es independiente de vb. saludos ;D Título: Re: ID en base de datos Publicado por: TheGhost(Z) en 21 Junio 2009, 15:02 pm Hola, XcryptOR. Me podrías explciar esto, xq me parece interesante el código.
Supongamos que tengo la tabla Clientes con dos campos ID (Autonumerico) y Nombre (Char) Paso1 Inserto un registo. Dim Rs As New Recorset Rs.Open "Clientes" Rs.AddNew Rs!Nombre = TheGhost(Z) Rs.UpDate Rs.Close Ahora: como obtengo esa id, conciderando que unos x usuarios estan ingresando datos al mismo tiempo. Título: Re: ID en base de datos Publicado por: XcryptOR en 21 Junio 2009, 16:17 pm agregale la clausula WHERE especificando que vamos a filtrar por Nombre
Código: With RecorsetNuevoRegistro Título: Re: ID en base de datos Publicado por: TheGhost(Z) en 21 Junio 2009, 17:07 pm Chispas, la frase "mi cadena conexion", crei que lo enviaba como un parametro al ingresar un nuevo registro y luego con ese parametro me diria la ID que se generó.
La verdad, es que eso no sirve. xq, si hay varios usuarios que hicieron el mismo ingreso veo muy dificel que reciba la ID correcta. Supongo que para que eso funcione antes de ingresar el nuevo registro tendría que: 1.- Bloquear la Tabla (para que nadie ingrese ningun registro) 2.- Ingresar el registro 3.- Obtener el Ultimo registro ingresado 4.- Desbloquear la Tabla De esta manera creo que cada usuario recibiria la ID correcta del registro ingresado. Pero todo esto es mucho codigo. En relidad me preguntaba por algo profesional, de esas que utilizan las grandes empresas. Supongo que tambien se habran topado con un lío como este, no? Título: Re: ID en base de datos Publicado por: TheGhost(Z) en 22 Junio 2009, 15:53 pm Hola, a todos. Saben de tanto wear se me ocurrió hacer esto. Y la verdad si me devuelve la ID que quiero.
Código: Dim RS As New Recordset Al poner el Rs.AddNew creamos un nuevo registro, y como la ID es autonumerico pues será el primero en generarse, cosa que aprovecho para cogerlo con la variable NuevoID y continuo ingresando datos en los demas campos. :) Pero tengo dudas o mas bién en que casos me daria error. Título: Re: ID en base de datos Publicado por: Angeldj27 en 22 Junio 2009, 22:33 pm Creo que si asignas el cod al salvar y no al hacerle click a nuevo te ira mejor y mas cuando tienes mas usuarios en la red trabajando en lo mismo debes crear un registro nuevo al hacer click en guardar y despues de actualizar o refrescar en el mismo procedimiento coges el Id y lo asignas a la otra tabla y ya..
PS: Cuando trabajamos en red siempre debemos crear lo Id o codigos o Nmeros de transsacciones al salvar no al darle a nuevo pork cuando le de a nuevo yo otro usuario puede estar salvando y seria un caos.. Saludos... talves t ayude en algo.. |