Visual Basic - informacion

Life is soft - evento anual de software empresarial
 
Vista:

informacion

Publicado por adri (11 intervenciones) el 14/10/2003 15:08:54
buenas.. estoy metido en un pequeño enigma..je..estoy trabajando con una aplicacion q ya esta creada pero tengo q adaptarla para otro uso, pues no consigo hacer q este "sub" funcione corectamente, se trata de insertar un dato nuevo en la base de datos, es un numero de archivo q empieza de 1 y asi va sumando 1 mas a cada registro, lo leo una y otra vez y parece q esta bien sin embrago falla, y debido a mi inexperiencia no se dnd esta el fallo, estaria muy agradecido si alguien pudiese iluminarme el camino..para poder seguir... podeis decirme dnd me estoy equivocando?
muchas gracias

Private Sub F_LLAVE_LostFocus()
Dim DB As Database
Dim RSA As Recordset
Dim RS As Recordset
Dim Cont As Integer

Set DB = CurrentDb()
Set RSA = DB.OpenRecordset("Select max(NUM_A) as numero_a from BASE")
Set RS = DB.OpenRecordset("Select NUM_A, VINT From BASE")
Cont = 0

RSA.MoveFirst
Cont = RSA!numero_a + 1
RSA.Close

RS.MoveFirst
Do While Not RS.EOF
If RS!VINT = TID Then ' este es un valor q viene del formulario
RS!NUM_A = Cont
MsgBox "se han actualizado los campos solicitados"
Exit Do
End If
RS.MoveNext
Loop
MsgBox "num archivo es:" & Cont, vbInformation
RS.Close
End Sub
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:informacion

Publicado por Fernando (166 intervenciones) el 14/10/2003 19:03:49
Primera duda, QUE ES CurrentDB()???
Segundo, cuando abris los recordset dice "Select max(NUM_A)" que quiere decir esto? o mejor dicho, que filtro queres que te haga?
Tercero, por que abris dos recordset sobre la misma tabla?

Como veras, hay muchas cosas poco claras, además en la instruccion if que esta abajo, dice RS!NUM_A = Cont, pero previo a eso no le decis ni edit, ni addnew, ni nada, con lo cual no se va a modificar nada.

Si queres que te ayude mas, poneme como se llama la Base de datos, como se llama la tabla, y como los campos, y decime que queres que haga la rutina que trato de hacerte el código.

Suerte
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:informacion

Publicado por Fabian (501 intervenciones) el 14/10/2003 19:52:11
Creo que el max hace que cambie el campo, ahora es una expresion por lo tanto pon esto :
RSA.MoveFirst
Cont = val(RSA!fields(0)) + 1
RSA.Close
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:informacion

Publicado por adri (11 intervenciones) el 15/10/2003 10:54:29
pido disculpas por la informacion "missing" y agradezco vuestra ayuda, he conseguido despues de horas y horas..detectar el fallo!!!!! y como bien dices Fernando, no habia puesto ningun addnew ni edit ni nada...ademas de eso, en la DB el campo de comparacion tenia dos espacios en blanco..asi q con un rtrim consegui lo q queria...bueno.. muuuchas gracias!!!!!!!
adri
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