Programación General > Bases de Datos

 Ayuda Urgente - Vb6 Y Access

(1/2) > >>

luchoyame:
Tengo el siguiente problema y me gustaria saber si alguien puede ayudarme.
Desarrolle una aplicacion cliente servidor con una base de datos de access. Al imprimir un comprobante (por ejemplo el Nº 100) con CrystalReport no hay problema pero cuando el programa pregunta desea imprimir otro comprobante y la otra computadora tambien manda a imprimir se desordena la numeracion no sigue correlativamente.

¿Como puedo solucionarlo?
Lo que yo hago es un:
data1.recordset.movelast
Text1.text = val(data1.recordset("Numero"))

data1.recordset.addnew
     data1.recordset("Numero")=val(Numero)
data1.recordset.update
data1.refresh

pero la otra makina cuando imprimen las dos a la vez tambien sigue la misma intruccion entonces termino teniendo dos comprobantes con el mismo numero y ahi empiezan los problemas.

Este Numerito no puede ser una clave unica si o si tiene que tener un indice con duplicados.

Para aclararlo lo que quiero hacer es que las dos makinas presionen en imprimir a la misma vez pero que en la BBDD (Access) no se copien dos registros con el mismo numero sino que primero uno y luego el otro.

ciber_lep:
Estas haciendo ke el numero se incremente antes de hacer el update? espero ke si pues de lo contrario estarias copiando el mismo numero. con lo demas talvez sea problema del servidor de base de datos que usas pues estas gestiones( Transacciones) las debe de realizar uno a uno.  revisa si puedes micrar a otro servidor de base de datos mas solida.

cufarinis:
hola:

Quisas no te sea de ayuda mi comentario, pero ¿intentaste indexar la base de datos con "Sin duplicados"?

saludos

piyey:
Puedes hacer el tipo de dato como AutoNumérico para que él incremente solo y no tengas que calcularlo vos mismo.

chantapalacios:
Cuando se va a insertar un nuevo registro a la base de datos, es conveniente leerla primero para evitar actuar sobre un registro que ya existe con una sentencia INSERT o aplicar UPDATE sobre uno inexistente, sobre todo si quieres trabajar con un sistema multi usuario.

Ejemplo
Private Sub Guardar
Set RecordsetArchivo = Base.OpenRecordset(SELECT * FROM Archivo WHERE Llave = 123)
If RecordsetArchivo.EOF Then
   Insert .......................  -> resto de la sentencia
else
   Update ...................... -> resto de la sentencia
end if
End Sub

 :comp: Este ejemplo te puede servir para lo que quieres resolver con el número que se repite :comp:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa