Cita:
Iniciado por okan Tengo el siguiente codigo:
....
Bien, yo en un formulario de visual traigo desde otras tablas algunos datos como el DNI, Nombre, Apellido, Codigo de Carrera y le digo (con el codigo que puse arriba) que grabe en otra tabla los datos DNI, Codigo de carrera, y el año pero que primero se fije (haga una busqueda) en esta nueva tabla para que no grabe dos registros iguales. El problema me lo tira en el tercer Find evidentemente hay algo mal con las fechas, pero no se que, para que grabe la fecha le digo que tome la del sistema y en le Find quiero que compare el año.
Espero haber sido claro.
Bueno, según ese código estás llamando tres veces al método Find y éste no es concatenable, quiero decir que únicamente se activaría el tercero.
Yo lo haría de otra forma: Creando un recordset con la condición de los tres campos, si existen los tres devolverá un registro y so no existen no devolverá ninguno, por ahí lo puedes controlar.
Código:
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
With rs
.ActiveConnection = [TuCadenaDeConexion] ' la misma de Adodc2
.CursorType = adOpenStatic
.CursorLocation = adUseClient
.Open "SELECT * FROM LaTabla WHERE DNI = '" & busqueda & "' AND Cod_Carrera = '" & cod.Caption & "' And [Año_inscipcion] = " & Year(Date)
End With
If rs.RecordCount > 0 Then
' ya existe un registro con los tres datos buscados
MsgBox "Ya está inscrito"
' instruccion/es
Else
'.. aquí el INSERT INTO
End If
Nota: El campo Año_inscripcion lo debes encerrar entre corchetes [] ya que la eñe para el lenguaje sql es un carácter extraño.