Access - Variable compartida

 
Vista:

Variable compartida

Publicado por Marcos (26 intervenciones) el 12/09/2004 11:48:40
Hola a todos
Necesitaria vuestra ayuda para lo siguiente:
Tengo varios formularios que ingresan registros en una misma tabla.Esa tabla tiene un campo que es "nº averia" y me interesa que se rellene automaticamente pero no puede ser autonumérico.Ademas los registros de esta tabla después de un tiempo pasan a otra tabla.Por si no os habeis dado cuenta, la base de datos esta compartida (de ahi los varios formularios)
Asi que el problema esta en que como la entrada de datos es multiple puede haber problemas al asignar el valor del campo si se hace mediante una variable.
Me podeis ayudar?
Gracias y un saludo
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

RE:Variable compartida

Publicado por Victoria (1530 intervenciones) el 12/09/2004 13:43:45
Entiendo que tienes la base de datos en red, y te comunico que, en este caso, NO se necesta varios formularios, solo varios accesos a la misma tabla
Bien, a lo tuyo, lo que yo haria:
1º nº averia de tipo texto
2º comenzara o terminara con una consonante (mejor terminar) que determinaría el PC desde el que se da de alta un nuevo registro
3º el número sería incrementado mediante código y, junto a la consonante, NUNCA se repetiría
4º para capturar el número a asignar, dependiendo de tus nombres:
a- al empezar a ingresar un reg, (no sé como lo tienes, así que, eso dependería mucho en su situación)
b- dim mCad as String
dim mRs as Recordset
codigo ejemplo basado en una tabla con el campo nFactura a incrementar:
Option Compare Database
Option Explicit
Dim mCad As String
Dim mRs As Recordset

Private Sub incrementarFactura()
mCad = "SELECT TOP 1 Val([nFactura]) as Factura, Right([nFactura],1)" & _
" FROM Tabla1 WHERE (((Right([nFactura], 1)) ='" & Me.consonante & "'))" & _
" ORDER BY Val([nFactura]) DESC"
Set mRs = CurrentDb.OpenRecordset(mCad)

Me.nFactura = (Val(mRs!Factura) + 1) & Me.consonante

mRs.Close
End Sub
Private Sub Comando7_Click()
On Error GoTo Err_Comando7_Click

DoCmd.GoToRecord , , acNewRec
incrementarFactura
Exit_Comando7_Click:
Exit Sub

Err_Comando7_Click:
MsgBox Err.Description
Resume Exit_Comando7_Click

End Sub
Victoria
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:Variable compartida

Publicado por Marcos (26 intervenciones) el 13/09/2004 09:05:20
Hola Victoria
En primer lugar gracias por molestarte en contestarme pero sobre la solucion que me has propuesto tengo que decir unas cosas.
Si tengo varios formularios no es porque esté en red,sino porque para distintas funcionalidades introducen un tipo de valores u otros,pero eso ahora no importa.
Lo que más me importa es que según este código no veo que de alguna manera se evite que en un momento dado se obtenga el mismo valor para "nFactura", no se si entiendes a lo que me refiero.
Un saludo y espero que puedas ayudarme
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:Variable compartida

Publicado por Victoria (1530 intervenciones) el 13/09/2004 17:27:37
Tal vez se me olvidara decirte que CADA FORMULARIO tendría una CONSONANTE distinta, por lo tanto NUNCA se repetiría el valor de nFactura, sería:
123M
123N
pero, ambos valores SON DISTINTOS
Victoria
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