error -2147217887(80040e21) en tiempo de ejecucion
PodrÃa alguien ayudarme por favor?, mi código es el siguiente.
Public Sub calcula_edad()
Dim Rs As New ADODB.Recordset
' Dim Rs As DAO.Recordset
Dim k As Long
Dim fec_hoy As Date
Dim fecs As String
Dim fec_nac As Date
Dim edad As Integer
Dim a(64, 90) As Integer
fec_hoy = "15/6/2005"
' Set Rs = CurrentDb.OpenRecordset("select * from Activos_Empl_012_2")
Rs.Open "select * from Activos_Empl_012_2", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
' revisar cuando el rfc es nulo porque genera una excepcion
Do While Not Rs.EOF
fecs = Left(Rs!rfc, 10)
fecds = Right(fecs, 2)
fecs = Left(Rs!rfc, 8)
fecms = Right(fecs, 2)
fecs = Left(Rs!rfc, 6)
fecas = Right(fecs, 2)
fecs = fecds + "/" + fecms + "/" + "19" + fecas
If IsDate(fecs) Then
fec_nac = DateValue(fecs)
edad = DateDiff("yyyy", fec_nac, fec_hoy)
Rs("Edad") = edad
Rs.Update
Else
Debug.Print "Error en la fecha "; Rs!NumDel; Rs!Matricula
End If
k = k + 1
Rs.MoveNext
Loop
Rs.Close
Set Rs = Nothing
Debug.Print "total"; k
End Sub
Actualiza mi base de datos varias veces y se detiene y me marca el error-2147217887(80040e21) en tiempo de ejecucion, argumento no válido.
No se como resolverlo, ayudenme por favor, además me gustarÃa que me sugirieran un tutorial para estudiar visual basic, porque no puedo adelantar mi trabajo.
Muchas gracias por el apoyo
Public Sub calcula_edad()
Dim Rs As New ADODB.Recordset
' Dim Rs As DAO.Recordset
Dim k As Long
Dim fec_hoy As Date
Dim fecs As String
Dim fec_nac As Date
Dim edad As Integer
Dim a(64, 90) As Integer
fec_hoy = "15/6/2005"
' Set Rs = CurrentDb.OpenRecordset("select * from Activos_Empl_012_2")
Rs.Open "select * from Activos_Empl_012_2", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
' revisar cuando el rfc es nulo porque genera una excepcion
Do While Not Rs.EOF
fecs = Left(Rs!rfc, 10)
fecds = Right(fecs, 2)
fecs = Left(Rs!rfc, 8)
fecms = Right(fecs, 2)
fecs = Left(Rs!rfc, 6)
fecas = Right(fecs, 2)
fecs = fecds + "/" + fecms + "/" + "19" + fecas
If IsDate(fecs) Then
fec_nac = DateValue(fecs)
edad = DateDiff("yyyy", fec_nac, fec_hoy)
Rs("Edad") = edad
Rs.Update
Else
Debug.Print "Error en la fecha "; Rs!NumDel; Rs!Matricula
End If
k = k + 1
Rs.MoveNext
Loop
Rs.Close
Set Rs = Nothing
Debug.Print "total"; k
End Sub
Actualiza mi base de datos varias veces y se detiene y me marca el error-2147217887(80040e21) en tiempo de ejecucion, argumento no válido.
No se como resolverlo, ayudenme por favor, además me gustarÃa que me sugirieran un tutorial para estudiar visual basic, porque no puedo adelantar mi trabajo.
Muchas gracias por el apoyo
Para armar las fechas que usas en el sistema, por que no usas funciones (VB) o sentencias SQL. Te aconsejo que al armar las fechas uses el formato AAAAMMDD.
Revisa tu BD ya que la tabla en la cual se encuentran las fechas, puede existir valores no válidos al momento de leer y realizar el cálculo. Allà puede estar el error.
Suerte...
Revisa tu BD ya que la tabla en la cual se encuentran las fechas, puede existir valores no válidos al momento de leer y realizar el cálculo. Allà puede estar el error.
Suerte...