Solucioné mi problema pasando de formato numérico a texto, pero me sobra una línea en amarillo.

Efectivamente me soluciono el problema cuando lo pase de formato numérico a texto, pero ahotra me sombrea la siguiente linea de amarillo, la cual me da un error.
Private Sub Texto8_AfterUpdate()
Dim a As Integer
a = Me.Texto8 (aqui me lo sombrea de amarillo como para hacerme saber que aqui es donde tengo que depurar)
Me.Form.Recordset.findfirst "codigo = " & a
If Me.Form.Recordset.nomatch Then
respuesta = MsgBox("No hay ningún registro con ese código, ¿desea agregarlo?.", vbYesNo, "¿Agregar registro?")
If respuesta = 6 Then
DoCmd.GoToRecord acActiveDataObject, , acNewRec
Me.codigo = Me.Texto8
Me.nombre.SetFocus
End If
End If
End Sub
Saludos desde El salvador.

1 Respuesta

Respuesta
1
La verdad pueden estar sucediendo varias cosas, en primer lugar como te dije antes en la línea
Dim a as Integer
dejala así:
Dim a
No le especifiques tipo de datos.
Intenta esto y me dices si te vuelve a salir error y en que línea (lo cual sospecho que va a suceder)
Gajimenb
Disculpame te envíe los códigos equivocados, pero aquí esta el problema, como ves ya había corregido, lo de dim as integer, pero ahora me sombrea la siguiente linea de amarilla ...
Private Sub Texto12_AfterUpdate()
Dim a
a = Me.Texto12
Me.Form.Recordset.findfirst "tarjeta = " & a (aca me lo sombrea de amarillo, aqui esta el error)
If Me.Form.Recordset.nomatch Then
MsgBox "No hay ningún registro con ese código."
End If
End Sub
Espero tu respuesta, y gracias por tu tiempo, saludos. Miguel
Lo que esperaba; cambia la línea de esto:
Me.Form.Recordset.findfirst "tarjeta = " & a
a esto:
Me.Form.Recordset.findfirst "tarjeta = '" & a & "'"
si no te funciona intenta quitarle los apóstrofes:
Me.Form.Recordset.findfirst "tarjeta = " & a & ""
Suerte
Gajimenb
Me da problemas siempre en esta linea, que puedo hacer...
Me.Form.Recordset.findfirst "tarjeta = '" & a & "'"
Saludos
Hombre que pena, pero recién me doy cuenta que estamos cometiendo un error: el método FindFirst sólo se aplica a objetos recordset los cuales son tablas, consultas o variables de tipo recordset que tu creas y alimentas desde Visual, un formulario no es un objeto recordset.
Lo que tienes que hacer es usar el método FindRecord del objeto DOCMD de la siguiente forma:
Dim A
A = Me.Tarjeta
Me.Tarjeta.SetFocus
DoCmd.FindRecord A, acEntire, , acSearchAll, , acCurrent, True
Reemplaza todo el código que tenías por este y miras como te va.
Si quieres más información busca en la ayuda desde visual FindRecord.
De nuevo que pena.
Gajimenb
Fianlemnet funciono, aunque no soy bueno para visual me doy cuanta que puedo combinar muchos tips que me facilitastes, te agradezco de todo corazón, saludos desde El salvador y gracias por tu tiempo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas