Muchas Gracias por la ayuda, pero me sigue dando el mismo error. el
me tira el mismo error de antes.
Os pego el codigo completo por si el error estuviera en otro lugar o algo.. todo funciona menos lo del IF.
Private Sub NuevoSocio_Click()
If (Me.[Listado Alumnos_NSOCIO] = 0 Or IsNull(Me.[Listado Alumnos_NSOCIO])) Then
Select Case MsgBox("¿DESEA HACER SOCIO A ESTE ALUMNO?", vbYesNo Or vbQuestion Or vbDefaultButton1, "atencion")
Case vbYes
Else
Select Case MsgBox("YA ES SOCIO¿DESEA VER SUS DATOS?", vbYesNo Or vbQuestion Or vbDefaultButton1, "atencion")
Case vbYes
End If
'Obtengo el maxNSocio
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("MaxSocios")
rst.MoveFirst
If IsNull(rst!maximo) Then
Me.Lsocio.Value = 0
Else
Me.Lsocio.Value = rst!maximo
End If
Set rst = Nothing
Set dbs = Nothing
Dim strSQL As String
If (Me.NSocio = 0 Or IsNull(Me.NSocio)) Then
'MsgBox "Pon el numero de socio primero", , "Atención"
NSocio = Me.Lsocio.Value + 1
End If
'Ahora comprobamos si ya tenía datos de socio anterior
If (NSOCIO2 <> "") Then 'ya era socio el año anterior.
strSQL = "UPDATE Socios SET Factura=NULL, NSocio=" & Me.NSocio & _
" WHERE NSocio2=" & Me.NSOCIO2
Else 'Nuevo socio que el año anterior no lo era
If Me.PADRES_APELLIDOS <> "" Then
ApellidosSocio = Me.PADRES_APELLIDOS
NombreSocio = Me.PADRES_NOMBRE
Else
ApellidosSocio = Me.MADRE_APELLIDOS
NombreSocio = Me.MADRE_NOMBRE
End If
If Not IsNull(ApellidosSocio) Then
NApellido1 = ApellidosSocio
NApellido2 = ""
'NApellido1 = Left(Trim(ApellidosSocio), InStr(1, Trim(ApellidosSocio), " ", vbTextCompare))
'NApellido2 = Trim(Right(Trim(ApellidosSocio), (InStrRev(Trim(ApellidosSocio), " ", , vbTextCompare)) - 1))
Else
NApellido1 = ""
NApellido2 = ""
NombreSocio = ""
End If
strSQL = "INSERT INTO Socios (NSocio, Nombre, Apellido1, Apellido2, Direccion, poblacion,CP,Provincia) " & _
"VALUES (" & Me.NSocio & ",'" & NombreSocio & "','" & NApellido1 & "','" & NApellido2 & _
"','" & Me.domicilio & "','" & Me.POBLACION & "','" & Me.cp & "','ALICANTE')"
End If
On Error Resume Next
DoCmd.RunSQL strSQL
If Err.Number <> 0 Then
MsgBox "El Socio ya existe, comprueba si es el mismo"
End If
On Error GoTo 0
DoCmd.OpenForm "FormSocios", acNormal, , "NSocio = " & Me.NSocio
Me.Refresh
Case vbNo
MsgBox ("OPERACION CANCELADA.")
End Select
End Sub