Inconveniente en programación con Access

Hola como esta mi pregunta es la siguiente resulta que en un formulario tengo un texto1 y un botón, deseo que en los otros textos que tengo dentro del mismo formulario me muestre los registros correspondientes al registro insertado en el primer texto (Texto1)
Esto me sirve cuando en el texto inserto registros numéricos (En la tabla el campo esta definido como tipo Numérico)...
Pero cuando inserto registros de texto (en un campo definido como texto)me sale error en el código desarrollado en VBA que dice
"Error de sintaxis"Falta operador en la expresión de consulta Fallecidos.Nombre=Nombre del fallecido
El código que tengo es el siguiente:
Sub EjecucionFall1()
Dim strSQL5, VariableName4 As String
Dim Db5 As Database
Dim Rs5 As Recordset
Dim sResult5 As String
Set Db5 = CurrentDb
Dim z1, z2, z3, z4 As Integer
Dim z5 As Integer
strSQL5 = "SELECT * FROM Fallecidos Where Fallecidos.Nombre =" & [Forms]![Consulta por fallecidos]![Nombre] & ";"
'''''Ojo nov 5 2008
If strSQL5 = Null Or [Forms]![Consulta por fallecidos]![Nombre] = "" Then
z1 = MsgBox("No hay registros disponibles con el nombre que usted inserto", vbCritical, "DIRECTORIO CLIENTELA")
End If
'If Rs4 = Nothing Then
' z5 = MsgBox("Digite valor", vbCritical, "DIRECTORIO CLIENTELA")
'End If
Set Rs5 = Db5.OpenRecordset(strSQL5, dbOpenDynaset)
If strSQL5 = "" Or [Form_Consulta por fallecidos]![Nombre] = "" Then
z2 = MsgBox("No hay registros disponibles con el nombre que usted inserto", vbCritical, "DIRECTORIO CLIENTELA")
End If
If Rs5.RecordCount = 0 Then
z3 = MsgBox("No hay registros disponibles con el nombre que usted inserto", vbCritical, "DIRECTORIO CLIENTELA")
Exit Sub
End If
If Rs5.RecordCount > 0 Then
Rs5.MoveFirst
sResult5 = Rs5.Fields(0)
Else
sResult5 = 0
End If
[Forms]![Consulta por fallecidos]![Nombrefallecido] = Rs5!Nombre
[Forms]![Consulta por fallecidos]![Nombrefamiliar] = Rs5!Nombre_Familiar
[Forms]![Consulta por fallecidos]![Direccion] = Rs5!Direccion
[Forms]![Consulta por fallecidos]![Numerotelefonico] = Rs5!Numero_Telefonico
[Forms]![Consulta por fallecidos]![Ubicacionparque] = Rs5!Ubicacion_Parque
[Forms]![Consulta por fallecidos]![Observaciones] = Rs5!Observaciones
'[Forms]![Consulta por fallecidos]![Fechafallecimiento] = Rs4!Fecha_fallecimiento
[Form_Consulta por fallecidos]![Fechafallecimiento] = Rs5!FechaFalleciimiento
'VariableName = Rs!Nombre
'por lo contrario abre un loop y dentro de el colocas otra condicion para cuando quieras que te lea el campo, asi:
Rs5.MoveFirst
Do While Not Rs5.EOF
'VariableName = Rs!FieldName
Nombrefallecido = Rs5!Nombre
Nombre_Familiar = Rs5!Nombre_Familiar
Direccion = Rs5!Direccion
Numerotelefonico = Rs5!Numero_Telefonico
Ubicacionparque = Rs5!Ubicacion_Parque
Observaciones = Rs5!Observaciones
'Fechafallecimiento = Rs4!Fechafallecimiento
Rs5.MoveNext
Loop
Rs5.Close
Db5.Close
End Sub
Gracias
Att. Hernán Camilo Martínez V.

1 respuesta

Respuesta
1
Si esto lo estas haciendo en el modulo del mismo formulario "Consulta por fallecidos". No es necesario usar la sintaxis form![Consulta por fallecidos]! Nombre. Simplemente usa me. Nombre Ej.
strSQL5 = "SELECT * FROM Fallecidos Where Fallecidos.Nombre =" & [Forms]![Consulta por fallecidos]![Nombre]
Puede ser.
strSQL5="Select * from Fallecidos where nombre= "' & me.nombre & "'"
Lo Mismo
If strSQL5 = "" Or [Form_Consulta por fallecidos]![Nombre] = "" Then
Puede ser
if strSQL5="" or me.nombre="" then
Para asignar valores
Forms![Consulta por fallecidos]![Nombrefallecido] = Rs5!Nombre
Puede ser
me.nombre=Rs5!nombre
Más Fácil ¿no?.
Por otra parte ten en cuenta lo siguiente. Si el dato es texto es necesario que esté entre comillas simples (''), en cambio si es numérico no es necesario ej.
sql="Select * from tabla where campo=" & me.campo  
Esto serviría si el campo me. Campo es numérico, pero si es texto secaerá. Cuando es texto se debe poner
sql="select * from tabla where campo =' " & me.campo & " ' "

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas