Referenciar un campo de una tabla

Tengo un formulario en Access y existe una foto que va a depender de una ruta definida. Pero como a veces estos cambiando entre mi laptop y mi desktop, tengo que hacerme la vida más fácil y decidí poner dos rotas para determinar de donde tomar la foto. Dependería de si la ruta es Lap o es PC. POr lo que definí una tabla llamada Servidor y un Campo de texto SERVER, el cual tiene un solo dato que es "LAP". Entonces procedí a hacer en visual lo siguiente:
If Servidor.Server = "LAP" Then
  If IsNull(FotoLap) Then
    LaFoto.Picture = RutaFotoLap
  End If
Else
  If IsNull(Foto) Then
    LaFoto.Picture = RutaFotoPC
  End If
End If
Desafortundamente en la primer linea me manda error, yo creo que es por la forma en que estoy llamando la tabla llamada Servidor y su Campo Server
¿Podrías orientarme y corregirme?

1 respuesta

Respuesta
1
Cuando me dices que la tabla tiene un sólo dato, entiendo que sólo tiene un registro en el campo SERVER. Si es así el resultado de esa búsqueda siempre será el mismo ("LAP"), por lo que no entiendo exactamente que quieres hacer.
En todo caso para ver un registro de una tabla, se hace una consulta, que puede ser así:
Dim BBDD as Database
Dim TSERVIDOR As Recordset
Dim VbRUTA As String
Set BBDD=CurrentDb
Set TSERVIDOR=BBDD.OpenRecordset ("SELECT * FROM SERVIDOR")
VbRUTA=TSERVIDOR!SERVER
If VbRUTA = "LAP" Then
  If IsNull(FotoLap) Then
    LaFoto.Picture = RutaFotoLap
  End If
Else
  If IsNull(Foto) Then
    LaFoto.Picture = RutaFotoPC
  End If
End If
Si tuvieras más registros en esta tabla y estuvieran relacionados con otros registros de otra tabla, entonces el SELECT habría que variarlo para que busque con un criterio específico. Pero ya te digo que si la tabla SERVIDOR sólo tiene un registro el condicional siempre te ejecutará la parte verdadera de mismo.
Ok, con más calma te explico. Tengo un formulario en el que me interesa aparezca la fotografía de una persona. Tengo la imagen de esta persona en un directorio en mi PC y cuando busco en el formulario a una POR persona, esta aparece con todos sus datos y su fotografía. Todo estaría muy bien si no fuera que en algunas ocasiones, no tengo conmigo la PC y estoy con mi LAP. Es entonces que cuando consulto a la persona POR en el formulario de la misma base, pero que reside en la LAP, no encuentra la ruta de la imagen . Es por eso que decidí el crear 2 rutas de búsqueda para la misma imagen, con una busco desdá la PC y con otra desde la LAP, para que estando en una o en la otra la imagen sea la misma, aunque las rutas sean diferentes, por cuestiones de equipo.
Efectivamente la Tabla de Servidor solo cuenta con un solo campo y un solo registro que es LAP, por lo que en el condicional que te señalo al inicio, intento decir que si no es LAP, pues entonces es PC, aunque PC no lo tenga que indicar como registro, pues es la variable única del condicional.
Mi duda principal es si la linea 1 está correctamente escrita, para que la instrucción busque primero que en la Tabla Servidor, en el campo Server, el registro sea igual a "LAP". Me manda mensaje de error de que falta objeto.
Espero haber sido más claro con mi petición.
Gracias.
OK. Entonces te sugiero que en el PC tengas también esa misma tabla pero sin el registro LAP. Así te evitas tener que gestionar el error que generaría la consulta. El código en ese caso te quedaría así.
Dim BBDD as Database
Dim TSERVIDOR As Recordset
Dim VbRUTA As String
Set BBDD=CurrentDb
Set TSERVIDOR=BBDD.OpenRecordset ("SELECT * FROM SERVIDOR WHERE SERVER = 'LAP'")
If Not TSERVIDOR.EOF Then
  If IsNull(FotoLap) Then
    LaFoto.Picture = RutaFotoLap
  End If
Else
  If IsNull(Foto) Then
    LaFoto.Picture = RutaFotoPC
  End If
End If
Estimado Amigo, no vi mis correos el fin de semana, voy a revisar tu sugerencia y hacer algunas pruebas.
Te respondo en breve.
OK.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas