Problema de sintaxis
Tengo un problema para buscar un registro en base a dos campos de un formulario (IdAsunto y Año). Me funcionaba cuando lo buscaba por un solo registro (IdAsunto) pero añadí Dim Año_seleccionado, Año_seleccionado = Me [Año] y utilicé la búsqueda por dos campos con esto:
Private Sub BUSCAR_ASUNTO_Click()
On Error GoTo NASUNTO_Err
Dim stdocname As String
Dim ASUN_seleccionados As String
Dim Año_seleccionados As String
ASUN_seleccionados = Me![IdAsunto]
Año_seleccionado = Me![Año]
DoCmd.OpenForm "Asunto_Nuevo"
DoCmd.ShowAllRecords 'elimino filtro del data entry cuando se añade una nueva empresa
Dim rsMyrs As Recordset
Set rsMyrs = Forms![Asunto_Nuevo].RecordsetClone
'busqueda por un campo
'rsMyrs.FindFirst "[IdAsunto]=" & ASUN_seleccionados
' busqueda por dos campos
rsMyrs.FindFirst "(" & "[" & IdAsunto & "]='" & ASUN_seleccionados & "'" _
& " AND " & "[" & Año & "]='" & Año_seleccionado & "'" & ")"
If rsMyrs.NoMatch = False Then
Forms![Asunto_Nuevo].Bookmark = rsMyrs.Bookmark 'orienta el formulario segun marcador de memoria encontrado
Else
MsgBox "Registro no encontrado"
DoCmd.RunMacro "ultimo"
End If
rsMyrs.Close
Forms![Asunto_Nuevo].SetFocus
Forms![Asunto_Nuevo]![IdDiligencia].SetFocus
NASUNTO_Err:
Dim Mensaje1, Estilo, Respuesta
Mensaje1 = "INTRODUCIR NÚMERO" ' Define el mensaje.
Estilo = vbOKOnly ' Define los botones.
Select Case Err.Number
Case 94 ' ya hay una carpeta de ese asunto.
Respuesta = MsgBox(Mensaje1, Estilo)
End Select
End Sub
No me funciona y creo que el error es de sintaxis en:
rsMyrs.FindFirst "(" & "[" & IdAsunto & "]='" & ASUN_seleccionados & "'" _
& " AND " & "[" & Año & "]='" & Año_seleccionado & "'" & ")"
¿Me podéis ayudar? ¿O darme una opción alternativa? Gracias.
Private Sub BUSCAR_ASUNTO_Click()
On Error GoTo NASUNTO_Err
Dim stdocname As String
Dim ASUN_seleccionados As String
Dim Año_seleccionados As String
ASUN_seleccionados = Me![IdAsunto]
Año_seleccionado = Me![Año]
DoCmd.OpenForm "Asunto_Nuevo"
DoCmd.ShowAllRecords 'elimino filtro del data entry cuando se añade una nueva empresa
Dim rsMyrs As Recordset
Set rsMyrs = Forms![Asunto_Nuevo].RecordsetClone
'busqueda por un campo
'rsMyrs.FindFirst "[IdAsunto]=" & ASUN_seleccionados
' busqueda por dos campos
rsMyrs.FindFirst "(" & "[" & IdAsunto & "]='" & ASUN_seleccionados & "'" _
& " AND " & "[" & Año & "]='" & Año_seleccionado & "'" & ")"
If rsMyrs.NoMatch = False Then
Forms![Asunto_Nuevo].Bookmark = rsMyrs.Bookmark 'orienta el formulario segun marcador de memoria encontrado
Else
MsgBox "Registro no encontrado"
DoCmd.RunMacro "ultimo"
End If
rsMyrs.Close
Forms![Asunto_Nuevo].SetFocus
Forms![Asunto_Nuevo]![IdDiligencia].SetFocus
NASUNTO_Err:
Dim Mensaje1, Estilo, Respuesta
Mensaje1 = "INTRODUCIR NÚMERO" ' Define el mensaje.
Estilo = vbOKOnly ' Define los botones.
Select Case Err.Number
Case 94 ' ya hay una carpeta de ese asunto.
Respuesta = MsgBox(Mensaje1, Estilo)
End Select
End Sub
No me funciona y creo que el error es de sintaxis en:
rsMyrs.FindFirst "(" & "[" & IdAsunto & "]='" & ASUN_seleccionados & "'" _
& " AND " & "[" & Año & "]='" & Año_seleccionado & "'" & ")"
¿Me podéis ayudar? ¿O darme una opción alternativa? Gracias.
1 Respuesta
Respuesta de xavi -ae soft-
1